韋啟 李爭平 黃明 仵松頎
摘 要:地面控制裝置主要運用UDP作為通信協議,系統(tǒng)軟件的基本功能包括軟件上電自檢與遠程控制自檢、數據采集與上傳、遠程命令接收與處理及繼電器控制。文中對系統(tǒng)各功能模塊的設計思想做了簡要闡述,并給出時序圖與流程圖、軟件測試方法、實驗記錄及結果分析。
關鍵詞:地面控制裝置;UDP通信;上電自檢;遠程控制;時序圖;流程圖
中圖分類號:TP277文獻標識碼:A文章編號:2095-1302(2019)03-00-04
0 引 言
近年來,隨著國家航空航天研究的深入,無人機悄然興起,主要應用于一些惡劣環(huán)境的探索及長時間實時數據的收集。無人機執(zhí)行的是長時間惡劣環(huán)境下的數據采集任務,同時需要與地面站之間能夠有大規(guī)模數據交互,且對數據采集的精度要求極高。基于此,本文主要通過Keil4環(huán)境開發(fā)基于嵌入式的無人機地面控制裝置,實現無人機遠距離數據采集與實時控制。嵌入式系統(tǒng)是一種以控制、監(jiān)控或輔助各種操作機器與設備為目的的裝置,是運用計算機技術,圍繞應用需求,對軟件、硬件進行相應裁剪,使功能、成本、體積、功耗以及可靠性等都能適應相應要求的專用計算機系統(tǒng)[1]。
1 系統(tǒng)設計與實現
1.1 通信協議設計
在嵌入式領域有多種通信協議可供選擇。由于嵌入式終端實現了網絡通信,故可考慮通過以太網的TCP/IP或UDP協議實現系統(tǒng)與上位機的通信,現就這兩種協議的異同進行討論,以選擇更適合本文系統(tǒng)的協議。
1.1.1 TCP/IP協議
傳輸控制協議(Transmission Control Protocol,TCP)是基于連接的協議[2],即在正式收發(fā)數據前,須與對方建立可靠連接。一個TCP連接必須經過3次“對話”才能建立起來,3次“對話”的目的是使數據包的發(fā)送與接收同步,經過3次“對話”后,兩個主機才能正式發(fā)送數據。
1.1.2 UDP協議
用戶數據報協議(User Data Protocol,UDP)是與TCP相對應的協議。它是面向非連接的協議,不與對方建立連接,而直接把數據包發(fā)送過去。
1.1.3 二者差異
由于TCP/IP協議是面向協議的通信,因此需要兩個設備之間建立連接,且TCP/IP管發(fā)管到,安全性更高。而UDP協議是面向非協議的通信,可用于組播發(fā)送,只需組播地址并加入組播就可收到廣播,實時性更強。
綜上所述,只需使系統(tǒng)將采集到的數據發(fā)送到上位機即可,且鑒于對數據采集的實時性要求較高,因此本文采用UDP協議進行通信。
1.2 系統(tǒng)架構設計
針對本文系統(tǒng)性能要求,選擇STM32F407ZGT作為系統(tǒng)核心處理模塊,內核為Cortex-M4[3]。STM32F407ZGT核心板ADC為12位,最多可采集24通道數據,滿足設計要求。此核心板還支持10/100 Ethernet MAC以太網通信,可工作在-40~105 ℃環(huán)境下。
根據設計需求,系統(tǒng)采用中斷與時間片輪詢軟件架構,可保證系統(tǒng)數據采集與控制的實時性。系統(tǒng)軟件的基本功能包括軟件上電自檢與遠程控制自檢、數據采集與上傳、遠程命令接收與處理、繼電器控制。軟件執(zhí)行的基本時序是:系統(tǒng)開機后進行設備自檢與系統(tǒng)自檢,自檢通過后進入中斷監(jiān)聽程序,待發(fā)生中斷后做出相應動作,執(zhí)行過程中進行系統(tǒng)自檢,隨時上報自檢結果。系統(tǒng)結構如圖1所示,軟件執(zhí)行時序如圖2所示。
主線程偽代碼如下:
sysInit();//系統(tǒng)初始化
GPIO_ResetBits(GPIOB,GPIO_Pin_13);
//自檢開始,點亮黃燈
powerSelfCheck();//電源自檢
controlSelfCheck();//控制自檢
networkSelfCheck();//網絡自檢
GPIO_SetBits(GPIOB,GPIO_Pin_13);//自檢結束黃燈滅
Set_IP4_ADDR(&ipMultiCast,UDP_MC_REMOTE_IP);
//遠端IP
while(1)//主循環(huán)
軟件上電自檢流程如圖3所示。
軟件上電自檢過程中,狀態(tài)指示燈紅閃;自檢結束并異常,狀態(tài)指示燈紅色常亮;自檢結束并正常,狀態(tài)指示燈綠色常亮。
由于通過ADC采集到的數據為十六進制數,因此需要經過與參數做運算實現數值轉換,以便進行判斷比較。
網口遠程控制自檢過程可獨立控制不同繼電器控制電路的自檢。第1,2,4路自檢與上電自檢流程相同;第3路自檢需要在遠程控制開關閉合狀態(tài)下完成,具體流程如圖4所示。
基于定時中斷的采樣過程采用周期定時中斷方式進行[4],每次采樣完成所有24通道ADC采樣過程,將采樣結果上報上位機。
基于程序控制采樣過程可以命令采集不同通道的樣值上報,每次采集一個通道的樣值。
程序設置看門狗計數器,當程序出現異常時控制程序自動重啟。
系統(tǒng)中主要采用定時中斷、網口通信中斷,網口通信中斷優(yōu)先于定時中斷。
系統(tǒng)采用定時向上位機發(fā)送采樣值的方式報告地面控制裝置的狀態(tài)。若超時未發(fā)送采樣值,則說明地面控制裝置異常。同時,每次上報采樣值后,上位機需應答確認。若地面控制裝置接收上位機應答確認超時,則控制狀態(tài)指示燈黃色常亮。
1.3 網絡模塊軟件設計
網絡模塊選擇以太網接口芯片DP83848,DP83848支持IEEE 802.3u以太網協議,且可工作在-40~125 ℃環(huán)境下,既能滿足網絡通信需求,又能工作于惡劣環(huán)境。為了使主控板能夠對DP83848進行正確讀寫,并使DP83848處于激活狀態(tài),以便指令數據收發(fā),需要對網卡進行初始化[5]。
網絡初始化流程如圖5所示。在網絡初始化過程中,若出現異常則狀態(tài)指示燈黃閃。
1.4 與上位機通信過程設計
地面控制裝置與上位機通信包括控制命令與采樣上報兩種信息。控制命令執(zhí)行時序如圖6所示,采樣上報執(zhí)行時序如圖7所示。
1.5 系統(tǒng)軟件與上位機指令協議說明
通信協議具體要求如下:
(1)使用UDP協議。1號裝置IP地址為192.168.70.11,組播地址為224.0.10.1,端口號為0x8001;2號裝置IP地址為192.168.70.12,組播地址為224.0.10.2,端口號為0x8002。
(2)收到的上位機發(fā)控指令幀格式與向上位機上報的發(fā)控數據幀格式見表1、表2所列。
①動作序號代碼中0000H代表動作開關1;00FFH代表動作開關2;0F0FH代表動作開關3;3333H代表動作開關4;FFFFH代表動作開關5。
②動作指令代碼中0000H代表撤銷繼電器控制電壓;FFFFH代表添加繼電器控制電壓。
③動作持續(xù)時間0000H代表接收到此命令后立刻執(zhí)行,直至收到下一個同動作序號代碼的指令;其余代表收到此命令后立刻執(zhí)行,直至收到下一個同動作序號代碼的指令或持續(xù)到本條指令中動作持續(xù)時間結束(實際動作持續(xù)時間=指令中動作持續(xù)時間×1 ms)。
①發(fā)控數據幀10 ms上報一次。
②當收到發(fā)控指令后,下一幀發(fā)控數據幀中發(fā)控指令回令部分填寫收到指令4~9 B的內容,未收到指令時發(fā)控指令回令部分填寫55555555H。
③每條發(fā)控指令發(fā)送3次,2次間隔10 ms,要求在收到1條發(fā)控指令后50 ms內回復,但不響應相同的指令。
④幀計數在第一幀上報時填寫00000001H,往后每幀加1H。
2 系統(tǒng)軟件測試
軟件測試主要采用白盒測試的方式,包括功能測試與性能測試。
功能測試主要對每條控制指令執(zhí)行情況進行測試,包括繼電器控制指令測試、采集信號控制指令測試與系統(tǒng)自檢控制指令測試。
性能測試包括指令響應時間測試與壓力測試,模擬實際控制場景進行壓力測試,統(tǒng)計遠程控制命令的響應時間。
首先進行指令測試,給設備通電,然后使用上位機向設備發(fā)送命令,讀取設備采集到的數據,并將數據發(fā)送到上位機上,同時寫入文件,再用示波器對測試結果進行檢驗。
上位機發(fā)送指令采集數據界面如圖8所示。利用上位機發(fā)送命令,使繼電器1,2,4,5處于打開狀態(tài),繼電器3處于關閉狀態(tài),此時可觀察到A/D采集到的數據。由于供給設備30 V穩(wěn)壓直流電源,故圖中通道C1~C10采集的數據均為30 V上下,同時這些數據均寫入文件。圖9所示為寫入文件的數據,同時使用示波器進行采集,發(fā)現滿足每10 ms上傳一次數據,結果如圖10所示。
采用STM32嵌入式開發(fā)的無人機地面控制裝置實現了遠距離數據采集與實時控制,使得無人機在惡劣環(huán)境下仍可執(zhí)行數據采集與上傳任務,在確保數據精度的情況下,為人們探索一些人力所不能及的地方提供了新的可能。
本文系統(tǒng)通過UDP協議進行通信,確保通信實時性的同時擁有獨立的指令協議,實現了通信可靠性。該裝置在與軟件聯調時發(fā)現的諸多問題在一次次排錯與整改中得到了排除,在保障安全性、維修性與可靠性的前提下進行三化設計,最終基本實現了要求的功能及指標。
參 考 文 獻
[1]季國華.基于DSP的嵌入式系統(tǒng)網絡通信技術應用[J].無線互聯技術,2017(24):3-4.
[2]李逸瀚,石春,吳剛.基于μC/TCP-IP協議棧的嵌入式以太網通信系統(tǒng)[J].計算機應用與軟件,2017,34(9):153-158.
[3]李德佶,吳萬敏.基于STM32和SIM800C的小型嵌入式監(jiān)控設備的設計與開發(fā)方案:以小微企業(yè)污水處理為例[J].科技與創(chuàng)新,2018(3):36-38.
[4] SCAGLIA S.The embedded internet TCP/IP basics:implementation and application[M].北京:北京航空航天大學出版社,2008:67-98.
[5]戚新建,章偉.基于STM32的快速嵌入式以太網接口[J].儀表技術與傳感器,2017(7):45-49.
[6]譚浩強.C語言程序設計[M].4版.北京:清華大學出版杜,2010.
[7]康一梅.嵌入式程序設計[M]. 北京:機械工業(yè)出版社,2007.
[8]范延濱,李小康.嵌入式Linux下WiFi接入技術研究[J].物聯網技術,2014,4(10):30-32.
[9]姚莉,鄧丹君.基于A8的嵌入式Linux遠程視頻監(jiān)控系統(tǒng)的設計與實現[J].物聯網技術,2016,6(5):24-26.
[10]張仕海,周穎.基于ARM的嵌入式視頻監(jiān)控系統(tǒng)的硬件設計[J].物聯網技術,2017,7(5):12-14,17.
[11]彭旭.基于嵌入式系統(tǒng)的通信控制器設計與開發(fā)[D].哈爾濱:哈爾濱工業(yè)大學,2007.