摘要:步進(jìn)電機(jī)具有控制簡便、定位準(zhǔn)確等特點(diǎn)。隨著科學(xué)技術(shù)的發(fā)展,在許多領(lǐng)將得到廣泛的應(yīng)用。鑒于傳統(tǒng)的脈沖系統(tǒng)移植性不好,本文提出微機(jī)控制系統(tǒng)代替脈沖生器和脈沖分配器,用軟件的方法產(chǎn)生控制脈沖,通過軟件編程可以任意設(shè)定步進(jìn)電機(jī)的轉(zhuǎn)速、旋轉(zhuǎn)角度、轉(zhuǎn)動(dòng)次數(shù)和控制步進(jìn)電機(jī)的運(yùn)行狀態(tài)。以簡化控制電路,降低生產(chǎn)本,提高系統(tǒng)的運(yùn)行效率和靈活性。在此基礎(chǔ)上提出了雙三拍步進(jìn)電機(jī)程序控制的硬接口電路、程序流程圖和匯編程序。
關(guān)鍵詞:步進(jìn)電機(jī);單片機(jī);硬件接口電路;匯編語言
步進(jìn)電機(jī)是自動(dòng)控制系統(tǒng)中常用的執(zhí)行部件。步進(jìn)電機(jī)的輸入信號為脈沖電流,它能將輸入的脈沖信號轉(zhuǎn)換為階躍型的角位移或直線位移,因而步進(jìn)電機(jī)可看作是一個(gè)串行的數(shù)/模轉(zhuǎn)換器。由于步進(jìn)電機(jī)能夠直接接受數(shù)字信號,而不需數(shù)/模轉(zhuǎn)換,所以使用微機(jī)控制步進(jìn)電機(jī)顯得非常方便[ 1 ]。
步進(jìn)電機(jī)有以下優(yōu)點(diǎn):
(1)通常不需要反饋就能對位置和速度進(jìn)行控制;
(2)位置誤差不會(huì)積累;
(3)與數(shù)組設(shè)備兼容,能夠直接接收數(shù)字信號;
(4)可以快速啟停。
步進(jìn)電機(jī)的品種規(guī)格很多,按照它們的結(jié)構(gòu)和工作原理可以劃分為磁阻式(也稱反應(yīng)式或變磁阻式)電機(jī)、混合式電機(jī)、永磁式電機(jī)和特種電機(jī)等四種主要型式。步進(jìn)電機(jī)不需位移傳感器就可精確定位,所以在精確定位系統(tǒng)中應(yīng)用廣泛。目前打字機(jī)、計(jì)算機(jī)外部設(shè)備、數(shù)控機(jī)床、傳真機(jī)等設(shè)備中都使用了步進(jìn)電機(jī)。隨著電子計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)必將發(fā)揮它的控制方便、控制準(zhǔn)確的特點(diǎn),在工業(yè)控制等領(lǐng)域取得更為廣泛的應(yīng)用。
1. 步進(jìn)電機(jī)的工作原理
以磁阻式步進(jìn)電機(jī)為例,介紹一下步進(jìn)電機(jī)的工作原理,圖1. 1是磁阻式步進(jìn)電機(jī)工作原理的示意圖。它的定子上有六個(gè)極,轉(zhuǎn)子有四個(gè)極。定子磁極上繞有三組繞組,每組繞組由相互串聯(lián)的兩個(gè)線圈構(gòu)成。一組繞組叫做一相。因此,圖1. 1所示的電機(jī)為三相步進(jìn)電機(jī)。直流電源通過開關(guān)I、Ⅱ和Ⅲ,驅(qū)動(dòng)電流流過繞在定子上的繞組。狀態(tài)(1) ,開關(guān)I閉合,A相通電。由于A相繞組受到激磁,空氣隙里出現(xiàn)如箭頭所示的磁場。A相上的兩個(gè)定子磁極和兩個(gè)轉(zhuǎn)子齒對準(zhǔn),轉(zhuǎn)子處于平衡狀態(tài)。若再閉合開關(guān)R激勵(lì)B相,如狀態(tài)(2)所示, B相的定子磁極以同樣的方式產(chǎn)生磁場。在磁力線的張力作用下,產(chǎn)生逆時(shí)針方向的轉(zhuǎn)矩。于是,轉(zhuǎn)子沿逆時(shí)針方向轉(zhuǎn)過一個(gè)固定的角度,到達(dá)狀
態(tài)(3) 。圖中,轉(zhuǎn)過的角度為15°。如果現(xiàn)在打開開關(guān)I,去掉A相的激磁,轉(zhuǎn)子將再轉(zhuǎn)15°,到達(dá)狀態(tài)(4) 。因此,轉(zhuǎn)子的角位置可以用這種開關(guān)方式進(jìn)行控制。若開關(guān)以某種時(shí)序轉(zhuǎn)換,則轉(zhuǎn)子就能以步進(jìn)運(yùn)動(dòng)的方式連續(xù)旋轉(zhuǎn);若進(jìn)一步使時(shí)序轉(zhuǎn)換的速度可調(diào),則平均速度也能用這種開關(guān)方式進(jìn)行控制。
[align=center]

圖1. 1 磁阻式步進(jìn)電機(jī)的工作原理[/align]
實(shí)際上,驅(qū)動(dòng)步進(jìn)電機(jī)的開關(guān)是晶體管,開關(guān)信號由數(shù)字集成電路或微機(jī)產(chǎn)生。通過前面的介紹可以看到,步進(jìn)電機(jī)是一種把開關(guān)激勵(lì)的變化變換成精確的轉(zhuǎn)子位置增量運(yùn)動(dòng)的執(zhí)行機(jī)構(gòu)[ 2 ] [ 3 ]。
2. 步進(jìn)電機(jī)程序控制的設(shè)計(jì)
2. 1 步進(jìn)電機(jī)的傳動(dòng)方式
2. 1. 1 三相單三拍工作方式
在這種工作方式下,A、B、C三相輪流通電,電流切換三次,磁場旋轉(zhuǎn)一周,轉(zhuǎn)子向前轉(zhuǎn)過一個(gè)齒距角。因此這種通電方式叫做三相單三拍工作方式。這時(shí)步距角θ[sub]b[/sub] (度)為

式中:m──定子相數(shù); z ──轉(zhuǎn)子齒數(shù)
2. 1. 2 三相六拍工作方式
在這種工作方式下,首先A相通電,轉(zhuǎn)子齒與A相定子齒對齊。第二拍,A相繼續(xù)通電,同時(shí)接通B相,A、B各自建立的磁場形成一個(gè)合成磁場,這時(shí)轉(zhuǎn)子齒既不對準(zhǔn)A相也不對準(zhǔn)B相,而是對準(zhǔn)A、B兩極軸線的角等分線,使轉(zhuǎn)子齒相對于A相定子齒轉(zhuǎn)過1 /6齒距,即1. 5°。第三拍,A相切斷,僅B相保持接通。這時(shí),由B相建立的磁場與單三拍時(shí)B相通電的情況一樣。依次類推,繞組以A—AB—B—BC—C—CA—A時(shí)序(或反時(shí)序)轉(zhuǎn)換6次,磁場旋轉(zhuǎn)一周,轉(zhuǎn)子前進(jìn)一個(gè)齒距,每次切換均使轉(zhuǎn)子轉(zhuǎn)動(dòng)1. 5°,故這種通電方式稱為三相六柏工作方式。其步距角θ[sub]b[/sub] 為:

2. 1. 3 雙三拍工作方式
這種工作方式每次都是有兩相導(dǎo)通,兩相繞組處在相同電壓之下,以AB─BC─CA─AB (或反之)方式通電,故稱為雙三拍工作方式。以這種方式通電,轉(zhuǎn)子齒所處的位置相當(dāng)于六拍控制方式中去掉單三拍后的三個(gè)位置。它的步距角計(jì)算公式與單三拍時(shí)的公式相同。由上述分析可知,要使磁阻式步進(jìn)電機(jī)具有工作能力,最起碼的條件是定子極分度角不能被齒距角整除,且應(yīng)滿足下列方程:

進(jìn)一步化簡得齒數(shù)z:
z = q (mR + k) (2 - 3)
式中:m──相數(shù); q──每相的極數(shù); k──≤ (m - 1)的正整數(shù);R──正整數(shù),為0、1、2、3。
按選定的相數(shù)和不同的極數(shù),由上式就可推算出轉(zhuǎn)子齒數(shù)。因?yàn)槿嚯p三拍步進(jìn)電機(jī)不易失步,控制精度比較高,所以本文對三相雙三拍步進(jìn)電機(jī)進(jìn)行控制,定子有三對磁極,運(yùn)行時(shí)兩相同時(shí)通電,循環(huán)帶動(dòng)轉(zhuǎn)子轉(zhuǎn)動(dòng)。
2. 2 硬件接口電路
傳統(tǒng)的步進(jìn)電機(jī)控制系統(tǒng)采用硬件進(jìn)行控制,用一個(gè)脈沖發(fā)生器產(chǎn)生頻率變化的脈沖信號,再經(jīng)一個(gè)脈沖分配器把方向控制信號和脈沖信號轉(zhuǎn)換成有一定邏輯關(guān)系的環(huán)形脈沖;經(jīng)驅(qū)動(dòng)電路放大后就可以來驅(qū)動(dòng)步進(jìn)電機(jī)了。在這種控制中,步進(jìn)電機(jī)的脈沖硬件電路產(chǎn)生,如果系統(tǒng)發(fā)生變化或使用不同類型的步進(jìn)電機(jī),需重新設(shè)計(jì)硬件電路,系統(tǒng)的可移植性不好[ 4 ] [ 5 ]。
用微機(jī)控制系統(tǒng)代替脈沖發(fā)生器和脈沖分配器,就可以根據(jù)系統(tǒng)需要通過軟件編程的方法任意設(shè)定步進(jìn)電機(jī)的轉(zhuǎn)速、旋轉(zhuǎn)角度、轉(zhuǎn)動(dòng)次數(shù)和控制步進(jìn)電機(jī)的運(yùn)行狀態(tài)。這樣可簡化控制電路,降低生產(chǎn)成本,提高系統(tǒng)的運(yùn)行效率和靈活性。圖2. 1為單片機(jī)控制步進(jìn)電機(jī)接口原理圖。
[align=center]

圖2. 1 單片機(jī)控制步進(jìn)電機(jī)接口電路原理圖[/align]
2. 3 脈沖的形成
實(shí)現(xiàn)對步進(jìn)電機(jī)的控制,微機(jī)應(yīng)能輸出有一定周期的控制脈沖。步驟是:先輸出一個(gè)高電平,延時(shí)一段時(shí)間后,再輸入一個(gè)低電平,然后再延時(shí)。改變延時(shí)時(shí)間的長短,即可改變脈沖的周期,脈沖的周期由步進(jìn)電機(jī)的工作頻率確定[ 6 ] [ 7 ]。用軟件形成環(huán)形脈沖的程序流程圖如圖2. 2所示。
[align=center]

圖2. 2 軟件法形成脈沖序列的程序流程[/align]
程序如下:
PULSE:MOV R3 , # NUM
PUSH A
PUSH PSW
LOOP: SETB P1. 0
ACALL DELAY1
CLR P1. 0
ACALL DELAY2
DJNZ R3,LOOP
POP PSW
POP A
RET
2. 4 旋轉(zhuǎn)方向控制
步進(jìn)電機(jī)的旋轉(zhuǎn)方向和內(nèi)部繞組的通電順序及通電方式有密切關(guān)系[ 8~10 ] 。對于三相雙三拍工作方式:
正相旋轉(zhuǎn):AB→BC→CA→AB
反相旋轉(zhuǎn):AB→CA→BC→AB
三相雙三拍控制模型如表2. 1所示。
(1)正轉(zhuǎn)控制模型:
。2)反轉(zhuǎn)控制模型

2. 5 轉(zhuǎn)速控制
控制步進(jìn)電機(jī)的運(yùn)行速度,實(shí)際上是控制系統(tǒng)發(fā)出時(shí)鐘脈沖的頻率或換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出頻率逐漸減少。脈沖信號的頻率可以用軟件延時(shí)和硬件中斷兩種方法來確定。采用軟件延時(shí),一般是根據(jù)所需的時(shí)間常數(shù)來設(shè)計(jì)一個(gè)子程序,該程序包含一定的指令,設(shè)計(jì)者要對這些指令的執(zhí)行時(shí)間進(jìn)行嚴(yán)密的計(jì)算或者精確的測試,以便確定延時(shí)時(shí)間是否符合要求。每當(dāng)延時(shí)子程序結(jié)束后,可以執(zhí)行下面的操作,也可用輸出指令輸出一個(gè)信號作為定時(shí)輸出。采用軟件定時(shí), CPU一直被占用,因此CPU利用率低。
可編程的硬件定時(shí)器直接對系統(tǒng)時(shí)鐘脈沖或某一固定頻率的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)值則由編程決定。當(dāng)計(jì)數(shù)到預(yù)定的脈沖數(shù)時(shí),產(chǎn)生中斷信號,得到所需的延時(shí)時(shí)間或定時(shí)間隔。由于計(jì)數(shù)的初始值由編程決定,因而在不改動(dòng)硬件的情況下,只通過程序變化即可滿足不同的定時(shí)和計(jì)數(shù)要求,因此使用很方便[ 11~13 ]。
2. 6 控制程序設(shè)計(jì)
控制程序的設(shè)計(jì)方法是:通過標(biāo)志位FLAG來判斷電機(jī)的旋轉(zhuǎn)方向,然后輸出相應(yīng)的控制脈沖序列;判斷要求的脈沖信號是否輸出完畢[ 14 ]。
三相雙三拍控制模型完成的步進(jìn)電機(jī)控制程序設(shè)計(jì)如下:
三相雙三拍控制程序流程圖如圖2. 3 和圖2. 4所示。正轉(zhuǎn)控制模型03H、06H、05H存放在以RM為起始地址的內(nèi)存單元中,反轉(zhuǎn)控制模型03H、05H、06H存放在以LM為起始地址的內(nèi)存單元中。
[align=center]

圖2. 3 主程序流程圖

圖2. 4 定時(shí)器中斷服務(wù)程序流程圖[/align]
主程序如下:
CON: MOV R3, # N
MOV TMOD , # 10H
MOV TL1 , # LOW
MOV TH1 , # H IGH
JNB FLAG ,LEFT
MOV R0 , RM
AJMP TIME - S
LEFT: MOV R0 , LM
TIME: SETB EA
SETB ET1
SETB TR1
WA IT: SJMP WA IT
中斷服務(wù)程序如下:
INTTO: PUSH A
PUSH PSW
MOV A , @R0
MOV P1 ,A
INC R0
MOV A , # 00H
XRL A , @R0
JNZ NEXT
MOV A , R0
CLR C
SUBB A , # 03H
MOV R0 , A
NEXT: DJNZ R3 , RETU
CLR ET1
CLR EA
RETU: POP PSW
POP A
RETI
3. 總結(jié)與展望
步進(jìn)電機(jī)是機(jī)電一體化產(chǎn)品中的關(guān)鍵組件之一,是一種性能良好的數(shù)字化執(zhí)行元件。隨著計(jì)算機(jī)應(yīng)用技術(shù)、電子技術(shù)和自動(dòng)控制技術(shù)在國民經(jīng)濟(jì)各個(gè)領(lǐng)域中的普及與深入,步進(jìn)電機(jī)的需要量越來越大。有資料說明,世界上步進(jìn)電機(jī)的年產(chǎn)量以10%以上的速度增長。國內(nèi)對步進(jìn)電機(jī)的需求同樣也與日俱增。實(shí)際工作中,很多工程技術(shù)人員和技術(shù)工人都希望比較全面地了解步進(jìn)電機(jī)及其控制技術(shù)。
本文對步進(jìn)電機(jī)的控制方法進(jìn)行了詳細(xì)的論述,包括硬件接口的設(shè)計(jì)、軟件方案的設(shè)計(jì)和匯編控制程序的編寫。此種方法高效、方便、成本低廉,在實(shí)際應(yīng)用中有著很高的利用價(jià)值。