基于MSP430的舵機控制系統(tǒng)設(shè)計
無人機是一種由動力驅(qū)動、機上無人駕駛、可重復使用的航空器的簡稱。在無人機系統(tǒng)中,采用PWM波信號控制的舵機是重要的執(zhí)行機構(gòu),它是無人機控制動作的動力來源。為便于系統(tǒng)擴展和升級[1.2],在飛控系統(tǒng)中往往采用分布式策略,將舵機的控制部分作為一個獨立單元進行設(shè)計,稱為舵機控制系統(tǒng)。
傳統(tǒng)產(chǎn)生PWM波的方法是通過大量的分立原件來實現(xiàn)的.所產(chǎn)生的脈沖頻率和寬度往往不是很準確,很難做到對舵機的精確控制。另外,利用CPLD或FPGA產(chǎn)生PWM波已在很多場合得到應用,依靠CPLD或FPGA特有的并行處理能力和大量的1/0接口,可以同時控制幾十甚至上百個舵機同時工作,但CPLD或FPGA生成PWM波時,并不具備事務處理能力,實際應用中還需要MCU配合工作,加之成本高,開發(fā)設(shè)備昂貴,極大的限制了它的應用范圍。
由于單片機具有性能穩(wěn)定、編程靈活、精度高、價格低廉等特點,用它產(chǎn)生PWM波在實際中得到了廣泛應用。本文給出了一種新穎的利MSP430單片機利用自帶的定時器產(chǎn)生PWM1j~[3.4]的方法,成本低,性能穩(wěn)定,并成功應用于實踐。
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)輸出相應的信號控制舵機的偏轉(zhuǎn),從而實現(xiàn)對無人機飛行姿態(tài)的控制。
2 舵機控制系統(tǒng)硬件設(shè)計
2.1系統(tǒng)硬件結(jié)構(gòu)
由于無人機采用燃料電池作為能源,所以要求機載設(shè)備盡可能功耗低、體積小、重量輕,這樣既可以降低損耗又能提高系統(tǒng)穩(wěn)定性和抗干擾能力?;谝陨纤枷耄O(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],運動由減速齒輪減速,傳遞給輸出軸和舵盤,在輸出軸后端連接有電位計,用以檢測當前位置,并將此值與驅(qū)動信號端口發(fā)送來的位置信號進行比較,通過控制電路,將差值放大并由電機執(zhí)行操作,實現(xiàn)位置伺服[11]。
2)舵機的控制
舵機是無人機飛行控制的執(zhí)行機構(gòu),也是本系統(tǒng)的控制對象,無人機一般裝備有5個舵機,分別用來控制油門、副翼、升降舵、螺距和尾舵[12]。標準的舵機由一個寬度可調(diào)昀周期性方波脈沖信號即PWM波控制,以本系統(tǒng)采用的日本Futaba公司生產(chǎn)的S3003舵機為例,其脈沖周期為20 ms,中心脈寬為l 5 ms,對應0度,調(diào)節(jié)范圍為±1 ms。當方波的脈沖寬度改變時,舵機轉(zhuǎn)軸角度相應發(fā)生- 90度到90度內(nèi)的線性改變,并通過連桿拉動舵面運動,從而控制無人機的飛行姿態(tài),舵機輸入脈沖與舵偏角的對應關(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)/復位的輸出方式,圖5為此種組合模式下的示意圖,由圖可知,利用TBO的TBCCRO值作為計數(shù)周期,TBI - TB5的TBCCRl - TBCCR5值作為計數(shù)值,當計數(shù)達到TBCCRx(x取1-5)值時,輸出信號進行翻轉(zhuǎn),達到TBCCRO值時輸出信號進行復位,從而可以方便的設(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用于標示舵機控制板(與之匹配的主控計算機板可連接多
塊舵機控制板以增強兼容性和可擴展性);中間12個字節(jié)的數(shù)據(jù)位用于同時解算舵機的偏角,其中每個舵機占2個字節(jié),極大的提高了數(shù)據(jù)幀的利用效率,因此,MSP430F149的定時器B可輸出多達6路PWM波。
具體算法如下:
(1)首先定義一個將兩個字節(jié)的十六進制數(shù)變?yōu)橛蟹栒偷暮瘮?shù)i16Bits2lnt在其中定義一個umon類型的變量itmp,然后通過賦值itmp.(2)接下來利用前面自定義的函數(shù)實現(xiàn)5路角度的解算,部分代碼如下:
(3)在PwmOut()函數(shù)中進行解算的角度到TBCCRx值的轉(zhuǎn)化,通過精確計算,本系統(tǒng)中計數(shù)周期TBCCRO值為8947,有效脈沖寬度TBCCRx設(shè)置范圍為223 - 1118,零位對應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)任務調(diào)度方式;串口中斷處理模塊用來接收飛控計算機發(fā)送的協(xié)議幀,并進行相應的處理。
3.3串口通信
串口通信模塊采用中斷方式接收控計算機按照協(xié)議格式發(fā)來的控制信號,然后將數(shù)據(jù)存人預先定義好的16字節(jié)的數(shù)組,由解鎖封鎖模塊提取出各舵機通道的指令控制量。數(shù)據(jù)格式為8位數(shù)據(jù)位,1位停止位,無校驗位,波特率要求為19200 bps。需要注意的是,由于利用32. 768 kHz的低頻晶振無法達到飛控計算機要求的19200 bps波特率,故串口初始化程序中采用3 579 MHz的高頻晶振,通過設(shè)置UOBRO、UOBRI、UMCTLO三個寄存器的值分別為OxBA、Ox00、Ox90來實現(xiàn)19200 bps的波特率。一旦串口接收到數(shù)據(jù)時,就會進入串口中斷服務程序,中斷接收流程如圖7所示。
需要說明的是,傳統(tǒng)的舵機控制系統(tǒng)在接收到指令后僅進行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ā)送給飛控計算機,作為響應。測試界面如圖8所示,圖中反饋信息顯示在接收字符區(qū),而控制命令顯示在發(fā)送字符區(qū),系統(tǒng)響應及時,實時性強,而且不存在數(shù)據(jù)丟失或誤碼現(xiàn)象。
4.2波形穩(wěn)定性測試
圖9未利用波器測得一路PWM輸出波形可以看出世紀輸出地PWM波形穩(wěn)定,雜波極少,復合系統(tǒng)預設(shè)要求。
4.3波形跟蹤精度測試
利用自制的舵機測試軟件對某一通道進行正弦跟蹤擬合后的曲線如圖10所示,其中橫坐標代表時間(測試頻率取0.1 Hz),縱坐標代表角度,綠色曲線代表舵機的理論偏轉(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)試,該硬件平臺各項功能均達到設(shè)計目的,經(jīng)多次試飛,穩(wěn)定可靠,完全滿足要求,同時表明該方案是一種適用于小型無人機的經(jīng)濟可靠的方案。
評論