摘要: 介紹了利用陣列邏輯器件GAL16V8對三相六拍步進電機實現(xiàn)控制的方法及其電路設(shè)計。通過計算機編程器對GAL進行編程,可以滿足各種控制要求。該電路簡單,工作穩(wěn)定可靠,編程靈活方便。
關(guān)鍵詞: 通用陣列邏輯器件 步進電機 GAL16V8 三相六拍
步進電機廣泛應(yīng)用于對精度要求比較高的運動控制系統(tǒng)中,如機器人、打印機、軟盤驅(qū)動器、繪圖儀、機械閥門控制器等。目前,對步進電機的控制主要有由分散器件組成的環(huán)形脈沖分配器、軟件環(huán)形脈沖分配器、專用集成芯片環(huán)形脈沖分配器等。分散器件組成的環(huán)形脈沖分配器體積比較大,同時由于分散器件的延時,其可靠性大大降低;軟件環(huán)形分配器要占用主機的運行時間,降低了速度;專用集成芯片環(huán)形脈沖分配器集成度高、可靠性好,但其適應(yīng)性受到限制,同時開發(fā)周期長、需求費用較高。通用陣列邏輯GAL(Generic Array Logic)是美國Lattice公司研制的一種電可擦除的可編程的新型PLD器件。近幾年來,GAL以其高性能、高可靠性、可擦除及輸出邏輯結(jié)構(gòu)可組態(tài)等特性和100%的成品率,博得廣大用戶的信賴。它可以用來構(gòu)成譯碼器、優(yōu)先級編碼器、多路開關(guān)、比較器、移位寄存器、計數(shù)器、總線仲裁器等。采用GAL器件對三相步進電機進行控制,不僅簡化了系統(tǒng)的結(jié)構(gòu),降低了成本,而且編程靈活方便,提高了系統(tǒng)的可靠性,使系統(tǒng)具有更強的適應(yīng)性。
1 三相六拍步進電機控制要求
矩角特性是步進電機運行時一個很重要的參數(shù),矩角特性好,步進電機啟動轉(zhuǎn)矩就大,運行不易失步。改善矩角特性一般通過增加步進電機的運行拍數(shù)來實現(xiàn)。三相六拍比三相二拍的矩角特性好一倍,因此在很多情況下,三相步進電機采用三相六拍運行方式。三相步進電機工作在三相六拍運行方式時,每個狀態(tài)的變化使電機轉(zhuǎn)動1/6齒距,三相激勵規(guī)律為A-AB-B-BC-C-CA共六拍,對應(yīng)時序如圖1所示。A、B、C分別代表接到三相步進電機A相、B相、C相繞組的驅(qū)動脈沖。
通常,步進電機的脈沖控制是由邏輯電路實現(xiàn)的。在計算機控制的系統(tǒng)中,也可以通過編制程序,由擴展I/O口輸出脈沖來決定電機的運行方式、方向及轉(zhuǎn)速。這種方式電路簡單、控制靈活,但占用CPU的時間過多,每次驅(qū)動電機時,PC機都得被占用。本文采用可編程邏輯器件(PLD)中的GALl6V8設(shè)計邏輯電路。在此,選三個控制信號:(1)啟動控制信號S,當(dāng)S=1時為停止,S=0為啟動;(2)正反轉(zhuǎn)控制信號D,當(dāng)D=1時電機正轉(zhuǎn),D=0時電機反轉(zhuǎn);(3)轉(zhuǎn)速切換信號R和C,當(dāng)R=0、C=0時,頻率為fck;R=1、C=1時,頻率為fck/2。步進電機的轉(zhuǎn)速通常都是通過改變時序脈沖的頻率來控制的,所以這里用頻率來表示轉(zhuǎn)速的改變。由于GAL器件所有觸發(fā)器的時鐘是連在一起的,不能同時引入兩種以上頻率的時鐘,因此從改造組合邏輯部分人手,達(dá)到對電動機轉(zhuǎn)速的二分頻控制。同理也可以實現(xiàn)四相八拍、五相十拍、六項十二拍的步進電機控制,這就比專用的集成電路功能更強。
2 采用GAL控制脈沖分配的邏輯設(shè)計
若采用集成電路芯片來實現(xiàn)三相六拍步進電機的控制,所用器件較多,電路一般比較復(fù)雜。為了滿足電機轉(zhuǎn)速的二分頻,在同一時鐘頻率控制下,必須利用一個D型觸發(fā)器,通過C參與組合邏輯來實現(xiàn)。其邏輯電路如圖2所示。CK為控制信號,三個D型觸發(fā)器的輸出O、P、Q分別接步進電機的三項繞組。根據(jù)步進電機驅(qū)動相數(shù)及控制要求,必須有相應(yīng)于相數(shù)的延遲觸發(fā)器保持現(xiàn)態(tài)與次態(tài)間的轉(zhuǎn)換過程。對此,可利用GAL中八個輸出邏輯宏單元中的三個來完成,電機的工作狀態(tài)(O、P、Q)中的現(xiàn)態(tài)與控制信號(S、R、D)可通過GAL的與、或陣列組合邏輯來完成。
2.1 邏輯控制狀態(tài)表
按照電機的激勵規(guī)律,在時序脈沖作用下,時序電路的狀態(tài)將在六個狀態(tài)中循環(huán),驅(qū)動電機運轉(zhuǎn)。這里用a、b、c、d、e、f分別表示其六個狀態(tài),即a=100、b=110、c=010、d=011、e=001、f=101。根據(jù)邏輯電路圖可得其狀態(tài)表,如表1所示。
表1 邏輯控制狀態(tài)表
1
|
0
|
||||||
× | 000 | 010 | 100 | 110 | 101 | 111 | |
a | a | f | b | f | b | a | a |
b | b | e | c | a | c | b | b |
c | c | d | d | b | d | c | c |
d | d | c | e | c | e | d | d |
e | e | b | f | d | f | e | e |
f | f | a | a | e | a | f | f |
表1中分頻控制量R決定C的取值,即C=RC。當(dāng)R=0時,電機按fck頻率運行,當(dāng)R=1時,C重復(fù)取0和1,電機按fck/2頻率運行。
2.2 狀態(tài)真值表
由表1可得狀態(tài)真值表,如表2所示。表中O、P、Q狀態(tài)是在時鐘脈沖控制下變化的,在控制變量的控制下,決定電機的啟動、轉(zhuǎn)向和轉(zhuǎn)速大小。
表2 狀態(tài)真值表
O | P | Q | S | R | D | C | Do | Dp | Dq | ? | O | P | Q | S | R | D | C | Do | Dp | Dq |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | ? | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | ? | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | ? | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | ? | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | ? | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | ? | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | ? | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ? | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | ? | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ? | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | ? | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ? | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | ? | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | ? | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | ? | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | ? | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | ? | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | ? | × | × | × | 1 | × | × | × | 0 | 0 | 0 |
0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
2.3 卡諾圖
在卡諾圖中,輸入變量分兩排表示,變量的取值次序按照循環(huán)碼排列。這種排列方法使得卡諾圖中幾何上相鄰的兩個小方塊所代表的最小項只有一個變量不同這正是利用卡諾圖化簡邏輯函數(shù)的基礎(chǔ)。
對于多變量輸入,使用卡諾圖時要注意以下幾點:
(1)按照"最少、最大"的原則(即圈數(shù)最少,圈內(nèi)的最小項個數(shù)盡可能多)圈起所有取值為1的相鄰相。
(2)卡諾圖中四個角與兩對邊的各項也是相鄰的,卡諾圖里上、下或左右部分中對稱的項也是相鄰的。
(3)每圈一個矩形圈時,必須至少包含一個在其它圈中未出現(xiàn)過的最小項,否則出現(xiàn)重復(fù)而得不到最簡式。 (4)每一個取值為"1"的小方塊都可以被圈多次,但不能遺漏,最小圈可以只包含一個小方塊,即不能簡化。
以O(shè)為例,由狀態(tài)真值表可得其卡諾圖,如圖3所示。根據(jù)圈數(shù)和最小項可得其邏輯表達(dá)式為:
同樣,也可以求得P、Q的邏輯表達(dá)式
圖3
3 GAL的軟件設(shè)計
3.1 GAL器件選型及引腳變量分配
GAL器件有多種型號,根據(jù)設(shè)計的需要,同時從經(jīng)濟的角度考慮,選用GALl6V8來實現(xiàn)三相六拍步進電機的控制。
3.2 GAL源文件設(shè)計
根據(jù)控制要求和編程格式,對已得到的時序邏輯方程編寫的源文件如下:
在實際輸入時不需要加入,注釋行以";"開始。將上述源文件輸入計算機,再對文件進行編譯或匯編以生成JEDEC文件、引腳配置圖、熔絲圖等。用編程器對GAL器件進行編程,編程器在編程結(jié)束后還具有對編程芯片所有的存儲單元進行自動檢驗的功能。
4 系統(tǒng)的硬件連接
電路原理圖如圖4所示,左邊為GALl6V8芯片的引線圖,S、D、R分別決定電機的啟動、轉(zhuǎn)向和轉(zhuǎn)速大小,輸出O、P、Q分別接電機的A、B、C三個線包。圖中只給出一個線包的驅(qū)動電路。注意:GAL元件不用的引腳應(yīng)該直接接地或接電源,不要懸空,否則會增大功耗,降低抗干擾能力。 這種主要由GALl6V8組成的步進電機控制器用于對三相六拍工作制步進電機的自動控制,既可以獨立運用于驅(qū)動對象,又可以在微機管理下運行,且不占用CPU的時間。用一片GAL便可以實現(xiàn)復(fù)雜的時序電路,縮小組成系統(tǒng)的體積。借助計算機輔助設(shè)計,大大加快了設(shè)計速度,減少了差錯,降低了成本,提高了系統(tǒng)的可靠性和穩(wěn)定性,且可反復(fù)修改和編程,靈活性極強。
評論
查看更多