文/劉生攀
為了保證電機(jī)的平穩(wěn)運(yùn)行,提高定位精度,在第二階段的電機(jī)驅(qū)動(dòng)控制電路的設(shè)計(jì)中,采用了細(xì)分驅(qū)動(dòng)技術(shù),通過高集成度的單片機(jī)和驅(qū)動(dòng)芯片予以實(shí)現(xiàn),達(dá)到了小型化和高精度的目的。
轉(zhuǎn)位機(jī)構(gòu)需要實(shí)現(xiàn)初始零位檢測、180°轉(zhuǎn)位和回到零位的功能。
初始零位檢測為轉(zhuǎn)位機(jī)構(gòu)的初始定位,每一次尋北過程開始,都需要驅(qū)動(dòng)步進(jìn)電機(jī)旋轉(zhuǎn)以檢測初始零位,并且為了減小結(jié)構(gòu)上的機(jī)械間隙,每次定位到零位前的旋轉(zhuǎn)方向都需要與180°轉(zhuǎn)位的方向一致。
180°轉(zhuǎn)位只需要通過單片機(jī)控制步進(jìn)電機(jī)向固定的方向旋轉(zhuǎn)固定的角度。
回到零位對定位精度要求較低,只需要向與180°轉(zhuǎn)位的方向相反的方向旋轉(zhuǎn)并檢測到零位即可。
步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)普遍采用電流矢量恒幅均勻旋轉(zhuǎn)的細(xì)分方法。對于兩相混合式步進(jìn)電機(jī),通過控制兩相繞組的相電流,使得電流的合成矢量恒幅均勻旋轉(zhuǎn),從而使電機(jī)的轉(zhuǎn)矩矢量在空間恒幅均勻旋轉(zhuǎn),達(dá)到細(xì)分步進(jìn)電機(jī)步距角的目的。
對于兩相混合式步進(jìn)電機(jī),通過給A、B兩相繞組供給正余弦電流,就可以實(shí)現(xiàn)電流的合成矢量恒幅均勻旋轉(zhuǎn)。繞組電流變化曲線為:
式中:
ia——為A相繞組電流;
ib——為B相繞組電流;
iM——為繞組峰值電流;
x——為角度參數(shù)。
當(dāng)x變化90°時(shí),步進(jìn)電機(jī)旋轉(zhuǎn)一個(gè)整步距角,將90°的變化量均勻細(xì)分,細(xì)分?jǐn)?shù)越多,則分辨率越高。從理論上講,如果繞組中電流與理論控制電流相等,并且繞組中電流與磁場幅值成線性關(guān)系,則精度可以精確達(dá)到整步距角除以細(xì)分?jǐn)?shù)。
實(shí)現(xiàn)的原理框圖見圖1。
圖1
為實(shí)現(xiàn)細(xì)分函數(shù),單片機(jī)必須有2路D/A轉(zhuǎn)換器。為實(shí)現(xiàn)光電檢測,必須有1路中斷。為盡可能減少外圍元器件數(shù)量,減小驅(qū)動(dòng)控制占用的空間,選用了CYGNAL公司的C8051F124,具有以下優(yōu)點(diǎn):
5.1.1高速8051 微控制器內(nèi)核
(1)流水線指令結(jié)構(gòu);70%的指令的執(zhí)行時(shí)間為一個(gè)或兩個(gè)系統(tǒng)時(shí)鐘周期;
(2)使用內(nèi)部集成PLL 時(shí)速度可達(dá)100或50MIPS。
5.1.2片內(nèi)自帶存儲(chǔ)器
(1)8448 字節(jié)內(nèi)部數(shù)據(jù)RAM(8K +256);
(2)128KB 或64KB 分區(qū)FLASH;可以在系統(tǒng)編程,扇區(qū)大小為1024 字節(jié)。
5.1.32 個(gè) 12 位 DAC
(1)可用定時(shí)器觸發(fā)同步輸出,用于產(chǎn)生無抖動(dòng)波形。
5.1.4數(shù)字外設(shè)豐富
(1)8 個(gè)8 位寬端口I/O(100TQFP),耐5V;
(2)4 個(gè)8 位寬端口I/O(64TQFP),耐5V;
(3)可同時(shí)使用的硬件SMBus(I2CTM兼容)、SPITM 及兩個(gè)UART 串行端口;
(4)可編程的16 位計(jì)數(shù)器/定時(shí)器陣列,有6 個(gè)捕捉/比較模塊;
(5)5 個(gè)通用16 位計(jì)數(shù)器/定時(shí)器;
(6)專用的看門狗定時(shí)器;雙向復(fù)位引腳。
5.1.5自帶時(shí)鐘源(1)內(nèi)部精確振蕩器:24.5MHz;(2)可靈活配置的PLL;
(3)外部振蕩器:晶體、RC、C、或外部時(shí)鐘。
從以上優(yōu)點(diǎn)可以看出,對實(shí)現(xiàn)最小系統(tǒng)而言,使用C8051F124是非常合適的,除了需要提供供電電源外,不需要其它任何外圍元器件就可以實(shí)現(xiàn)轉(zhuǎn)位控制的所有功能。
指令接收使用C8051F124的P0.3I/O口線實(shí)現(xiàn),由于使用一條I/O口線實(shí)現(xiàn)3種類型指令接收,因此需要制定內(nèi)部協(xié)議,采用不同的指令脈沖寬度代表不同類型的指令。在單片機(jī)程序中通過內(nèi)部定時(shí)器檢測接收到的指令脈沖寬度進(jìn)行指令判別,然后執(zhí)行相應(yīng)的轉(zhuǎn)位子程序。
為實(shí)現(xiàn)零位檢測,選用了ST135型光耦進(jìn)行光電檢測,ST135型光耦包括一個(gè)發(fā)光二極管和一個(gè)接收器,當(dāng)發(fā)光二極管的光路被擋片遮擋時(shí),接收器將輸出一個(gè)下降沿。將接收器的輸出接入單片機(jī)的0號(hào)中斷,當(dāng)產(chǎn)生中斷時(shí),停止電機(jī)旋轉(zhuǎn),從而定位到零位點(diǎn)。
為實(shí)現(xiàn)步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng),需要實(shí)現(xiàn)式(1)所示的電流函數(shù)波形。對驅(qū)動(dòng)器而言,對電機(jī)繞組電流的控制是采用給定參考電壓實(shí)現(xiàn)的。而參考電壓的輸出可以采用單片機(jī)的D/A通道輸出,則電機(jī)繞組的正余弦電流可以根據(jù)細(xì)分?jǐn)?shù)量化為D/A電壓數(shù)據(jù),采用查表法輸出。在轉(zhuǎn)位驅(qū)動(dòng)中,結(jié)構(gòu)設(shè)計(jì)采用了62的減速比,根據(jù)總體精度,對步進(jìn)電機(jī)驅(qū)動(dòng)細(xì)分?jǐn)?shù)采用64細(xì)分即可以滿足要求。因此,對式(1)進(jìn)行轉(zhuǎn)換如下:
式中:
ia——為A相繞組電流;
ib——為B相繞組電流;
UM——為參考峰值電壓;
R——為取樣電阻阻值;
n——為微步數(shù),0~255。
本文對步進(jìn)電機(jī)的細(xì)分驅(qū)動(dòng)原理進(jìn)行了闡述,并通過工程實(shí)踐,設(shè)計(jì)制作了轉(zhuǎn)位控制驅(qū)動(dòng)電路及程序,實(shí)現(xiàn)了轉(zhuǎn)位機(jī)構(gòu)控制和驅(qū)動(dòng)電路的小型化和高精度,具有較高的實(shí)用價(jià)值。