李文廣, 湯清華, 吳國安
(華中科技大學(xué)電子科學(xué)與技術(shù)系,湖北武漢 430074)
步進電機是數(shù)字控制電機,它將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰疲谡G闆r下,步進電機的轉(zhuǎn)速、停止的位置僅由脈沖信號的頻率和個數(shù)決定;同時,步進電機只有周期性的無累積誤差,精度和可靠性高,動態(tài)響應(yīng)快,易于起停、正反轉(zhuǎn)及變速。由于這些優(yōu)點,步進電動機已廣泛應(yīng)用于速度控制、位置控制的系統(tǒng)中,如數(shù)控機床、計算機設(shè)備、自動記錄儀等。隨著應(yīng)用的擴大,對步進電機的驅(qū)動控制要求也更高,如更小體積及更大的驅(qū)動能力等。
本文采用AVR單片機和ST公司的L6208電機驅(qū)動芯片作為電機驅(qū)動系統(tǒng)的設(shè)計方案,該系統(tǒng)的特點是集成度高、驅(qū)動電流大、精度及可靠性高、成本低,并具有很好的通用性,結(jié)合單片機串口通信可以實現(xiàn)遠程控制。
本文的步進電機控制系統(tǒng)采用上位機、下位機結(jié)構(gòu)。下位機負責(zé)進行指令譯碼,控制步進電機的轉(zhuǎn)動、停止和加、減速的實現(xiàn)。加速或減速過程采用軟件程序?qū)崿F(xiàn)。上位機為PC機,負責(zé)將控制指令傳遞給下位機,并接收下位機的狀態(tài)信息,上位機和下位機通過串口交換數(shù)據(jù)。
步進電機驅(qū)動系統(tǒng)硬件框圖如圖1所示,采用AVR單片機和L6208來控制兩相的步進電機,通過單片機來控制L6208實現(xiàn)驅(qū)動電機工作。單片機通過串口接收上位機發(fā)出的運行指令,根據(jù)指令控制電機執(zhí)行相應(yīng)的運動,并將相應(yīng)的狀態(tài)通過串口回傳給PC機。發(fā)光二極管用來檢測步進電機帶動的直線運動是否到達基準位置,一旦檢測到到達基準,高速比較器將光電轉(zhuǎn)換的信號送到AVR的外部中斷,單片機檢測到中斷后立即停止電機運行,該基準位置用來進行驅(qū)動部分的故障檢測,同時也能提高步進電機在直線位置控制中的精度。

圖1 驅(qū)動系統(tǒng)硬件框圖
單片機采用Atmel公司生產(chǎn)的ATmega128,它是8位低功耗增強型內(nèi)置Flash程序存儲器的精簡指令集結(jié)構(gòu)單片機,與51單片機相比,AVR單片機具有很高的執(zhí)行速度和非常豐富的片內(nèi)資源。
L6208是ST公司推出的步進電機驅(qū)動芯片,集成了由8個功率DMOS晶體管組成的兩個全橋、一個執(zhí)行相位生成功能的集中式邏輯電路和關(guān)斷時間恒定的脈寬調(diào)制(Pulse Width Modulation,PWM)電流控制器,該控制器內(nèi)部采用斬波電路的原理,解決了步進電機頻繁換相時電流劇烈波動而引起轉(zhuǎn)矩變化的問題。
L6208的解碼邏輯電路能夠生成3個不同的步進序列,使該器件能夠適合各種應(yīng)用。該芯片還具有熱關(guān)斷功能,其高壓側(cè)功率MOSFET具有無損耗的過流保護功能;而且工作電壓范圍廣(8~52 V),平均輸出電流可達 2.8 A,峰值5.6 A,可驅(qū)動絕大部分步進電機。即使將來因為某些特殊需要而選用其他型號的步進電機,也無需改變驅(qū)動電路,極大地方便了整個系統(tǒng)的后續(xù)改進優(yōu)化。輸入脈沖頻率可達到100 kHz,因此可滿足各種轉(zhuǎn)速要求嚴格的場合,此電路和以往的驅(qū)動方案相比具有明顯的優(yōu)點,驅(qū)動電流大、穩(wěn)定性好、實現(xiàn)方便、安全可靠。
具體的電路如圖2所示,Us+、UCC通過外接電源來提供,其中Us+為驅(qū)動電源,電源值范圍為8~52 V,由于不同型號的步進電機工作電壓不一定相同,因此該電壓要與所使用電機的工作電壓保持一致。UREF為參考電壓,由UCC經(jīng)過分壓電阻得到,其與SENSE腳上的電壓進行比較后控制全橋的關(guān)閉與否。MOTOR為驅(qū)動電路的輸出單元,OUT1A、OUT1B、OUT2A、OUT2B 與兩相步進電機相連。控制信號由ATmega128單片機提供,該系統(tǒng)采用單片機I/O中的PA4、PA5、PA6、PA7、PD5、PG1引腳配置為帶上拉電阻輸出并分別與驅(qū)動單元的 ENABLE、CW/CCW、CLOCK、CONTROL、RST、HALF/FULL 控制線相連。

圖2 步進電機驅(qū)動單元
ENABLE為L6208的使能信號,當輸入為低電平時,所有的MOSFET開關(guān)被關(guān)斷,高電平時使能工作。CW/CCW用來控制步進電機的轉(zhuǎn)向,高電平時,電機正轉(zhuǎn);低電平時,電機反轉(zhuǎn)。CLOCK是相位序列發(fā)生器的時鐘,上升沿觸發(fā)有效,可以通過調(diào)整CLOCK脈沖的頻率來控制相位序列發(fā)生器產(chǎn)生的步進序列的頻率,以實現(xiàn)對步進電機速度的控制。RST信號用來復(fù)位相位序列發(fā)生器,當RST信號為低電平時,使相位序列發(fā)生器處于初始狀態(tài)。HALF/FULL用來設(shè)置步進序列的模式,配合RESET信號可以將L6208設(shè)置為半步模式、單相全步模式及兩相全步模式三種步進模式。CONTROL信號用來設(shè)置衰減模式,高電平時為慢速衰減模式,低電平時為快速衰減模式。
軟件流程圖如圖3所示,系統(tǒng)上電后,首先對程序進行初始化,包括讓電機運行到參考位置,設(shè)置串口通信模式以便接收上位機的控制命令,在收到串口信息幀后,單片機對數(shù)據(jù)幀進行判斷,得到相應(yīng)的控制命令,控制步進電機執(zhí)行相應(yīng)的動作,在電機執(zhí)行完畢后單片機將當前的狀態(tài)通過串口上報給PC機,然后返回繼續(xù)等待下條指令。

圖3 電機控制流程圖
步進電機在轉(zhuǎn)動時,隨著電機轉(zhuǎn)動速度的增大其力矩將會下降。在很多場合需要步進電機從低速慢慢加速升到高速轉(zhuǎn)動過程,然后勻速轉(zhuǎn)動,在接近停止時采用減速停止的過程以使電機的運行更加平滑和穩(wěn)定。特別是在對響應(yīng)時間有要求的工作場合中,要求加、減速流程時間盡量短,恒速時間盡量長。步進電機常用的加、減速曲線有:直線型曲線、S型曲線、指數(shù)型曲線。該系統(tǒng)要求在起動時有較高的力矩,勻速時盡可能快,減速確保平穩(wěn)。因此,采用簡單的直線型加、減速曲線,L6208可以通過改變CLOCK脈沖的頻率來實現(xiàn)對電機轉(zhuǎn)速的改變,在軟件中可以很容易通過改變軟件延時來實現(xiàn)該CLOCK脈沖的頻率改變。電機直線加、減速控制流程如圖4所示。當步進脈沖數(shù)大于等于500時,電機先加速然后勻速再減速停止;當步進脈沖數(shù)大于等于250且小于500時,電機先加速起動然后又開始減速停止;當步進脈沖數(shù)小于250時,電機只做勻速步進。主要是在短程步進時能滿足時間要求,而在遠距離步進時希望能盡可能地縮短時間。

圖4 電機加、減速流程
該步進電機控制系統(tǒng)已成功應(yīng)用于電可調(diào)濾波器中。電可調(diào)濾波器是一種中心頻率可變的濾波器,濾波器的基本元件為電容和電感,控制濾波器內(nèi)部的電容或者電感就能實現(xiàn)濾波器中心頻率的變化。平板電容的容值及面積的大小與距離長短有關(guān),通過步進電機改變兩平板之間的距離能得到不同的電容值,進而可以實現(xiàn)濾波器中心頻率的改變。目前,采用該系統(tǒng)的電可調(diào)濾波器的中心頻率精確度可控制在50 kHz以內(nèi),并且具有很高的重復(fù)性。
該系統(tǒng)結(jié)合單片機和步進電機驅(qū)動芯片設(shè)計步進電機控制系統(tǒng),該控制系統(tǒng)硬件電路設(shè)計簡單,結(jié)構(gòu)緊湊、運行可靠;因使用專用驅(qū)動芯片,軟件編寫簡單;AVR單片機的JTAG接口使得程序調(diào)試和軟件更新更加方便。該系統(tǒng)能滿足42、56、82等系列的兩相步進電機的控制,實踐表明該控制系統(tǒng)效果好。該系統(tǒng)還可通過串口通信實現(xiàn)步進電機的遠程控制,或與其他反饋檢測環(huán)節(jié)連接,組成閉環(huán)控制系統(tǒng)用于精度和可靠性要求更高的控制系統(tǒng)中。
[1]馬潮.AVR單片機嵌入式系統(tǒng)原理與應(yīng)用實踐[M].北京:北京航空航天大學(xué)出版社,2007.
[2]Atmel Corporation.Atmel data sheet(ATmega128 Rev.2467P-08/07)[G].2007.
[3]L6208 Datasheet.STMicroelectronics[G].2003.