工控網(wǎng)首頁(yè)
>

應(yīng)用設(shè)計(jì)

>

嵌入式步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

嵌入式步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2013/11/28 12:08:32

嵌入式系統(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)定性。

投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

超越傳統(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ì)