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

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

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

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

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

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

3.2主體程序
如圖6所示,本系統的主體程序是在嵌入式

3.3串口通信
串口通信模塊采用中斷方式接收控計算機按照協議格式發來的控制信號,然后將數據存人預先定義好的16字節的數組,由解鎖封鎖模塊提取出各舵機通道的指令控制量。數據格式為8位數據位,1位停止位,無校驗位,波特率要求為19200 bps。需要注意的是,由于利用32. 768 kHz的低頻晶振無法達到飛控計算機要求的19200 bps波特率,故串口初始化程序中采用3 579 MHz的高頻晶振,通過設置UOBRO、UOBRI、UMCTLO三個寄存器的值分別為OxBA、Ox00、Ox90來實現19200 bps的波特率。一旦串口接收到數據時,就會進入串口中斷服務程序,中斷接收流程如圖7所示。

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

4.2波形穩定性測試
圖9未利用波器測得一路PWM輸出波形可以看出世紀輸出地PWM波形穩定,雜波極少,復合系統預設要求。

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

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