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