摘 要: 設(shè)計(jì)了一種微型步進(jìn)電機(jī)驅(qū)動(dòng)控制器,通過(guò)上位機(jī)界面修改步進(jìn)電機(jī)轉(zhuǎn)速,、旋轉(zhuǎn)角度,、細(xì)分系數(shù)。該設(shè)計(jì)以STM32F103T8U6作為主控制器,,以A4988步進(jìn)電機(jī)驅(qū)動(dòng)設(shè)備,,上位機(jī)串口界面作為人機(jī)接口界面,詳細(xì)分析步進(jìn)電機(jī)驅(qū)動(dòng)設(shè)備的工作原理,、各部分接口電路以及控制器設(shè)計(jì)方案,。通過(guò)實(shí)物設(shè)計(jì)實(shí)現(xiàn)了步進(jìn)電機(jī)轉(zhuǎn)速、正反轉(zhuǎn)任意角度和細(xì)分系數(shù)的控制,,并通過(guò)精確計(jì)算步進(jìn)脈沖個(gè)數(shù)實(shí)現(xiàn)了任意旋轉(zhuǎn)角度的精確控制,,該驅(qū)動(dòng)控制器步進(jìn)角度精度高達(dá)0.112 5度。
關(guān)鍵詞: 微型步進(jìn)電機(jī),;STM32F103T8U6,;A4988;串口,;正反轉(zhuǎn)
0 引言
自從上世紀(jì)20年代英國(guó)人開(kāi)發(fā)了步進(jìn)電機(jī),,50年代后期晶體管的發(fā)明也逐漸應(yīng)用在步進(jìn)電機(jī)上,并使得步進(jìn)電機(jī)的數(shù)字化控制更為方便,。經(jīng)過(guò)不斷改良,,今日步進(jìn)電機(jī)已廣泛運(yùn)用在生產(chǎn)過(guò)程中要求自動(dòng)化、省人力,、效率高的機(jī)器中,,尤其在重視速度、位置控制,、需要精確操作指令動(dòng)作的靈活控制場(chǎng)合步進(jìn)電機(jī)用得最多,。
本文旨在以STM32F103T8U6[1]作為A4988[2]控制器,并以A4988作為微型步進(jìn)電機(jī)驅(qū)動(dòng)器設(shè)計(jì)步進(jìn)電機(jī)控制器模塊,,實(shí)現(xiàn)閉環(huán)精確控制微型步進(jìn)電機(jī)的步進(jìn)角度的功能,,并從多方面深入分析A4988的工作原理以及微型步進(jìn)電機(jī)速度控制和步進(jìn)角度精確控制策略[3-4]。
1 A4988的特性和工作原理
1.1 A4988的特性
A4988是一款完全的微步電動(dòng)機(jī)驅(qū)動(dòng)器,,帶有內(nèi)置轉(zhuǎn)換器,,易于操作,。該產(chǎn)品可在全、半,、1/4,、1/8及1/16步進(jìn)模式時(shí)操作雙極步進(jìn)電動(dòng)機(jī),輸出驅(qū)動(dòng)性能可達(dá)35 V及±2 A,。A4988包括一個(gè)固定關(guān)斷時(shí)間電流穩(wěn)壓器,,該穩(wěn)壓器可在慢或混合衰減模式下工作。轉(zhuǎn)換器是A4988易于實(shí)施的關(guān)鍵,。只要在“步進(jìn)”輸入中輸入一個(gè)脈沖,,即可驅(qū)動(dòng)電動(dòng)機(jī)產(chǎn)生微步。無(wú)須進(jìn)行相位順序表,、高頻率控制行或復(fù)雜的界面編程,。A4988界面非常適合復(fù)雜的微處理器不可用或過(guò)載的應(yīng)用。在微步運(yùn)行時(shí),,A4988內(nèi)的斬波控制可自動(dòng)選擇電流衰減模式(慢或混合),。在混合衰減模式下,該器件初始設(shè)置為在部分固定停機(jī)時(shí)間內(nèi)快速衰減,,然后在余下的停機(jī)時(shí)間慢速衰減,。混合衰減電流控制方案能減少可聽(tīng)到的電動(dòng)機(jī)噪音,,增加步進(jìn)精確度并減少功耗,。提供內(nèi)部同步整流控制電路,以改善脈寬調(diào)制(PWM)操作時(shí)的功率消耗,。內(nèi)部電路保護(hù)包括:帶滯后的過(guò)熱關(guān)機(jī),、欠壓鎖定(UVLO)及交叉電流保護(hù),不需要特別的通電排序,。
1.2 A4988的工作原理
為了更加清晰地分析A4988的工作原理,,首先深入分析A4988的內(nèi)部結(jié)構(gòu)。如圖1所示為A4988的內(nèi)部結(jié)構(gòu)圖和典型的外部電路連接圖,。
由圖1所示,,A4988有一個(gè)編譯器(Translator),主要負(fù)責(zé)微控制器和驅(qū)動(dòng)電路的信息交互,。通過(guò)該編譯器可產(chǎn)生DA信號(hào),,配合比較器輔助PWM鎖存器修復(fù)衰減信號(hào),并且該編譯器能夠產(chǎn)生邏輯電平控制邏輯控制器,,邏輯控制器再配合電流調(diào)節(jié)器和N型MOS管驅(qū)動(dòng)電壓共同驅(qū)動(dòng)兩路全橋電路,。電路中所標(biāo)電容必須嚴(yán)格與技術(shù)文檔中所給的相同,Rosc主要更改并修復(fù)衰減模式,,接VDD自動(dòng)修復(fù)衰減,,接GND電流衰減設(shè)置為增減電流同時(shí)修復(fù)。SENSE1和SENSE2檢測(cè)驅(qū)動(dòng)輸出電壓,,實(shí)則是實(shí)時(shí)檢測(cè)輸出電流,,供電流調(diào)節(jié)器調(diào)節(jié)輸出電流信號(hào),形成閉環(huán)控制,。因此SENSE1和SENSE2管腳連接的電阻非常關(guān)鍵,,一般這個(gè)電阻的阻值在零點(diǎn)幾歐姆左右。
1.3 A4988邏輯控制策略
A4988控制邏輯簡(jiǎn)單,,主要分為睡眠,、正反轉(zhuǎn)、復(fù)位,、使能,、細(xì)分等模式控制。
?。?)睡眠模式:Sleep管腳電平置0,,進(jìn)入睡眠模式,驅(qū)動(dòng)器輸出待機(jī)模式,;Sleep管腳置1,,驅(qū)動(dòng)器處于正常工作狀態(tài);
?。?)正反轉(zhuǎn)模式:正轉(zhuǎn)模式DIR管腳置0或1,,反轉(zhuǎn)模式置1或0;
?。?)復(fù)位模式:復(fù)位模式下容易消耗能量,,產(chǎn)生的沖擊電流較大。直接RESET管腳置1,,在不影響系統(tǒng)工作時(shí)RESET管腳置0復(fù)位,。一旦驅(qū)動(dòng)芯片復(fù)位,系統(tǒng)將回歸到原始A4988 I/O端口控制狀態(tài),;
?。?)使能模式:使能模式控制系統(tǒng)是否開(kāi)始工作,ENBALBE管腳置0開(kāi)始工作,,置1停止工作,;
(5)細(xì)分模式[5]:通過(guò)MS1,、MS2,、MS3控制細(xì)分系數(shù),A4988細(xì)分為1/16細(xì)分為最小,,通過(guò)計(jì)算角度值可得最小細(xì)分角度為全步進(jìn)角度的1/16,。A4988驅(qū)動(dòng)邏輯控制如表1所示,。
2 控制器電路設(shè)計(jì)
根據(jù)A4988芯片的工作原理,控制器電路主要分為上位機(jī)串口模塊,、STM32最小系統(tǒng)板模塊和A4988微型步進(jìn)電機(jī)驅(qū)動(dòng)模塊,。通過(guò)STM32F103T8微控制器接收上位機(jī)的控制指令,通過(guò)識(shí)別分析之后執(zhí)行步進(jìn)電機(jī)控制操作,。內(nèi)部步進(jìn)電機(jī)驅(qū)動(dòng)控制器總體設(shè)計(jì)框圖如圖2所示,。
2.1 硬件電路設(shè)計(jì)
(1)串口通信模塊[6]:主要負(fù)責(zé)上位機(jī)和下位機(jī)通信,。上位機(jī)通過(guò)串口通信模塊發(fā)送相應(yīng)的功能指令給下位機(jī),,下位機(jī)執(zhí)行上位機(jī)的指令并控制A4988驅(qū)動(dòng)器模塊驅(qū)動(dòng)步進(jìn)電機(jī)。如圖3所示,。
?。?)STM32控制器模塊:微型步進(jìn)電機(jī)控制器的主控模塊,接收上位機(jī)的指令,,執(zhí)行步進(jìn)電機(jī)控制指令,,主要控制步進(jìn)電機(jī)細(xì)分操作、速度控制,、旋轉(zhuǎn)角度控制,。如圖4所示。
?。?)A4988微型步進(jìn)電機(jī)驅(qū)動(dòng)器模塊:如圖5所示,主要控制并驅(qū)動(dòng)微型步進(jìn)電機(jī),,執(zhí)行主控制器的各項(xiàng)驅(qū)動(dòng)操作。
2.2 功能設(shè)計(jì)
該微型步進(jìn)電機(jī)控制器的設(shè)計(jì)要求:
?。?)實(shí)現(xiàn)步進(jìn)電機(jī)細(xì)分控制
細(xì)分控制只需控制MS1,、MS2、MS3三個(gè)引腳即可得到相應(yīng)的細(xì)分結(jié)果,。細(xì)分角度值等于步進(jìn)角度乘以細(xì)分系數(shù),,細(xì)分系數(shù)通過(guò)上位機(jī)發(fā)送命令得到,初始細(xì)分值為1,,即全步進(jìn)方式運(yùn)行,。
(2)實(shí)現(xiàn)步進(jìn)電機(jī)速度控制
通過(guò)測(cè)試,,影響步進(jìn)電機(jī)轉(zhuǎn)速的主要因素有步進(jìn)脈沖頻率和細(xì)分系數(shù),。步進(jìn)脈沖頻率過(guò)高會(huì)造成步進(jìn)電機(jī)失步,經(jīng)過(guò)測(cè)試400 Hz時(shí)步進(jìn)電機(jī)不會(huì)失步,,且經(jīng)過(guò)細(xì)分之后步進(jìn)電機(jī)旋轉(zhuǎn)不會(huì)出現(xiàn)強(qiáng)烈的震動(dòng)和聲音,。當(dāng)細(xì)分系數(shù)越來(lái)越小時(shí),步進(jìn)電機(jī)的旋轉(zhuǎn)速度也會(huì)隨之越來(lái)越小。此原因之一就是當(dāng)細(xì)分系數(shù)不變時(shí),,每進(jìn)一個(gè)脈沖走一步,,脈沖頻率越高,步進(jìn)電機(jī)旋轉(zhuǎn)速度越快,;原因之二就是當(dāng)步進(jìn)電機(jī)輸入脈沖頻率不變時(shí),,每1/2細(xì)分步進(jìn)電機(jī)的進(jìn)角度就變?yōu)樵瓉?lái)的1/2度,因此脈沖個(gè)數(shù)就增加了一倍,,自然速度就降低為原來(lái)的1/2。
?。?)實(shí)現(xiàn)步進(jìn)電機(jī)任意角度旋轉(zhuǎn)控制
步進(jìn)電機(jī)任意角度旋轉(zhuǎn)控制是相對(duì)于A4988驅(qū)動(dòng)旋轉(zhuǎn)最小角度(0.1125度)而言,,且A4988是通過(guò)脈沖驅(qū)動(dòng)步進(jìn)電機(jī),通過(guò)計(jì)算脈沖個(gè)數(shù)乘以細(xì)分角度即可得旋轉(zhuǎn)角度值,。A4988輸入脈沖個(gè)數(shù)可通過(guò)微控制器外部中斷I/O口計(jì)算PWM波個(gè)數(shù)得到,。
3 軟件設(shè)計(jì)
STM32F103T8U6是32 bit微控制器,能產(chǎn)生獨(dú)立PWM波,,PWM脈寬可調(diào)且頻率可調(diào),,方便步進(jìn)電機(jī)驅(qū)動(dòng)調(diào)試速度;可提供外部中斷為檢測(cè)PWM輸出脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),,為實(shí)現(xiàn)旋轉(zhuǎn)步進(jìn)電機(jī)旋轉(zhuǎn)角度控制提供精確數(shù)據(jù),,這樣就形成了角度閉環(huán)控制;可提供串口通信,,供上位機(jī)設(shè)備和微控制器進(jìn)行信息交互,;該微控制器I/O端口少價(jià)格便宜完全可替代16 bit單片機(jī)進(jìn)行復(fù)雜的邏輯運(yùn)算。STM32控制方式:(1)接收上位機(jī)控制指令并返回接收指令,,表示接收成功,,否則接收失敗,;(2)通過(guò)接收到的上位機(jī)控制指令,,分別轉(zhuǎn)化成控制步進(jìn)電機(jī)指令,控制步進(jìn)電機(jī)工作模式,。
3.1 串口通信指令設(shè)計(jì)
串口通信上位機(jī)發(fā)送指令有:(1)啟動(dòng)模式,;(2)睡眠模式;(3)復(fù)位模式,;(4)速度設(shè)置模式,;(5)細(xì)分模式。發(fā)送協(xié)議以“{”為起始碼,,以“}”為結(jié)束碼,,如{+0.1125℃}即正向旋轉(zhuǎn)0.112 5度;當(dāng)下位機(jī)執(zhí)行完上位機(jī)指令時(shí)返回接收指令,否則不返回,。具體發(fā)送方式如表2所示,。
3.2 控制器控制策略
STM32軟件負(fù)責(zé)該模塊的主控制器,首先讓啟動(dòng)模式處于非啟動(dòng)狀態(tài)(DISABLE),,外部中斷也處于關(guān)閉狀態(tài),。一旦啟動(dòng)模式被打開(kāi),即點(diǎn)亮LED,;其次,,進(jìn)行速度設(shè)置、細(xì)分系數(shù)設(shè)置以及旋轉(zhuǎn)角度設(shè)置,。睡眠模式下LED緩慢閃爍,。具體該驅(qū)動(dòng)控制器軟件設(shè)計(jì)流程圖如圖6所示。
4 結(jié)論
通過(guò)系統(tǒng)對(duì)軟硬件進(jìn)行調(diào)試,,該控制器實(shí)現(xiàn)了對(duì)步進(jìn)電機(jī)速度,、細(xì)分系數(shù)、任意角度的設(shè)置,,并達(dá)到了預(yù)期設(shè)定的目標(biāo),。此控制器可以應(yīng)用在相對(duì)比較精細(xì)的項(xiàng)目控制中,加快項(xiàng)目研發(fā)周期,。該模塊的主要缺陷就是輸出驅(qū)動(dòng)電流不夠大,,無(wú)法應(yīng)用在扭力比較大的場(chǎng)合中,因此,,通過(guò)上述對(duì)A4988模塊的分析,,可以再對(duì)A4988芯片進(jìn)行改進(jìn),更換導(dǎo)通電阻小,、驅(qū)動(dòng)電流大的MOS管,,實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)器的設(shè)計(jì)。
參考文獻(xiàn)
[1] 意法半導(dǎo)體.STM32F103英文數(shù)據(jù)手冊(cè)[EB/OL].(2011-04-19)[2014-05-13].http://www.st.com/stonline/products/literature/ds/14611.pdf.
[2] MICRO A.A4988數(shù)據(jù)手冊(cè)[EB/OL].(2014-05-07)[2014-06-10].www.allegromicro.com/~/media/Files/Datasheets/A4988-Datasheet.ashx.pdf.
[3] 孟英紅,,齊婉玉,,段學(xué)鋒.用L297,L298組成步進(jìn)電機(jī)驅(qū)動(dòng)電路[J].儀器儀表學(xué)報(bào),,2003,,24(4):573-574.
[4] 王凱,韓力立.采用STM32控制L6470步進(jìn)電機(jī)驅(qū)動(dòng)器[J].電子世界,,2012(18):51-52.
[5] 曹彪乾,,陳遠(yuǎn)增,孫書鷹,,等.基于STM32步進(jìn)電機(jī)多細(xì)分控制設(shè)計(jì)[J].科學(xué)技術(shù)與工程,,2013,,13(23):6894-6897.
[6] 于波,胡毅,,文江濤.基于CP2102的USB接口設(shè)計(jì)[J].研究與開(kāi)發(fā),,2007,26(3):40-42.