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