基于單片機的步進電機開環(huán)控制系統(tǒng)
摘要: 通過ATMEL89C51單片機對步進電機進行控制,主要介紹了步進電機控制器、驅(qū)動電路和LED顯示電路的設(shè)計,實現(xiàn)了步進電機的開環(huán)控制。在步進電機控制器的設(shè)計中,重點闡述了脈沖產(chǎn)生電路以及對速度的控制。該系統(tǒng)具有成本低、控制方便的特點。
0 引言
步進電機是一種將電脈沖信號變換成相應(yīng)的角位移或直線位移的機電執(zhí)行元件??刂撇竭M電機的輸入脈沖數(shù)量、頻率及電機各相繞組的接通順序,可以得到各種需要的運行特性。尤其與數(shù)字設(shè)備配套時,體現(xiàn)了更大的優(yōu)越性,因此廣泛應(yīng)用于數(shù)字控制系統(tǒng)中。
本文介紹已實現(xiàn)的單片機對步進電機的數(shù)字控制系統(tǒng)。該控制系統(tǒng)中,控制器擔(dān)負著產(chǎn)生脈沖以及發(fā)送、接收控制命令的任務(wù)。本文對控制器的設(shè)計,尤其是脈沖產(chǎn)生電路的設(shè)計作了詳細的介紹。
1 系統(tǒng)設(shè)計
步進電機開環(huán)控制系統(tǒng)框圖如圖1所示。系統(tǒng)由步進電機控制器、步進電機驅(qū)動電源、步進電機和LED狀態(tài)顯示等4部分組成,本文著重介紹步進電機控制器、步進電機驅(qū)動電源、LED 顯示狀態(tài)3部分。
圖1 步進電機開環(huán)控制系統(tǒng)框圖
1. 1 步進電機控制器
步進電機控制器主要由單片機、晶振電路、8K RAM和光電隔離電路等組成(見圖2) 。
圖2 步進電機控制器組成
(1) 晶振電路
單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路如圖3所示。本系統(tǒng)選C1和C2值為30 pF。
圖3 內(nèi)部振蕩電路
(2) 光電隔離電路
利用光隔離器組成的光電隔離電路將控制器與外部的驅(qū)動電路隔離開來,使得外部電路的變化不至于影響或者損壞控制系統(tǒng),從而提高系統(tǒng)
的可靠性,增強抗千擾能力。光隔離器最重要的參數(shù)是電流傳輸比CTR,通常其值為0. 2~0. 9。輸入數(shù)字信號提供一定的電流(5~10 mA)時,光
隔離器才會輸出放大的數(shù)字電平。
光隔離器連接時注意信號正負邏輯。光隔離器的輸入、輸出端地線必須互相隔開,并且輸入、輸出端兩個電源必須單獨供電;如果使用同一電源,外部干擾信號可能通過電源串到系統(tǒng)中來。
(3) 存儲模塊
89C51單片機片內(nèi)只有128 B的RAM,而本系統(tǒng)中需要存儲的數(shù)據(jù)較多,需擴展外部RAM。
(4) 步進脈沖產(chǎn)生電路
在采用單片機的步進電機開環(huán)系統(tǒng)中,控制系統(tǒng)的CP脈沖的頻率或換向周期實際上是控制步進電機的運行速度。系統(tǒng)可用兩種辦法實現(xiàn)步
進電機的速度控制:一種是延時,一種是定時。
延時方法是在每次換向之后調(diào)用一個延時子程序,待延時結(jié)束后再次執(zhí)行換向,這樣周而復(fù)始就可發(fā)出一定頻率的CP脈沖或換向周期。延時子程序的延時時間與換向程序所用的時間和就是CP脈沖的周期。該方法簡單,占用資源少,全部由軟件實現(xiàn),調(diào)用不同的子程序可以實現(xiàn)不同速度的運行;但占用CPU時間長,不能在運行時處理其他工作,因此只適合較簡單的控制過程。
定時方法是利用單片機系統(tǒng)中的定時器定時功能產(chǎn)生任意周期的定時信號,從而可方便地控制系統(tǒng)輸出CP脈沖的周期。當(dāng)定時器起動后,定時器從裝載的初值開始對系統(tǒng)及其周期進行加計數(shù);當(dāng)定時器溢出時,定時器產(chǎn)生中斷,系統(tǒng)轉(zhuǎn)去執(zhí)行定時中斷子程序。將電機換向子程序放在定時中斷服務(wù)程序中,定時中斷一次,電機換向一次,從而實現(xiàn)電機的速度控制。由于從定時器裝載完重新起動開始至定時器申請中斷止,有一定的時間間隔,造成定時時間增加。為了減少這種定時誤差,實現(xiàn)精確定時,要對重裝的計數(shù)初值作適當(dāng)調(diào)整。調(diào)整的重裝初值主要考慮兩個因素:一是中斷響應(yīng)所需的時間;二是重裝初值指令所占用的時間,包括在重裝初值前中斷服務(wù)程序中的其他指令因素。綜合這兩個因素后,重裝計數(shù)
初值的修正量取8個機器周期,即要使定時時間縮短8個機器周期。
用定時中斷方式控制電動機變速時,實際上是不斷改變定時器裝載值的大小。在控制過程中,采用離散辦法逼近理想升降速曲線。為了減
少每步計算裝載值的時間,系統(tǒng)設(shè)計時就把各離散點的速度所需的裝載值固化在系統(tǒng)的ROM中,系統(tǒng)在運行中用查表法查出所需的裝載值,這
樣可大幅減少占用CPU的時間,提高系統(tǒng)的響應(yīng)速度。其流程圖如圖4所示。
圖4 加減速控制流程圖
1. 2 步進電機驅(qū)動電路
步進電機驅(qū)動電路由專用芯片L297、L298組合而成。L297單片步進電機控制集成電路適用于雙極性二相步進電機或四相單極性步進電機
的控制,與H橋式驅(qū)動芯片L298組合成完整的步進電機固定斬波頻率的PWM恒流斬波驅(qū)動器。
L297步進電機控制集成電路產(chǎn)生四相驅(qū)動信號,用以控制雙極性二相步進電機或四相單極性步進電機,可以采用半步、二相勵磁和單相勵磁
3種方式的切換。使用L297的突出特點是外部只需時鐘、方向和工作方式3 個輸入信號,同時L297自動產(chǎn)生電機勵磁相序,減輕了微處理器控
制和編程負擔(dān)。L297具有D IP20和SO20 2種封裝形式,可用來控制集成橋式驅(qū)動電路或分立元件組成的驅(qū)動電路。
L297主要由譯碼器、固定斬波頻率的PWM恒流斬波器(2個)以及輸出邏輯控制組成。
L298芯片是一種高電壓、大電流、雙H橋功率集成電路,可用來驅(qū)動繼電器線圈、直流電機和步進電機等感性負載。每個H橋的下側(cè)橋臂晶體管的發(fā)射極連接在一起,相應(yīng)的外接線端可用來連接電流檢測電阻。
由L297、L298 組成的步進電機驅(qū)動應(yīng)用電路如圖5所示。該電路為固定斬波頻率恒流斬波驅(qū)動方式,適用于二相雙極性步進電機或四相單極性步進電機, 最高電壓46 V, 每相電流可達2 A。用2片L298和1片L297配合使用,可驅(qū)動更大功率的二相步進電機。
圖5 步進電機驅(qū)動器組成
L297有3種工作方式:半步工作方式、雙向勵磁工作方式和單項勵磁工作方式。雙向勵磁工作方式的相序波形如圖6所示。
圖6 雙向勵磁時相序波形
當(dāng)L297的HALF /FULL為低電平,如譯碼器工作在奇數(shù)狀態(tài)( 1、3、5、7)時,為雙向勵磁工作方式。該模式下,禁止信號INH1和INH2輸出保持
高電平。如譯碼器工作在偶數(shù)狀態(tài)下( 2、4、6、8) ,為單相勵磁方式; 當(dāng)HALF /FULL為高電平時,譯碼器產(chǎn)生半步工作方式相序,也就是8步格雷碼時序。
1. 3 LED運行狀態(tài)顯示
本系統(tǒng)中,用74LS164 作為顯示驅(qū)動,帶鎖存,采用串行接法,可以節(jié)約I/O口資源,但要使用SIO,發(fā)送數(shù)據(jù)時容易控制。
2 結(jié)語
步進電機開環(huán)控制系統(tǒng)具有成本低、簡單、控制方便等優(yōu)點。在此方案中,負載位置對控制電路無反饋,因此步進電機必須正確響應(yīng)每次勵磁變化。如果勵磁頻率選擇不當(dāng),電機不能達到新的要求位置,那么實際的負載位置相對控制器所期待位置會出現(xiàn)永久性誤差,也就是會產(chǎn)生“失步”和“過沖”現(xiàn)象。可以采用位置反饋或位置反饋確定與轉(zhuǎn)子位置相適應(yīng)獲得正確相位轉(zhuǎn)換,從而大大改善步進電機的性能,這樣就可以進行更加精確的位置控制和獲得高速、平穩(wěn)的速度了。