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