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