??? 摘 要: 介紹了利用陣列邏輯器件GAL16V8對三相六拍步進(jìn)電機(jī)" title="步進(jìn)電機(jī)">步進(jìn)電機(jī)實(shí)現(xiàn)控制的方法及其電路設(shè)計,。通過計算機(jī)和編程器" title="編程器">編程器對GAL進(jìn)行編程,可以滿足各種控制要求,。該電路簡單,工作穩(wěn)定可靠,編程靈活方便,。
??? 關(guān)鍵詞: 通用陣列邏輯器件? 步進(jìn)電機(jī)? GAL16V8? 三相六拍
?
??? 步進(jìn)電機(jī)廣泛應(yīng)用于對精度要求比較高的運(yùn)動控制系統(tǒng)中,如機(jī)器人,、打印機(jī),、軟盤驅(qū)動器、繪圖儀,、機(jī)械閥門控制器等,。目前,對步進(jìn)電機(jī)的控制主要有由分散器件組成的環(huán)形脈沖分配器" title="脈沖分配器">脈沖分配器、軟件環(huán)形脈沖分配器,、專用集成芯片環(huán)形脈沖分配器等,。分散器件組成的環(huán)形脈沖分配器體積比較大,同時由于分散器件的延時,其可靠性大大降低;軟件環(huán)形分配器要占用主機(jī)的運(yùn)行時間,降低了速度;專用集成芯片環(huán)形脈沖分配器集成度高、可靠性好,但其適應(yīng)性受到限制,同時開發(fā)周期長,、需求費(fèi)用較高,。通用陣列邏輯GAL(Generic Array Logic)是美國Lattice公司研制的一種電可擦除的可編程的新型PLD器件。近幾年來,GAL以其高性能,、高可靠性,、可擦除及輸出邏輯結(jié)構(gòu)可組態(tài)等特性和100%的成品率,博得廣大用戶的信賴。它可以用來構(gòu)成譯碼器,、優(yōu)先級編碼器,、多路開關(guān)、比較器,、移位寄存器,、計數(shù)器、總線仲裁器等,。采用GAL器件對三相步進(jìn)電機(jī)進(jìn)行控制,不僅簡化了系統(tǒng)的結(jié)構(gòu),降低了成本,而且編程靈活方便,提高了系統(tǒng)的可靠性,使系統(tǒng)具有更強(qiáng)的適應(yīng)性,。
1 三相六拍步進(jìn)電機(jī)控制" title="步進(jìn)電機(jī)控制">步進(jìn)電機(jī)控制要求
??? 矩角特性是步進(jìn)電機(jī)運(yùn)行時一個很重要的參數(shù),矩角特性好,步進(jìn)電機(jī)啟動轉(zhuǎn)矩就大,運(yùn)行不易失步。改善矩角特性一般通過增加步進(jìn)電機(jī)的運(yùn)行拍數(shù)來實(shí)現(xiàn),。三相六拍比三相二拍的矩角特性好一倍,因此在很多情況下,三相步進(jìn)電機(jī)采用三相六拍運(yùn)行方式,。三相步進(jìn)電機(jī)工作在三相六拍運(yùn)行方式時,每個狀態(tài)的變化使電機(jī)轉(zhuǎn)動1/6齒距,三相激勵規(guī)律為A-AB-B-BC-C-CA共六拍,對應(yīng)時序如圖1所示。A,、B,、C分別代表接到三相步進(jìn)電機(jī)A相、B相,、C相繞組的驅(qū)動脈沖,。
?
??? 通常,步進(jìn)電機(jī)的脈沖控制是由邏輯電路實(shí)現(xiàn)的。在計算機(jī)控制的系統(tǒng)中,也可以通過編制程序,由擴(kuò)展I/O口輸出脈沖來決定電機(jī)的運(yùn)行方式,、方向及轉(zhuǎn)速,。這種方式電路簡單、控制靈活,但占用CPU的時間過多,每次驅(qū)動電機(jī)時,PC機(jī)都得被占用,。本文采用可編程邏輯器件(PLD)中的GAL16V8設(shè)計邏輯電路,。在此,選三個控制信號" title="控制信號">控制信號:(1)啟動控制信號S,當(dāng)S=1時為停止,S=0為啟動;(2)正反轉(zhuǎn)控制信號D,當(dāng)D=1時電機(jī)正轉(zhuǎn),D=0時電機(jī)反轉(zhuǎn);(3)轉(zhuǎn)速切換信號R和C,當(dāng)R=0、C=0時,頻率為fck;R=1,、C=1時,頻率為fck/2,。步進(jìn)電機(jī)的轉(zhuǎn)速通常都是通過改變時序脈沖的頻率來控制的,所以這里用頻率來表示轉(zhuǎn)速的改變,。由于GAL器件所有觸發(fā)器的時鐘是連在一起的,不能同時引入兩種以上頻率的時鐘,因此從改造組合邏輯部分入手,達(dá)到對電動機(jī)轉(zhuǎn)速的二分頻控制。同理也可以實(shí)現(xiàn)四相八拍,、五相十拍,、六項(xiàng)十二拍的步進(jìn)電機(jī)控制,這就比專用的集成電路功能更強(qiáng)。
2 采用GAL控制脈沖分配的邏輯設(shè)計
??? 若采用集成電路芯片來實(shí)現(xiàn)三相六拍步進(jìn)電機(jī)的控制,所用器件較多,電路一般比較復(fù)雜,。為了滿足電機(jī)轉(zhuǎn)速的二分頻,在同一時鐘頻率控制下,必須利用一個D型觸發(fā)器,通過C參與組合邏輯來實(shí)現(xiàn),。其邏輯電路如圖2所示。CK為控制信號,三個D型觸發(fā)器的輸出O,、P,、Q分別接步進(jìn)電機(jī)的三項(xiàng)繞組。根據(jù)步進(jìn)電機(jī)驅(qū)動相數(shù)及控制要求,必須有相應(yīng)于相數(shù)的延遲觸發(fā)器保持現(xiàn)態(tài)與次態(tài)間的轉(zhuǎn)換過程,。對此,可利用GAL中八個輸出邏輯宏單元中的三個來完成,電機(jī)的工作狀態(tài)(O,、P、Q)中的現(xiàn)態(tài)與控制信號(S,、R,、D)可通過GAL的與、或陣列組合邏輯來完成,。
?
2.1 邏輯控制狀態(tài)表
??? 按照電機(jī)的激勵規(guī)律,在時序脈沖作用下,時序電路的狀態(tài)將在六個狀態(tài)中循環(huán),驅(qū)動電機(jī)運(yùn)轉(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中分頻控制量R決定C的取值,當(dāng)R=0時,電機(jī)按fck頻率運(yùn)行,當(dāng)R=1時,C重復(fù)取0和1,電機(jī)按fck/2頻率運(yùn)行,。
2.2 狀態(tài)真值表
??? 由表1可得狀態(tài)真值表,如表2所示,。表中O、P,、Q狀態(tài)是在時鐘脈沖控制下變化的,在控制變量的控制下,決定電機(jī)的啟動,、轉(zhuǎn)向和轉(zhuǎn)速大小。
?
2.3 卡諾圖
??? 在卡諾圖中,輸入變量分兩排表示,變量的取值次序按照循環(huán)碼排列,。這種排列方法使得卡諾圖中幾何上相鄰的兩個小方塊所代表的最小項(xiàng)只有一個變量不同,這正是利用卡諾圖化簡邏輯函數(shù)的基礎(chǔ),。
??? 對于多變量輸入,使用卡諾圖時要注意以下幾點(diǎn):
??? (1)按照“最少,、最大”的原則(即圈數(shù)最少,圈內(nèi)的最小項(xiàng)個數(shù)盡可能多)圈起所有取值為1的相鄰相。
??? (2)卡諾圖中四個角與兩對邊的各項(xiàng)也是相鄰的,卡諾圖里上,、下或左右部分中對稱的項(xiàng)也是相鄰的,。
??? (3)每圈一個矩形圈時,必須至少包含一個在其它圈中未出現(xiàn)過的最小項(xiàng),否則出現(xiàn)重復(fù)而得不到最簡式。
??? (4)每一個取值為“1”的小方塊都可以被圈多次,但不能遺漏,最小圈可以只包含一個小方塊,即不能簡化,。
??? 以O(shè)為例,由狀態(tài)真值表可得其卡諾圖,如圖3所示,。根據(jù)圈數(shù)和最小項(xiàng)可得其邏輯表達(dá)式為:
???
?
?
??? 同樣,也可以求得P、Q的邏輯表達(dá)式,。
3 GAL的軟件設(shè)計
3.1 GAL器件選型及引腳變量分配
??? GAL器件有多種型號,根據(jù)設(shè)計的需要,同時從經(jīng)濟(jì)的角度考慮,選用GAL16V8來實(shí)現(xiàn)三相六拍步進(jìn)電機(jī)的控制,。
3.2 GAL源文件設(shè)計
??? 根據(jù)控制要求和編程格式,對已得到的時序邏輯方程編寫的源文件如下:
??? 01 GAL?????? ;PLD type
??? 02?DESIGNED BY ZANGLILIN
??? 03?28/10/2003
??? 04?? MOTOR CONTROL
??? 05?? X Y S R D H I J K GND;GAL PIN LIST
??? 06?? M? N? A? B? C? O? P? Q? Z? VCC
??? 07? O:=/O*/P*Q*D*/S*/C+/O*P*/Q*/D*/S*/C+O*P*/Q*/S*R*C
??? 08??? +O*/P*/S*R*C+O*/P*D*/S*/C+O*/Q*/D*/S*/C
??? 09? P:=/O*/P*Q*/D*/S*/C+O*P*/Q*/S*R*C+/O*P*/Q*D*/S*/C
??? 10??? +/O*P*/S*R*C+/O*P*/D*/S*/C+O*/Q*D*/S*/C
??? 11? Q:=/O*/P*Q*/D*/S*/C+O*/P*Q*/S*R*C+O*/P*/D*/S*/C
??? 12??? +/O*P*D*/S*/C+/O*Q*/S*R*C+/O*Q*D*/S*/C
??? 13? C:=R*/C
??? 14? DESCRIPTION
??? 在上述的源文件中,行號是為了描述方便而加入的,在實(shí)際輸入時不需要加入,注釋行以“:”開始。將上述源文件輸入計算機(jī),再對文件進(jìn)行編譯或匯編以生成JEDEC文件,、引腳配置圖,、熔絲圖等。用編程器對GAL器件進(jìn)行編程,編程器在編程結(jié)束后還具有對編程芯片所有的存儲單元進(jìn)行自動檢驗(yàn)的功能,。
4 系統(tǒng)的硬件連接
??? 電路原理圖如圖4所示,左邊為GAL16V8芯片的引線圖,S,、D、R分別決定電機(jī)的啟動,、轉(zhuǎn)向和轉(zhuǎn)速大小,輸出O,、P、Q分別接電機(jī)的A,、B,、C三個線包。圖中只給出一個線包的驅(qū)動電路,。注意:GAL元件不用的引腳應(yīng)該直接接地或接電源,不要懸空,否則會增大功耗,降低抗干擾能力,。
?
??? 這種主要由GAL16V8組成的步進(jìn)電機(jī)控制器用于對三相六拍工作制步進(jìn)電機(jī)的自動控制,既可以獨(dú)立運(yùn)用于驅(qū)動對象,又可以在微機(jī)管理下運(yùn)行,且不占用CPU的時間。用一片GAL便可以實(shí)現(xiàn)復(fù)雜的時序電路,縮小組成系統(tǒng)的體積,。借助計算機(jī)輔助設(shè)計,大大加快了設(shè)計速度,減少了差錯,降低了成本,提高了系統(tǒng)的可靠性和穩(wěn)定性,且可反復(fù)修改和編程,靈活性極強(qiáng),。
參考文獻(xiàn)
1 丁淑敏,劉武發(fā).GAL在步進(jìn)電機(jī)控制中的應(yīng)用.鄭州紡織工學(xué)院學(xué)報,1999(10)
2 張有志. GAL器件的開發(fā)與應(yīng)用. 山東電力,1995(3)
3 盧瑞英. 基于GAL的步進(jìn)電機(jī)控制電路.電器傳動,1997(5)
4 馬東斌,韓 亮. 基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng).電子自動化,1998(1)
5 陳維山,趙 杰. 機(jī)電系統(tǒng)計算機(jī)控制. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999
6 劉景林. 用GAL設(shè)計的步進(jìn)電機(jī)脈沖分配器. 華南師范大學(xué)學(xué)報(自然科學(xué)版),1999(2)