嵌入式步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁減,適用于應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)[1]。自20世紀(jì)70年代世界上第一個(gè)為嵌入式應(yīng)用而設(shè)計(jì)的微處理器誕生以來(lái),已在幾十年的發(fā)展歷程,如今嵌入式系統(tǒng)(embedded system)已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長(zhǎng)力的一個(gè)分支。隨著微電子技術(shù)的發(fā)展,嵌入式控制系統(tǒng)在工業(yè)生產(chǎn)智能化、自動(dòng)化中的應(yīng)用越來(lái)越普及。尤其手機(jī)、PAD、GSP、機(jī)頂盒等新興產(chǎn)品的大量應(yīng)用,嵌入式系統(tǒng)的市場(chǎng)正在以每年30%的速度遞增,嵌入式系統(tǒng)的設(shè)計(jì)也成為軟硬件工程師越來(lái)越關(guān)心的問(wèn)題。 步進(jìn)電機(jī)是工業(yè)控制中的一種常用執(zhí)行部件,具有控制靈活、價(jià)格低等優(yōu)點(diǎn),因而在許多設(shè)備和裝置中常被采用。嵌入式步進(jìn)電機(jī)控制器就是將微處理器置于電機(jī)控制器中,使步進(jìn)電機(jī)控制器能按設(shè)定的相數(shù)、拍數(shù)以及單個(gè)觸發(fā)脈沖所走的步數(shù),提供相應(yīng)的控制邏輯。 1、步進(jìn)電機(jī)的工作原理 步進(jìn)電機(jī)是一種能夠?qū)㈦娒}沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件,它實(shí)際上是一種單相或多相同步電動(dòng)機(jī)。目前常用的步進(jìn)電機(jī)有3類:反應(yīng)式步進(jìn)電動(dòng)機(jī)(VR)、永磁式步進(jìn)電動(dòng)機(jī)(PM)和混合式步進(jìn)電動(dòng)機(jī)(HB)?,F(xiàn)以反應(yīng)式三相步進(jìn)電機(jī)為例說(shuō)明其工作原理,定子鐵芯上有六個(gè)形狀相同的大齒,相鄰兩個(gè)大齒之間的夾角為60o。每個(gè)大齒上都套有一個(gè)線圈,徑向相對(duì)的兩個(gè)線圈串聯(lián)起來(lái)成為一個(gè)繞組,各個(gè)大齒的內(nèi)表面上又有若干個(gè)均勻分布的小齒。轉(zhuǎn)子是一個(gè)圓柱形鐵心,外表面上圓周方向均勻地布滿了小齒。轉(zhuǎn)子小齒的齒距是和定子相同的。設(shè)計(jì)時(shí)應(yīng)使轉(zhuǎn)子齒數(shù)能被2整除,但某一項(xiàng)繞組通電,而轉(zhuǎn)子可自由旋轉(zhuǎn)時(shí),該相兩個(gè)大齒下的各個(gè)小齒將吸引相近的轉(zhuǎn)子小齒,使電動(dòng)機(jī)轉(zhuǎn)動(dòng)到轉(zhuǎn)子小齒與該相定子小齒對(duì)齊的位置,而其他兩相的各個(gè)大齒下的小齒必定和轉(zhuǎn)子的小齒分別錯(cuò)開(kāi)1/3的齒距,開(kāi)成“齒錯(cuò)位”,從而形成電磁引力使電動(dòng)機(jī)連續(xù)地轉(zhuǎn)動(dòng)下去。 永磁式步進(jìn)電動(dòng)機(jī)和混合式步進(jìn)電動(dòng)機(jī)的繞組電流要求正、反向流動(dòng),故驅(qū)動(dòng)電路一般要做成雙極性驅(qū)動(dòng)。 2、相應(yīng)的軟硬件配置 硬件環(huán)境:主要包括ARM嵌入式開(kāi)發(fā)板;用于ARM7TDMI的JTAG仿真器
圖1 四相步進(jìn)電機(jī)在開(kāi)發(fā)板中的接法 四相步進(jìn)電機(jī)的控制方法有四相單四拍、四相單、雙八拍和四相雙四拍3種控制方式。步距角的計(jì)算公式為
其中:m為相數(shù),孔制方法是四相單四拍和四相雙四拍時(shí)C為1??刂品椒ㄊ撬南鄦巍㈦p八拍時(shí)C為2,Zk為轉(zhuǎn)子小齒數(shù)。我們采用的是四相單、雙八拍控制方法,所以步距角應(yīng)為360o/512/8。 UP-NETARM300開(kāi)發(fā)平臺(tái)中使用EXI/O的高四位控制四相步進(jìn)電機(jī)的四個(gè)相。按照四相單、雙八拍控制方法,電機(jī)正轉(zhuǎn)時(shí)的控制順序?yàn)锳 →AB→B→BC→C→CD→D→DA。EXI/O的高四位的值如表1所示。 表1 電機(jī)正轉(zhuǎn)時(shí)EXI/O高四位的值
反轉(zhuǎn)時(shí),將控制信號(hào)按相反的順序給出即可。 4、用ARM匯編語(yǔ)言實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制 對(duì)步進(jìn)電機(jī)工作原理掌握后,通過(guò)程序完成對(duì)74HC573的高四位進(jìn)行操作來(lái)完成步進(jìn)電機(jī)的脈沖分配。在C 語(yǔ)言程序中調(diào)用匯編先要完成兩件工作:在C語(yǔ)言程序中使用extern關(guān)鍵字聲明外部函數(shù),即要聲明要調(diào)用的匯編子程序;在匯編程序中使用export偽指令聲明要C中要調(diào)用的匯編子程序,使用export聲明后其他程序可以調(diào)用此匯編程序。如下例: 4.1 C中調(diào)用匯編程序 #include extern void strcopy(char *d,const char *s); int main() ?。?const char *srcstr=”First string-source”; char dststr[]=”Second string - destinnation”; printf(“Before copying: ”); printf(“ %s %s ”,srcstr,dststr); strcopy(dststr,srcstr); printf(“After copying: ”); printf(“ %s %s ”,srcstr,dststr); return (0); } 4.2 匯編語(yǔ)言字符串復(fù)制子程序 AREA Scopy, CODE, READONLY EXPORT strcopy ;此句保證其他程序可調(diào)用此程序 Strcopy LDRB r2, [r1],#1 ;裝載字節(jié)后將地址加1 STRB r2, [r1],#1 ;保存字節(jié)后將地址加1 CMP r2, #0 ;比較r2 是否為零 BNE Strcopy ;如果r2不等于零跳轉(zhuǎn) MOV pc, 1r ;返回 END 4.3 原理圖
圖 74HC573控制原理 4.4 使用的程序如下: AREA STEP, CODE, READONLY EXPORT STEPCTROL STEPCTROL START MOV R0, #0 ADR R2, TABLE ;將表頭地址存入R2中 LOOP LDR R5,=0x0a000000草藥 ;bank5,將要寫(xiě)入數(shù)據(jù)的地址放R5中 LDRB R1,[R2],#1 ;注意這里是先將R2中的數(shù)據(jù)(一個(gè)字節(jié))送入R1后R2的內(nèi)容所表示的地址再加1 STRB R1, [R5] ;將R1中的數(shù)據(jù)送入R5中的數(shù)據(jù)所表示的地址中 MOV R1,#0 ;從本句開(kāi)始到DELAYOVER為兩級(jí)循環(huán)嵌套延時(shí) REPEAT ADD R1,R1,#1 ; 將R1中的值加1再送入R1中 CMP R1, #400 ;[R1]和400比較 BNE NEXT1 ;如果上面的比較結(jié)果不等跳轉(zhuǎn) B DELAYOVER NEXT1 MOV R3, #2 NEXT2 ADD R3, R3, #2 CMP R3, #40 BNE NEXT2 ;將R3中的數(shù)據(jù)和40進(jìn)行比較,不等則跳轉(zhuǎn) B REPEAT DELAYOVER ADD R0, R0, #1 ;控制循環(huán)八次 CMP R0, #8 ;將8和R0中的數(shù)比較 BNE loop ;如果上面的比較結(jié)果不等跳轉(zhuǎn)到loop,否則執(zhí)行下一條語(yǔ)句 B START TABLE DCB ox10, ox30, ox20, ox60, ox40, oxc0, ox80, ox90 END 5、結(jié)束語(yǔ) 嵌入式步進(jìn)電機(jī)控制器,具有成本低、應(yīng)用方便、通用性強(qiáng)等優(yōu)點(diǎn),有較大的推廣價(jià)值。用匯編語(yǔ)言實(shí)現(xiàn)對(duì)ARM的四路I/O通道輸出控制,實(shí)現(xiàn)環(huán)形脈沖分配用于控制步進(jìn)電機(jī),嵌入式技術(shù)可以大大減小系統(tǒng)的體積和重量,在環(huán)境比較惡劣的現(xiàn)場(chǎng),基于ARM的系統(tǒng)可以提高系統(tǒng)的可靠性和穩(wěn)定性。
提交
超越傳統(tǒng)直覺(jué),MATLAB/Simulink助力重型機(jī)械的智能化轉(zhuǎn)型
新大陸自動(dòng)識(shí)別精彩亮相2024華南國(guó)際工業(yè)博覽會(huì)
派拓網(wǎng)絡(luò)被Forrester評(píng)為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲(chǔ)強(qiáng)基 | 海康威視帶來(lái)精彩主題演講
展會(huì)|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會(huì)