基于XC2267M的儀表盤(pán)步進(jìn)電機(jī)控制
隨著現(xiàn)代電子技術(shù)的發(fā)展,中高檔汽車(chē)上的組合數(shù)字儀表越來(lái)越多地采用“機(jī)電一體化”的步進(jìn)電機(jī)。步進(jìn)電機(jī)又稱脈沖電動(dòng)機(jī),它能將輸入的脈沖信號(hào)變成不連續(xù)的機(jī)械動(dòng)作,是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。對(duì)步進(jìn)電機(jī)的每一相來(lái)講,輸入的是一個(gè)脈沖列,只要控制好電脈沖,就能精確控制步進(jìn)電機(jī)的角位移量,轉(zhuǎn)速和轉(zhuǎn)矩。從這個(gè)意義上來(lái)說(shuō),步進(jìn)電機(jī)控制的核心是PWM(脈沖寬度調(diào)制)細(xì)分控制技術(shù)。
本文引用地址:http://butianyuan.cn/article/163231.htm
用單片機(jī)來(lái)控制步進(jìn)電機(jī)已有近15年的發(fā)展歷史。出于降低總體成本的考慮,長(zhǎng)期以來(lái)所采用的芯片都是8位單片機(jī)。由于單片機(jī)自身性能的局限性,對(duì)于步進(jìn)電機(jī)的控制常常采用不徹底的細(xì)分控制或帶外設(shè)的細(xì)分控制。不徹底的細(xì)分控制一般是將步進(jìn)電動(dòng)機(jī)的控制位置數(shù)(以兩相步進(jìn)電機(jī)為例)的四拍通電邏輯順序變?yōu)榘伺耐娺壿嬳樞?,從而將步進(jìn)角降為原來(lái)的一半。這種方法細(xì)分度有限,電機(jī)運(yùn)行極不平滑,而且對(duì)步進(jìn)電機(jī)也有損傷。帶外設(shè)的細(xì)分控制能夠使步進(jìn)電機(jī)的運(yùn)行平滑穩(wěn)定,但增加了外部設(shè)備(如恒流斬波電路等),使得硬件設(shè)計(jì)趨于復(fù)雜,并且提高了成本。隨著科技的進(jìn)步和單片機(jī)的進(jìn)一步發(fā)展,16位單片機(jī)的價(jià)格不斷降低,使得其在步進(jìn)電機(jī)控制上的廣泛應(yīng)用成為可能。由于單片機(jī)自身功能曾強(qiáng)了,繁瑣的外部設(shè)備不再需要,軟件編程也變得相對(duì)簡(jiǎn)單。這里即采用16位英飛凌單片機(jī)XC2267M實(shí)現(xiàn)步進(jìn)電機(jī)的平穩(wěn)控制。
硬件選擇
Infineon XC2267M屬于XC2200微控制器系列,集成了電壓調(diào)節(jié)器和多種振蕩器,是全功能的16位單片CMOS微控制器。此方案主要使用的是XC2267M的CC2(Capture/Compare Unit2 捕獲/比較單元2)模塊。
CC2模塊提供了16個(gè)捕獲/比較通道以及同它們相配合的2個(gè)16位定時(shí)器,能支持16個(gè)內(nèi)部中斷。每個(gè)CC2通道都可捕獲內(nèi)部或外部事件,也可以比較計(jì)時(shí)器的內(nèi)容與給定值,并修改輸出信號(hào)。這里采用的是其中的8個(gè)通道配合8個(gè)I/O口控制4個(gè)步進(jìn)電機(jī)。其中,SIN+和COS+為CC2通道,輸出PWM波形,SIN-和COS-為I/O口,進(jìn)行0-1變化。
表1 CC2模塊各通道功能列表
由于單片機(jī)可以直接輸出幾路互不影響的PWM,所以無(wú)需依靠任何外部設(shè)備就可以同時(shí)實(shí)現(xiàn)對(duì)幾個(gè)步進(jìn)電機(jī)的控制。
圖1 基于XC2267M的儀表盤(pán)步進(jìn)電機(jī)控制示意圖(儀表盤(pán)其他模塊圖中未標(biāo)明)
汽車(chē)儀表中應(yīng)用的主要是兩相步進(jìn)電機(jī),即步進(jìn)電機(jī)中有兩個(gè)獨(dú)立繞組(定子兩個(gè)相對(duì)極上的線圈串聯(lián)成為獨(dú)立繞組)。步進(jìn)電機(jī)兩個(gè)繞組的夾角一般有90°和60°兩種樣式,實(shí)驗(yàn)采用的是60°樣式的VID29-05,內(nèi)置減速比180:1的齒輪系,輸出軸的步距角最小為1/12°,最大角速度600°/s。
軟件編程
1確定細(xì)分度,建立變量賦值表
● 確定步進(jìn)電機(jī)每圈的細(xì)分度,并根據(jù)細(xì)分度建立電機(jī)在每個(gè)位置的兩相PWM占空比表。這里采用的是15細(xì)分,即每步間隔24°。
● 根據(jù)兩相電壓表,結(jié)合所選用的單片機(jī)的特性建立對(duì)應(yīng)的PWM寄存器賦值表,儲(chǔ)存在全局?jǐn)?shù)組里。
● 根據(jù)所選用的步進(jìn)電機(jī)型號(hào)的特性曲線,建立速度等級(jí)數(shù)組。步進(jìn)電機(jī)的轉(zhuǎn)速完全和PWM寄存器賦值的速度有關(guān)。根據(jù)VID29-05的特性,速度數(shù)組里包含255個(gè)元素。這255個(gè)元素定義了PWM寄存器賦值的時(shí)間間隔,元素值越大,步進(jìn)電機(jī)轉(zhuǎn)速越慢。
2 儀表盤(pán)步進(jìn)電機(jī)驅(qū)動(dòng)的編程注意事項(xiàng)
指針的運(yùn)動(dòng)要有“慣性”的視覺(jué)效果。即,指針從任意位置甲移動(dòng)到目標(biāo)位置乙的時(shí)候,在開(kāi)始階段,要進(jìn)行加速運(yùn)動(dòng),運(yùn)動(dòng)至接近位置乙的時(shí)候,要進(jìn)行減速,最后穩(wěn)定在位置乙。
加速減速的幅度與當(dāng)前位置和目標(biāo)位置的間距以及步進(jìn)電機(jī)的選型相關(guān)。在指針轉(zhuǎn)動(dòng)的過(guò)程中,對(duì)目標(biāo)位置的變化要實(shí)時(shí)反應(yīng)。只有在當(dāng)前位置和目標(biāo)位置的差距大于一定范圍時(shí),指針才運(yùn)動(dòng)。步進(jìn)電機(jī)不允許旋轉(zhuǎn)方向的突變,比如,電機(jī)正轉(zhuǎn)時(shí)接到反轉(zhuǎn)請(qǐng)求,一定要?jiǎng)驕p速至0后才能反轉(zhuǎn)。
考慮到EMC的要求,PWM的頻率不要超過(guò)20kHz。
3 算法
主程序?qū)Ξ?dāng)前步數(shù)和目標(biāo)步數(shù)比較判定,決定是否轉(zhuǎn)動(dòng),以及轉(zhuǎn)動(dòng)的速度大小。為達(dá)到這個(gè)目的,引入變量Move-time與轉(zhuǎn)動(dòng)一步標(biāo)志位Move_One_Step_Enable,實(shí)際轉(zhuǎn)動(dòng)的速度控制通過(guò)在主循環(huán)最后Move_One_Step_Enable置1和依據(jù)當(dāng)前步進(jìn)電機(jī)速度級(jí)別從速度數(shù)組里取相應(yīng)的元素對(duì)Move-time的賦值和來(lái)實(shí)現(xiàn)。只有當(dāng)Move-time=0時(shí),才再一次進(jìn)入主循環(huán)對(duì)其進(jìn)行賦值。
中斷程序?qū)ψ卟接?jì)時(shí)遞減,并根據(jù)標(biāo)志做馬達(dá)轉(zhuǎn)動(dòng)一步處理。每進(jìn)入一次中斷,只要Move-time不為0,則Move-time減1。如果Move_One_Step_Enable為1,步進(jìn)電機(jī)賦值一次,否則不賦值,中斷時(shí)間為200μs。
評(píng)論