新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MSP430的舵機(jī)控制系統(tǒng)設(shè)計(jì)

基于MSP430的舵機(jī)控制系統(tǒng)設(shè)計(jì)

作者: 時(shí)間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
0引 言
無人機(jī)是一種由動(dòng)力驅(qū)動(dòng)、機(jī)上無人駕駛、可重復(fù)使用的航空器的簡稱。在無人機(jī)系統(tǒng)中,采用PWM波信號控制的舵機(jī)是重要的執(zhí)行機(jī)構(gòu),它是無人機(jī)控制動(dòng)作的動(dòng)力來源。為便于系統(tǒng)擴(kuò)展和升級[1.2],在飛控系統(tǒng)中往往采用分布式策略,將舵機(jī)的控制部分作為一個(gè)獨(dú)立單元進(jìn)行設(shè)計(jì),稱為舵機(jī)控制系統(tǒng)。
傳統(tǒng)產(chǎn)生PWM波的方法是通過大量的分立原件來實(shí)現(xiàn)的.所產(chǎn)生的脈沖頻率和寬度往往不是很準(zhǔn)確,很難做到對舵機(jī)的精確控制。另外,利用CPLD或FPGA產(chǎn)生PWM波已在很多場合得到應(yīng)用,依靠CPLD或FPGA特有的并行處理能力和大量的1/0接口,可以同時(shí)控制幾十甚至上百個(gè)舵機(jī)同時(shí)工作,但CPLD或FPGA生成PWM波時(shí),并不具備事務(wù)處理能力,實(shí)際應(yīng)用中還需要MCU配合工作,加之成本高,開發(fā)設(shè)備昂貴,極大的限制了它的應(yīng)用范圍。
由于單片機(jī)具有性能穩(wěn)定、編程靈活、精度高、價(jià)格低廉等特點(diǎn),用它產(chǎn)生PWM波在實(shí)際中得到了廣泛應(yīng)用。本文給出了一種新穎的利MSP430單片機(jī)利用自帶的定時(shí)器產(chǎn)生PWM1j~[3.4]的方法,成本低,性能穩(wěn)定,并成功應(yīng)用于實(shí)踐。
1總體介紹
飛行控制系統(tǒng)總體框架如圖1所示,整個(gè)飛控系統(tǒng)是由飛控計(jì)算機(jī)、舵機(jī)控制系統(tǒng)、傳感器系統(tǒng)、GPS、機(jī)載電源及地面站系統(tǒng)組成。在飛行過程中,無人機(jī)一方面通過傳感器系統(tǒng)和GPS獲得飛行姿態(tài)和航向的實(shí)時(shí)參數(shù),并通過無線電傳回地面;另一方面隨時(shí)按收地面上傳的遙控指令。以這些信息為基礎(chǔ),經(jīng)過主控計(jì)算機(jī)控制律解算,按照一定協(xié)議輸出控制指令到舵機(jī)控制系統(tǒng)[5,6],再經(jīng)由舵機(jī)控制系統(tǒng)輸出相應(yīng)的信號控制舵機(jī)的偏轉(zhuǎn),從而實(shí)現(xiàn)對無人機(jī)飛行姿態(tài)的控制。

2 舵機(jī)控制系統(tǒng)硬件設(shè)計(jì)
2.1系統(tǒng)硬件結(jié)構(gòu)
由于無人機(jī)采用燃料電池作為能源,所以要求機(jī)載設(shè)備盡可能功耗低、體積小、重量輕,這樣既可以降低損耗又能提高系統(tǒng)穩(wěn)定性和抗干擾能力?;谝陨纤枷耄O(shè)計(jì)了以田公司的MSP430F149單片機(jī)[7,9]為核心的舵機(jī)控制系統(tǒng),該系統(tǒng)主要由CPU控制單元、串口通信單元、脈沖信號處理單元、電源等硬件電路組成,系統(tǒng)結(jié)構(gòu)如圖2所示。

2.2舵機(jī)簡介
1)舵機(jī)的構(gòu)造與工作原理
舵機(jī)主要是由外殼、小型直流電動(dòng)機(jī)、減速齒輪、位置檢測器和控制電路板所構(gòu)成。其工作原理如圖3所示,其中,直流電動(dòng)機(jī)作為驅(qū)動(dòng)器產(chǎn)生動(dòng)力源[10],運(yùn)動(dòng)由減速齒輪減速,傳遞給輸出軸和舵盤,在輸出軸后端連接有電位計(jì),用以檢測當(dāng)前位置,并將此值與驅(qū)動(dòng)信號端口發(fā)送來的位置信號進(jìn)行比較,通過控制電路,將差值放大并由電機(jī)執(zhí)行操作,實(shí)現(xiàn)位置伺服[11]。
2)舵機(jī)的控制
舵機(jī)是無人機(jī)飛行控制的執(zhí)行機(jī)構(gòu),也是本系統(tǒng)的控制對象,無人機(jī)一般裝備有5個(gè)舵機(jī),分別用來控制油門、副翼、升降舵、螺距和尾舵[12]。標(biāo)準(zhǔn)的舵機(jī)由一個(gè)寬度可調(diào)昀周期性方波脈沖信號即PWM波控制,以本系統(tǒng)采用的日本Futaba公司生產(chǎn)的S3003舵機(jī)為例,其脈沖周期為20 ms,中心脈寬為l 5 ms,對應(yīng)0度,調(diào)節(jié)范圍為±1 ms。當(dāng)方波的脈沖寬度改變時(shí),舵機(jī)轉(zhuǎn)軸角度相應(yīng)發(fā)生- 90度到90度內(nèi)的線性改變,并通過連桿拉動(dòng)舵面運(yùn)動(dòng),從而控制無人機(jī)的飛行姿態(tài),舵機(jī)輸入脈沖與舵偏角的對應(yīng)關(guān)系如圖4所示。


3舵機(jī)控制系統(tǒng)軟件設(shè)計(jì)
3.1可調(diào)PWM信號的實(shí)現(xiàn)
I)PWM信號的產(chǎn)生
由舵機(jī)的工作原理可知,要實(shí)現(xiàn)對舵機(jī)的控制,實(shí)際上就是能給它提供一個(gè)可控制的PWM信號。本系統(tǒng)所需的PWM信號是由單片機(jī)定時(shí)器B的時(shí)鐘模塊產(chǎn)生,該時(shí)鐘模塊有4種計(jì)數(shù)功能選擇及8種輸出方式選擇,采用增計(jì)數(shù)模式和翻轉(zhuǎn)/復(fù)位的輸出方式,圖5為此種組合模式下的示意圖,由圖可知,利用TBO的TBCCRO值作為計(jì)數(shù)周期,TBI - TB5的TBCCRl - TBCCR5值作為計(jì)數(shù)值,當(dāng)計(jì)數(shù)達(dá)到TBCCRx(x取1-5)值時(shí),輸出信號進(jìn)行翻轉(zhuǎn),達(dá)到TBCCRO值時(shí)輸出信號進(jìn)行復(fù)位,從而可以方便的設(shè)置所需占空比的PWM信號。

2)通信協(xié)議與PWM信號的關(guān)系
傳統(tǒng)的舵機(jī)控制器通信協(xié)議幀通常采用舵機(jī)編號加數(shù)據(jù)的方式,每幀數(shù)據(jù)只能控制一個(gè)舵機(jī),大大降低了通信的效率。本系統(tǒng)中每幀數(shù)據(jù)由16字節(jié)組成,其中包括幀頭占兩個(gè)字節(jié)、目的設(shè)備ID、數(shù)據(jù)位及校驗(yàn)和。幀頭和校驗(yàn)和用于識別出數(shù)據(jù)幀并檢查數(shù)據(jù)是否正確;目的設(shè)備ID用于標(biāo)示舵機(jī)控制板(與之匹配的主控計(jì)算機(jī)板可連接多
塊舵機(jī)控制板以增強(qiáng)兼容性和可擴(kuò)展性);中間12個(gè)字節(jié)的數(shù)據(jù)位用于同時(shí)解算舵機(jī)的偏角,其中每個(gè)舵機(jī)占2個(gè)字節(jié),極大的提高了數(shù)據(jù)幀的利用效率,因此,MSP430F149的定時(shí)器B可輸出多達(dá)6路PWM波。
具體算法如下:
(1)首先定義一個(gè)將兩個(gè)字節(jié)的十六進(jìn)制數(shù)變?yōu)橛蟹栒偷暮瘮?shù)i16Bits2lnt在其中定義一個(gè)umon類型的變量itmp,然后通過賦值itmp.(2)接下來利用前面自定義的函數(shù)實(shí)現(xiàn)5路角度的解算,部分代碼如下:


(3)在PwmOut()函數(shù)中進(jìn)行解算的角度到TBCCRx值的轉(zhuǎn)化,通過精確計(jì)算,本系統(tǒng)中計(jì)數(shù)周期TBCCRO值為8947,有效脈沖寬度TBCCRx設(shè)置范圍為223 - 1118,零位對應(yīng)671。
(4)最終通過循環(huán)賦值實(shí)現(xiàn)捕獲比較寄存器TBCCRx值的更新。

3.2主體程序
如圖6所示,本系統(tǒng)的主體程序是在嵌入式開發(fā)環(huán)境中實(shí)現(xiàn),主要包括系統(tǒng)初始化模塊、定時(shí)處理模塊和串口中斷處理模塊。其中,初始化模塊主要包括系統(tǒng)時(shí)鐘、端口、定時(shí)器等的初始化;定時(shí)處理模塊主要是利用定時(shí)器A的計(jì)數(shù)定時(shí)功能來實(shí)現(xiàn)看門狗清零、PWM輸出及系統(tǒng)檢測等功能,采用類似于嵌入式實(shí)時(shí)操作系統(tǒng)的時(shí)間片輪轉(zhuǎn)任務(wù)調(diào)度方式;串口中斷處理模塊用來接收飛控計(jì)算機(jī)發(fā)送的協(xié)議幀,并進(jìn)行相應(yīng)的處理。
3.3串口通信
串口通信模塊采用中斷方式接收控計(jì)算機(jī)按照協(xié)議格式發(fā)來的控制信號,然后將數(shù)據(jù)存人預(yù)先定義好的16字節(jié)的數(shù)組,由解鎖封鎖模塊提取出各舵機(jī)通道的指令控制量。數(shù)據(jù)格式為8位數(shù)據(jù)位,1位停止位,無校驗(yàn)位,波特率要求為19200 bps。需要注意的是,由于利用32. 768 kHz的低頻晶振無法達(dá)到飛控計(jì)算機(jī)要求的19200 bps波特率,故串口初始化程序中采用3 579 MHz的高頻晶振,通過設(shè)置UOBRO、UOBRI、UMCTLO三個(gè)寄存器的值分別為OxBA、Ox00、Ox90來實(shí)現(xiàn)19200 bps的波特率。一旦串口接收到數(shù)據(jù)時(shí),就會(huì)進(jìn)入串口中斷服務(wù)程序,中斷接收流程如圖7所示。

需要說明的是,傳統(tǒng)的舵機(jī)控制系統(tǒng)在接收到指令后僅進(jìn)行PWM信號的解算,而未考慮到實(shí)際調(diào)試過程中可能出現(xiàn)的問題。出于全面性考慮,本系統(tǒng)采用“幀封裝”設(shè)計(jì)。所謂“封幀”就是串口每接收到一幀數(shù)據(jù)就按照通信幀協(xié)議將數(shù)據(jù)打包,返送回飛控計(jì)算機(jī)或調(diào)試用的上位機(jī),主要是為方便系統(tǒng)調(diào)試以判斷串口通信正常與否;所謂“解幀”就是在保證接收到的通信幀數(shù)據(jù)完整的前提下,完成協(xié)議幀到PWM信號的解算。
4實(shí)驗(yàn)
4.1通信測試
為方便調(diào)試,采用PC機(jī)上的“串口調(diào)試助手V2. 2”模擬無人機(jī)飛控計(jì)算機(jī)通過RS422串口遵照幀協(xié)議每隔1秒定時(shí)向舵機(jī)控制系統(tǒng)發(fā)送指令,根據(jù)前面所述的封幀模塊,舵機(jī)控制系統(tǒng)會(huì)將接收
基于MSP430的舵機(jī)控制系統(tǒng)設(shè)計(jì)張建鵬,等到的數(shù)據(jù)按照幀協(xié)議打包發(fā)送給飛控計(jì)算機(jī),作為響應(yīng)。測試界面如圖8所示,圖中反饋信息顯示在接收字符區(qū),而控制命令顯示在發(fā)送字符區(qū),系統(tǒng)響應(yīng)及時(shí),實(shí)時(shí)性強(qiáng),而且不存在數(shù)據(jù)丟失或誤碼現(xiàn)象。

4.2波形穩(wěn)定性測試
圖9未利用波器測得一路PWM輸出波形可以看出世紀(jì)輸出地PWM波形穩(wěn)定,雜波極少,復(fù)合系統(tǒng)預(yù)設(shè)要求。

4.3波形跟蹤精度測試
利用自制的舵機(jī)測試軟件對某一通道進(jìn)行正弦跟蹤擬合后的曲線如圖10所示,其中橫坐標(biāo)代表時(shí)間(測試頻率取0.1 Hz),縱坐標(biāo)代表角度,綠色曲線代表舵機(jī)的理論偏轉(zhuǎn)角,黃色曲線代表舵機(jī)的實(shí)際偏轉(zhuǎn)角,紅色曲線代表誤差,經(jīng)實(shí)際測算,誤差熊有效控制在百分之零點(diǎn)一之內(nèi),跟蹤性能良好。

5結(jié)語
本系統(tǒng)的優(yōu)點(diǎn)有:1)基于分布式策略思想設(shè)計(jì)舵機(jī)控制系統(tǒng),有利于飛控系統(tǒng)的擴(kuò)展與升級。2)串口通信采用“幀封裝”設(shè)計(jì),增加了嵌入式系統(tǒng)“黑匣子”的透明度,極其方便調(diào)試。3)克服了傳統(tǒng)通信協(xié)議每幀指令控制一路舵機(jī)的缺陷,本系統(tǒng)每幀數(shù)據(jù)同時(shí)控制六路舵機(jī),極大的提高了通信效率。4)軟件設(shè)計(jì)基于時(shí)間片輪轉(zhuǎn)調(diào)度思想,提高了代碼執(zhí)行效率,使得系統(tǒng)的實(shí)時(shí)性顯著增強(qiáng)。5)產(chǎn)生的PWM信號穩(wěn)定,精度高,電機(jī)的抖動(dòng)和互擾現(xiàn)象明顯減弱,非常有利于無人機(jī)在高空執(zhí)行任努。
經(jīng)過調(diào)試,該硬件平臺各項(xiàng)功能均達(dá)到設(shè)計(jì)目的,經(jīng)多次試飛,穩(wěn)定可靠,完全滿足要求,同時(shí)表明該方案是一種適用于小型無人機(jī)的經(jīng)濟(jì)可靠的方案。


關(guān)鍵詞: MSP430舵機(jī)控制系

評論


技術(shù)專區(qū)

關(guān)閉