陸興華
(廣東工業大學華立學院, 廣東 增城 511325)
隨著遙感、通訊技術的迅速發展,微小無人機的設計逐步被深究。 小型無人機由于其高度靈活機動性、信息化強、適應惡劣環境等優勢,近幾年在軍事、高空拍攝、農業等領域有著廣泛的應用[1],通過搭載在機體上的各類傳感器單元獲取所需的數據信息,如圖像的采集,能夠對特定特殊環境進行有效的勘察。 但目前,無人機的地面控制站主要使用功耗高、體積大的PCI 總線采集技術,一定程度限制了無人機的高度靈活性等優點。 因此,以32 位ARM 微處理器為核心、DM368作為協處理器,設計出一種基于嵌入式的實時性強、數據傳輸和處理速度快的無人機勘察系統。
無人機系統的設計由飛行控制系統、 無線通信系統、地面控制站三大遙感技術組成, 飛行過程包括飛行器的起飛、飛行軌跡、任務處理和回收等過程,其中飛行控制系統是本系統設計的核心。 圖1 為無人機勘察系統的總體結構圖。 圖中傳感器單元由陀螺儀、GPS 等組成, 采用無線射頻模塊XT09-SI 負責將采集到的信息傳輸到地面控制站并傳達地面控制站的控制指令,形成飛行控制—飛行管理—飛行任務實施,完成無人機的信息接收、信息處理、信息輸出的功能,實現智能化、網絡化[2]。

圖1 無人機勘察系統的總體結構圖Fig. 1 The overall structure of the UAV reconnaissance system
本系統圍繞著以以ARM 為內核的S3C2410 搭建起主控制處理模塊, 采用小型的CCD 攝像機和DM368 視頻協處理組成對音頻和視頻的采集,無線射頻模塊XT09-SI 作為數據的傳輸和接收通道的媒介, 在無人機飛行器上搭載GPS、陀螺儀、磁航向等多種傳感器單元,實現對不同數據的精確采集和改變飛行軌跡等功能。
數據的采集和傳輸及接收是無人機系統設計的復雜部分,為了有利于系統后期的功能拓展和硬件維護,采用模塊化的設計。采用XT09-SI 無線射頻模塊作為該電路的數據傳輸模塊。 該無線傳輸模塊與微控制器的電路接口采用串行通信原理,硬件連接示意圖如圖2 所示。 數據間通信使用標準的RS-232 接口,并設計高速光耦隔離6N137 模塊對電路提高抗干擾能力[3],通過接收地面控制站的指令,完成無人機的飛控的控制、數據采集和發送等功能。

圖2 硬件連接示意圖Fig. 2 Hardware connection diagram
DM368 模塊是基于ARM 926EJ 處理器的低功耗數字多媒體處理芯片[4],DM368 模塊采用的是完成符合PAL 制式視頻標準,可接Flash Memory 或者FPGA 等設備,支持H.264、MPPEG4 等圖像編碼技術, 芯片內部集成32 k RAM、16 k ROM、豐富的外部接口等資源,集圖像和音頻采集于一體,可以穩定高效的管理數據通信、視頻壓縮編碼等任務[5]。 由于視頻數據在發射端和接收端會存在偏差,為了減少誤差,需對H.264 幀圖像壓縮編碼算法進行優化。 常用的H.264 處理方法有對編碼紋理負責區域的4×4 像素和區域平坦的16×16像素兩種算法,幀的預測可以看成是由簡單的加法和移位運算來減少預測模式從而提高編碼的效應。 16×16 像素預測模式由垂直預測、水平預測、DC 預測以及平面預測4 種模式[6],4 種模式的函數為:

本系統對圖像的幀算法通過對16×16 像素預測編碼采用加法器和移位器運算,對計算方程進行優,減少數據占用空間,使視頻傳輸效率提高。 采用的算法如下:

無人機勘察系統的主控制器選用具有高性能、低功耗32位內核S3C2410,工作頻率最高可達到266 MHz,擁有高效的信號處理能力,片上集成豐富的資源,高達24 個外部中斷源,能夠滿足多路中斷處理, 提高處理器的資源利用率,3 路URAT,I2C、PWM、SPI 等多路通信接口,片外存儲器的接口拓展有Nor Flash、SDRAM,通過總線方式與微處理器相連,拓展儲存數據空間,并且具有高數據傳輸的DAM 通道[7]。 S3C2410芯片通過SPI 接口和RS-232 接口與XT09-SI 無線模塊以及其他傳感器單元模塊進行數據的交換。
無人機勘察工程中, 地面控制站對無人機的控制方式有手動航模操作、遙控指令控制、程序預定控制等操作,操作系統要求滿足能夠管理多任務和判斷優先級。 在目前的嵌入式操作系統中有Linux、UC/OS、UC/GUI 等多種, 都具備各自的優勢[8]。無人機勘察系統要求軟件的編寫可靠、簡單易操作,因此, 本系統的軟件設計采用可管理64 個實時多任務內核的UCOSII。 要實現對無人機的飛行控制,軟件編程的重點在于對UC/OS 操作系統的體系結構拓展,建立起RTOS 實時操作系統。 以下是操作系統的部分示意代碼。
void start_task(void *pdata){
msg_key=OSMboxCreate((void*)0); //創建消息郵箱
q_msg=OSQCreate(&MsgGrp[0],256);//創建消息隊列
flags_key=OSFlagCreate(0,&err);//創建信號量集
OSStatInit(); //初始化統計任務.這里會延時1 秒鐘左右OS_ENTER_CRITICAL(); //進入臨界區 (無法被中斷打斷)
OSTaskCreate (led_task, (void*)0, (OS_STK*)& LED_TASK_STK[LED_STK_SIZE-1],LED_TASK_PRIO);
OSTaskCreate(touch_task,(void*)0,(OS_STK*)& TOUCH_TASK_STK[TOUCH_STK_SIZE-1],TOUCH_TASK_PRIO);
OSTaskCreate (qmsgshow_task,(void*)0,(OS_STK*)&QMSGSHOW_TASK_STK [QMSGSHOW_STK_SIZE-1],QMSG SHOW_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO);//掛起起始任務
OS_EXIT_CRITICAL(); }//退出臨界區(可以被中斷打斷)
地面監控平臺是這個系統設計的重要部分, 監控中心上位機采用Qt 開發,通過Socket 編程,實現上位機和無人機控制程序之間能夠雙向通信, 實時接收無人機采集到的信息和發送控制指令,完成所需的飛行任務。地面監控平臺能過得到無人機采集到各類傳感器單元的數據, 并實時在窗口顯示出來。 本次實驗讓無人機進行簡單的飛行測試,系統能夠及時響應。 圖3 是監控系統接收到的部分信息。

圖3 系統數據測試Fig. 3 System test data
文中設計了基于嵌入式的無人機勘察系統, 通過引入UC/OS 實時內核,能夠完成數據的采集、傳輸和處理,運用DM368 視頻協處理對高壓縮率的H.264 標準的圖像進行壓縮編碼, 可采集并傳輸穩定、 高速實時勘察到的圖像和音頻。 整體繞著ARM 構成的微控制器運轉、具有低功耗、數據處理速度高效等特點,隨著嵌入式和傳感器的不斷發展,無人機勘察將在軍事、高空拍攝、農業等領域得到更好的發展與應用。
[1] 汪沛,羅錫文,周志艷. 基于微小型無人機的遙感信息獲取關鍵技術綜述[J]. 農業工程學報,2014,30(18):2-3.
[2] 國海峰,劉澤乾,陳丹強. 機載武器系統模擬訓練仿真平臺設計[J]. 計算機測量與控制,2010,18(5):1104-1105.
[3] 陳東旭, 裴海龍. 基于ATM7的無人機監控系統的設計[J].計算機工程與設計,2011,32(5):1614-1615.
[4] 吳笑天,魯劍鋒,王宇慶. 基于DM368的無人機視頻壓縮系統的設計[J]. 液晶與顯示,2014,29(6):1119-1120.
[5] 劉少江,朱俊楠,王高亮. 基于嵌入式的無線勘探機器人[J].實驗室研究與探索,2013,32(9):125-126.
[6] 倪偉傳,任志健,丘澤敏. H.264幀內預測算法的優化及應用[J]. 計算機系統應用,2013,22(4):108-109.
[7] 鄧中亮,張紅星,延明. 基于S3C6410和無線傳感器網絡的手持終端設計[J]. 電子設計工程,2011,19(2):1-2.
[8] 劉明波,孫永燦,耿文建. 基于UC/OS-II的嵌入式網絡監控系統的設計與實現[J]. 計算機工程與設計,2010,31(24):5214-5215.