新聞中心

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

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

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

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

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


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

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


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

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

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

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

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

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


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

評論


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

關(guān)閉