作者簡介:趙瑞林(1976—) 男,陜西寶雞人,副教授,碩士,研究方向:控制工程與控制理論。(E-mail:zrl1976@163.com)。
摘要:各種步進電機專用開發系統,適用于數控機床及某些特定條件及系統。本文通過單片機為開發平臺,對步進電機進行控制,主要介紹步進電機控制器、驅動電路和LED顯示電路的設計,其中在步進電機控制器的設計中,重點闡述脈沖產生電路以及對速度的控制,實現對步進電機速度精確控制的開發系統。
關鍵詞:單片機;步進電機;恒變速控制系統
中圖分類號:TP273文獻標識碼:A
1引言
步進電機是一種將電脈沖轉換成相應的角位移或線位移的電磁裝置,它具有低價格,易實現調速,系統簡單,能快速啟動和停止,易定位準確,功率小等優點。因此,它作為唯一能以開環結構用于數控機床中的電動機,在經濟型數控機床系統獲得了廣泛的應用。在早期的控制方案中,控制步進電機運轉的時序脈沖由信號發生器產生,這種方式通用性差,成本高。采用單片機控制,則可以很方便的使不同相數的步進電機按任意一種可行的通用方式進行控制。本文就是實現的單片機對步進電機的數字控制系統。在這個控制系統中,控制器是它的核心,因為它擔負著產生脈沖,發送、接受控制命令的任務。
2系統總體方案硬件設計
本系統選用89C51單片機為控制核心,由89C51,74LS373,EPROM2732等器件構成最小系統,擴展的2732用來存放程序和表格。P1.0,P1.1,P1.2分別控制步進電機A,B,C各相繞線,89C51單片機的P1口只能驅動三個LSTTL輸入端,而被控制的步進電機要求高壓,大電流,故在P1口后加驅動器,以便驅動脈沖功率放大級的復合晶閘管,使電機繞組的靜態電流達到驅動電流。此外考慮到計算機的抗干擾能力及安全,將計算機與驅動器之間加上隔離接口[1]。系統硬件圖如圖1所示。
通過上面的系統框圖,我們可以看到本系統主要由四部分組成,即步進電機控制器,步進電機驅動電源,步進電機和LED狀態顯示,本文著重介紹步進電機控制器,步進電機驅動電源,LED顯示狀態三部分。
2.1步進電機控制器
步進電機控制器主要由單片機、晶振電路、8K RAM 存儲模塊、光電隔離等電路組成,如圖2所示[2]。
1)晶振電路
單片機的時鐘信號通常用兩種電路形式得到:內部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構成了內部振蕩方式。由于單片機內部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產生振蕩時鐘脈沖。內部振蕩方式的外部電路如圖1所示。本系統選C1和C2值為22pF.
2)光電隔離電路
利用光隔離器組成的光電隔離電路將控制器與外部的驅動電路隔離開來,使得外部電路的變化不至于影響或者損壞控制系統,從而提高系統的可靠性,增強抗千擾能力。光隔離器最重要的參數是電流傳輸比CTR,應注意通常其值為0.2-0.9.輸入數字信號提供一定的電流(5-10mA)時,光隔離器才會把放大的數字電平輸出。光隔離器聯結時注意信號正負邏輯。光隔離器的輸入、輸出端地線必須互相隔開,并且輸入、輸出端兩個電源必須單獨供電,否則,如果使用同一電源外部干擾信號可能通過電源串到系統中來。
3)存儲模塊
由于89C51單片機片內只有128個字節的RAM,而本系統中需要存儲的數據比較多,需要擴展外部RAM。
2.2步進脈沖產生電路
在采用單片機的步進電機開環系統中,控制系統的CP脈沖的頻率或者換向周期實際上就是控制步進電機的運行速度。系統可用兩種辦法實現步進電機的速度控制。一種是延時,一種是定時。
延時方法是在每次換向之后調用一個延時子程序,待延時結束后再次執行換向,這樣周而復始就可發出一定頻率的CP脈沖或換向周期。延時子程序的延時時間與換向程序所用的時間和,就是CP脈沖的周期。該方法簡單,占用資源少,全部由軟件實現,調用不同的子程序可以實現不同速度的運行。但占用CPU時間長,不能在運行時處理其他工作。因此只適合較簡單的控制過程。
定時方法是利用單片機系統中的定時器定時功能產生任意周期的定時信號,從而可方便的控制系統輸出CP脈沖的周期。當定時器啟動后,定時器從裝載的初值開始對系統及其周期進行加計數,當定時器溢出時,定時器產生中斷,系統轉去執行定時中斷子程序。將電機換向子程序放在定時中斷服務程序中,定時中斷一次,電機換向一次,從而實現電機的速度控制。由于從定時器裝載完重新啟動開始至定時器申請中斷止,有一定的時間間隔,造成定時時間增加,為了減少這種定時誤差,實現精確定時,要對重裝的計數初值作適當的調整。調整的重裝初值主要考慮兩個因素一是中斷響應所需的時間。二是重裝初值指令所占用的時間,包括在重裝初值前中斷服務程序重的其他指令因。綜合這兩個因素后,重裝計數初值的修正量取8個機器周期,即要使定時時間縮短8個機器周期。
用定時中斷方式來控制電動機變速時,實際上是不斷改變定時器裝載值的大小。在控制過程中,采用離散辦法來逼近理想的升降速曲線。為了減少每步計算裝載值的時間,系統設計時就把各離散點的速度所需的裝載值固化在系統的ROM中,系統在運行中用查表法查出所需的裝載值,這樣可大幅度減少占用CPU的時間,提高系統的響應速度[3]。
2.3LED運行狀態顯示
在本系統中,用74LS164作為顯示驅動,帶鎖存,采用串行接法,這樣可以節約I/0口資源,但要使用SIO,發送數據時容易控制。
3系統軟件部分
系統軟件的主要任務是產生脈沖序列,并能按規定的順序送出脈沖,從而控制步進電機的轉向和轉速。
3.1產生脈沖序列
其方法為先輸出一個高電平,對某一個記數單元進行累加,輸出一個高電平之后維持一段時間,然后輸出一個低電平在延時,延時長短由步進電機的速度決定。
3.2方向控制
通常有三種方法:
(1)三相單三拍:ABCA;
(2)三相雙三拍:ABBCCAAB;
(3)三相六拍:AABBBCCCAA;
按以上順序通電,步進電機正轉;按相反順序通電,步進電機反轉。
3.3速度控制
控制步進電機的運行速度,實際上就是控制系統發出CP脈沖的頻率或換相的周期。利用單片機芯片內部定時器的可編程性及定時功能,可以產生任意周期的定時信號,從而可方便的控制系統輸出CP脈沖的周期,實現對電動機速度的控制[4]。
3.4程序設計
本系統主要介紹三相六拍的控制軟件,具體設計過程詳見表1,圖3所示。
4小結
單片機作為性能極佳的控制處理器,它比步進電機的傳統控制器件,無論從功能,靈活性,可靠性等方面來說,更為優越。步進電機開環控制系統具有成本低、簡單、控制方便等優點。在此方案設計中,負載位置對控制電路無反饋,因此步進電機必須正確響應每次勵磁變化。如果勵磁頻率選擇不當,電機不能夠到新的要求位置,那么實際的負載位置相對于控制器所期待位置便會出現永久性誤差,也就是“失步”和“過沖”現象,可以采用位置反饋或位置反饋確定與轉子位置相適應的正確相位轉換,可以大大改善步進電機的性能,這樣就可以獲得更加精確的位置控制和高很多、平穩很多的速度了。
參考文獻
[1]婁俊,朱志甫.基于單片機AT89C51的步進電機控制系統設計[J].湖南農機,2010,9:34-36.
[2]楊忠寶,林海波.基于80C196MC的步進電機斬波恒流均勻細分電路的實現[J].微計算機信息,2003,7:59-61.
[3]王曉明.電動機的單片機控制[M].北京:北京航空航天大學出版社,2002.
[4]劉寶廷.步進電機及其驅動控制系統[M].哈爾濱:哈爾濱工業大學出版社,1997.