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

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

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

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

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

圖2. 1 單片機控制步進電機接口電路原理圖[/align]
2. 3 脈沖的形成
實現對步進電機的控制,微機應能輸出有一定周期的控制脈沖。步驟是:先輸出一個高電平,延時一段時間后,再輸入一個低電平,然后再延時。改變延時時間的長短,即可改變脈沖的周期,脈沖的周期由步進電機的工作頻率確定[ 6 ] [ 7 ]。用軟件形成環形脈沖的程序流程圖如圖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 旋轉方向控制
步進電機的旋轉方向和內部繞組的通電順序及通電方式有密切關系[ 8~10 ] 。對于三相雙三拍工作方式:
正相旋轉:AB→BC→CA→AB
反相旋轉:AB→CA→BC→AB
三相雙三拍控制模型如表2. 1所示。
(1)正轉控制模型:
(2)反轉控制模型
2. 5 轉速控制
控制步進電機的運行速度,實際上是控制系統發出時鐘脈沖的頻率或換相的周期,即在升速過程中,使脈沖的輸出頻率逐漸增加;在減速過程中,使脈沖的輸出頻率逐漸減少。脈沖信號的頻率可以用軟件延時和硬件中斷兩種方法來確定。采用軟件延時,一般是根據所需的時間常數來設計一個子程序,該程序包含一定的指令,設計者要對這些指令的執行時間進行嚴密的計算或者精確的測試,以便確定延時時間是否符合要求。每當延時子程序結束后,可以執行下面的操作,也可用輸出指令輸出一個信號作為定時輸出。采用軟件定時, CPU一直被占用,因此CPU利用率低。
可編程的硬件定時器直接對系統時鐘脈沖或某一固定頻率的時鐘脈沖進行計數,計數值則由編程決定。當計數到預定的脈沖數時,產生中斷信號,得到所需的延時時間或定時間隔。由于計數的初始值由編程決定,因而在不改動硬件的情況下,只通過程序變化即可滿足不同的定時和計數要求,因此使用很方便[ 11~13 ]。
2. 6 控制程序設計
控制程序的設計方法是:通過標志位FLAG來判斷電機的旋轉方向,然后輸出相應的控制脈沖序列;判斷要求的脈沖信號是否輸出完畢[ 14 ]。
三相雙三拍控制模型完成的步進電機控制程序設計如下:
三相雙三拍控制程序流程圖如圖2. 3 和圖2. 4所示。正轉控制模型03H、06H、05H存放在以RM為起始地址的內存單元中,反轉控制模型03H、05H、06H存放在以LM為起始地址的內存單元中。
[align=center]

圖2. 3 主程序流程圖

圖2. 4 定時器中斷服務程序流程圖[/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
中斷服務程序如下:
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. 總結與展望
步進電機是機電一體化產品中的關鍵組件之一,是一種性能良好的數字化執行元件。隨著計算機應用技術、電子技術和自動控制技術在國民經濟各個領域中的普及與深入,步進電機的需要量越來越大。有資料說明,世界上步進電機的年產量以10%以上的速度增長。國內對步進電機的需求同樣也與日俱增。實際工作中,很多工程技術人員和技術工人都希望比較全面地了解步進電機及其控制技術。
本文對步進電機的控制方法進行了詳細的論述,包括硬件接口的設計、軟件方案的設計和匯編控制程序的編寫。此種方法高效、方便、成本低廉,在實際應用中有著很高的利用價值。