李文廣, 湯清華, 吳國安
(華中科技大學(xué)電子科學(xué)與技術(shù)系,湖北武漢 430074)
步進(jìn)電機(jī)是數(shù)字控制電機(jī),它將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰?,在正常情況下,步進(jìn)電機(jī)的轉(zhuǎn)速、停止的位置僅由脈沖信號的頻率和個數(shù)決定;同時,步進(jìn)電機(jī)只有周期性的無累積誤差,精度和可靠性高,動態(tài)響應(yīng)快,易于起停、正反轉(zhuǎn)及變速。由于這些優(yōu)點(diǎn),步進(jìn)電動機(jī)已廣泛應(yīng)用于速度控制、位置控制的系統(tǒng)中,如數(shù)控機(jī)床、計算機(jī)設(shè)備、自動記錄儀等。隨著應(yīng)用的擴(kuò)大,對步進(jìn)電機(jī)的驅(qū)動控制要求也更高,如更小體積及更大的驅(qū)動能力等。
本文采用AVR單片機(jī)和ST公司的L6208電機(jī)驅(qū)動芯片作為電機(jī)驅(qū)動系統(tǒng)的設(shè)計方案,該系統(tǒng)的特點(diǎn)是集成度高、驅(qū)動電流大、精度及可靠性高、成本低,并具有很好的通用性,結(jié)合單片機(jī)串口通信可以實現(xiàn)遠(yuǎn)程控制。
本文的步進(jìn)電機(jī)控制系統(tǒng)采用上位機(jī)、下位機(jī)結(jié)構(gòu)。下位機(jī)負(fù)責(zé)進(jìn)行指令譯碼,控制步進(jìn)電機(jī)的轉(zhuǎn)動、停止和加、減速的實現(xiàn)。加速或減速過程采用軟件程序?qū)崿F(xiàn)。上位機(jī)為PC機(jī),負(fù)責(zé)將控制指令傳遞給下位機(jī),并接收下位機(jī)的狀態(tài)信息,上位機(jī)和下位機(jī)通過串口交換數(shù)據(jù)。
步進(jìn)電機(jī)驅(qū)動系統(tǒng)硬件框圖如圖1所示,采用AVR單片機(jī)和L6208來控制兩相的步進(jìn)電機(jī),通過單片機(jī)來控制L6208實現(xiàn)驅(qū)動電機(jī)工作。單片機(jī)通過串口接收上位機(jī)發(fā)出的運(yùn)行指令,根據(jù)指令控制電機(jī)執(zhí)行相應(yīng)的運(yùn)動,并將相應(yīng)的狀態(tài)通過串口回傳給PC機(jī)。發(fā)光二極管用來檢測步進(jìn)電機(jī)帶動的直線運(yùn)動是否到達(dá)基準(zhǔn)位置,一旦檢測到到達(dá)基準(zhǔn),高速比較器將光電轉(zhuǎn)換的信號送到AVR的外部中斷,單片機(jī)檢測到中斷后立即停止電機(jī)運(yùn)行,該基準(zhǔn)位置用來進(jìn)行驅(qū)動部分的故障檢測,同時也能提高步進(jìn)電機(jī)在直線位置控制中的精度。
圖1 驅(qū)動系統(tǒng)硬件框圖
單片機(jī)采用Atmel公司生產(chǎn)的ATmega128,它是8位低功耗增強(qiáng)型內(nèi)置Flash程序存儲器的精簡指令集結(jié)構(gòu)單片機(jī),與51單片機(jī)相比,AVR單片機(jī)具有很高的執(zhí)行速度和非常豐富的片內(nèi)資源。
L6208是ST公司推出的步進(jìn)電機(jī)驅(qū)動芯片,集成了由8個功率DMOS晶體管組成的兩個全橋、一個執(zhí)行相位生成功能的集中式邏輯電路和關(guān)斷時間恒定的脈寬調(diào)制(Pulse Width Modulation,PWM)電流控制器,該控制器內(nèi)部采用斬波電路的原理,解決了步進(jìn)電機(jī)頻繁換相時電流劇烈波動而引起轉(zhuǎn)矩變化的問題。
L6208的解碼邏輯電路能夠生成3個不同的步進(jìn)序列,使該器件能夠適合各種應(yīng)用。該芯片還具有熱關(guān)斷功能,其高壓側(cè)功率MOSFET具有無損耗的過流保護(hù)功能;而且工作電壓范圍廣(8~52 V),平均輸出電流可達(dá) 2.8 A,峰值5.6 A,可驅(qū)動絕大部分步進(jìn)電機(jī)。即使將來因為某些特殊需要而選用其他型號的步進(jìn)電機(jī),也無需改變驅(qū)動電路,極大地方便了整個系統(tǒng)的后續(xù)改進(jìn)優(yōu)化。輸入脈沖頻率可達(dá)到100 kHz,因此可滿足各種轉(zhuǎn)速要求嚴(yán)格的場合,此電路和以往的驅(qū)動方案相比具有明顯的優(yōu)點(diǎn),驅(qū)動電流大、穩(wěn)定性好、實現(xiàn)方便、安全可靠。
具體的電路如圖2所示,Us+、UCC通過外接電源來提供,其中Us+為驅(qū)動電源,電源值范圍為8~52 V,由于不同型號的步進(jìn)電機(jī)工作電壓不一定相同,因此該電壓要與所使用電機(jī)的工作電壓保持一致。UREF為參考電壓,由UCC經(jīng)過分壓電阻得到,其與SENSE腳上的電壓進(jìn)行比較后控制全橋的關(guān)閉與否。MOTOR為驅(qū)動電路的輸出單元,OUT1A、OUT1B、OUT2A、OUT2B 與兩相步進(jìn)電機(jī)相連??刂菩盘栍葾Tmega128單片機(jī)提供,該系統(tǒng)采用單片機(jī)I/O中的PA4、PA5、PA6、PA7、PD5、PG1引腳配置為帶上拉電阻輸出并分別與驅(qū)動單元的 ENABLE、CW/CCW、CLOCK、CONTROL、RST、HALF/FULL 控制線相連。
圖2 步進(jìn)電機(jī)驅(qū)動單元
ENABLE為L6208的使能信號,當(dāng)輸入為低電平時,所有的MOSFET開關(guān)被關(guān)斷,高電平時使能工作。CW/CCW用來控制步進(jìn)電機(jī)的轉(zhuǎn)向,高電平時,電機(jī)正轉(zhuǎn);低電平時,電機(jī)反轉(zhuǎn)。CLOCK是相位序列發(fā)生器的時鐘,上升沿觸發(fā)有效,可以通過調(diào)整CLOCK脈沖的頻率來控制相位序列發(fā)生器產(chǎn)生的步進(jìn)序列的頻率,以實現(xiàn)對步進(jìn)電機(jī)速度的控制。RST信號用來復(fù)位相位序列發(fā)生器,當(dāng)RST信號為低電平時,使相位序列發(fā)生器處于初始狀態(tài)。HALF/FULL用來設(shè)置步進(jìn)序列的模式,配合RESET信號可以將L6208設(shè)置為半步模式、單相全步模式及兩相全步模式三種步進(jìn)模式。CONTROL信號用來設(shè)置衰減模式,高電平時為慢速衰減模式,低電平時為快速衰減模式。
軟件流程圖如圖3所示,系統(tǒng)上電后,首先對程序進(jìn)行初始化,包括讓電機(jī)運(yùn)行到參考位置,設(shè)置串口通信模式以便接收上位機(jī)的控制命令,在收到串口信息幀后,單片機(jī)對數(shù)據(jù)幀進(jìn)行判斷,得到相應(yīng)的控制命令,控制步進(jìn)電機(jī)執(zhí)行相應(yīng)的動作,在電機(jī)執(zhí)行完畢后單片機(jī)將當(dāng)前的狀態(tài)通過串口上報給PC機(jī),然后返回繼續(xù)等待下條指令。
圖3 電機(jī)控制流程圖
步進(jìn)電機(jī)在轉(zhuǎn)動時,隨著電機(jī)轉(zhuǎn)動速度的增大其力矩將會下降。在很多場合需要步進(jìn)電機(jī)從低速慢慢加速升到高速轉(zhuǎn)動過程,然后勻速轉(zhuǎn)動,在接近停止時采用減速停止的過程以使電機(jī)的運(yùn)行更加平滑和穩(wěn)定。特別是在對響應(yīng)時間有要求的工作場合中,要求加、減速流程時間盡量短,恒速時間盡量長。步進(jìn)電機(jī)常用的加、減速曲線有:直線型曲線、S型曲線、指數(shù)型曲線。該系統(tǒng)要求在起動時有較高的力矩,勻速時盡可能快,減速確保平穩(wěn)。因此,采用簡單的直線型加、減速曲線,L6208可以通過改變CLOCK脈沖的頻率來實現(xiàn)對電機(jī)轉(zhuǎn)速的改變,在軟件中可以很容易通過改變軟件延時來實現(xiàn)該CLOCK脈沖的頻率改變。電機(jī)直線加、減速控制流程如圖4所示。當(dāng)步進(jìn)脈沖數(shù)大于等于500時,電機(jī)先加速然后勻速再減速停止;當(dāng)步進(jìn)脈沖數(shù)大于等于250且小于500時,電機(jī)先加速起動然后又開始減速停止;當(dāng)步進(jìn)脈沖數(shù)小于250時,電機(jī)只做勻速步進(jìn)。主要是在短程步進(jìn)時能滿足時間要求,而在遠(yuǎn)距離步進(jìn)時希望能盡可能地縮短時間。
圖4 電機(jī)加、減速流程
該步進(jìn)電機(jī)控制系統(tǒng)已成功應(yīng)用于電可調(diào)濾波器中。電可調(diào)濾波器是一種中心頻率可變的濾波器,濾波器的基本元件為電容和電感,控制濾波器內(nèi)部的電容或者電感就能實現(xiàn)濾波器中心頻率的變化。平板電容的容值及面積的大小與距離長短有關(guān),通過步進(jìn)電機(jī)改變兩平板之間的距離能得到不同的電容值,進(jìn)而可以實現(xiàn)濾波器中心頻率的改變。目前,采用該系統(tǒng)的電可調(diào)濾波器的中心頻率精確度可控制在50 kHz以內(nèi),并且具有很高的重復(fù)性。
該系統(tǒng)結(jié)合單片機(jī)和步進(jìn)電機(jī)驅(qū)動芯片設(shè)計步進(jìn)電機(jī)控制系統(tǒng),該控制系統(tǒng)硬件電路設(shè)計簡單,結(jié)構(gòu)緊湊、運(yùn)行可靠;因使用專用驅(qū)動芯片,軟件編寫簡單;AVR單片機(jī)的JTAG接口使得程序調(diào)試和軟件更新更加方便。該系統(tǒng)能滿足42、56、82等系列的兩相步進(jìn)電機(jī)的控制,實踐表明該控制系統(tǒng)效果好。該系統(tǒng)還可通過串口通信實現(xiàn)步進(jìn)電機(jī)的遠(yuǎn)程控制,或與其他反饋檢測環(huán)節(jié)連接,組成閉環(huán)控制系統(tǒng)用于精度和可靠性要求更高的控制系統(tǒng)中。
[1]馬潮.AVR單片機(jī)嵌入式系統(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.