任小軍,梁志劍,尤文斌,牛躍聽
(1 中北大學計算機與控制工程學院,太原 030051;2 中北大學電子測試技術重點實驗室,太原 030051;3 解放軍軍械工程學院,石家莊 050000)
爆炸沖擊波是武器裝備的重要殺傷因素之一,因此對沖擊波的測試成為武器評測中的重要環(huán)節(jié)。目前最常用的沖擊波測試辦法有引線電測法和存儲測試法,中北大學電子測試技術重點實驗室提出了ZigBee無線傳感網(wǎng)絡和存儲測試相結合的設計方案[1-2],在一定程度上避免了引線電測法前期布置現(xiàn)場的繁瑣準備,實現(xiàn)了對沖擊波測試記錄儀的遠程控制。然而,ZigBee由于其傳輸距離短,且各廠商之間通信協(xié)議不同[3],相互之間無法兼容使其抗干擾能力差、安全性能低等缺點逐漸暴露,無法在日益復雜化、惡劣化測試環(huán)境下滿足系統(tǒng)的要求;另外,ZigBee工作模式下仍需要一臺PC機連接ZigBee中心節(jié)點,配合無線信號功率放大器才能對記錄儀實現(xiàn)遠程控制,布置這些裝置仍需要連接較長的引線,工作也是相當繁瑣[4]。最終,數(shù)據(jù)采集完成后ZigBee也無法滿足大容量、高速率的無線傳輸要求[5]。
針對以上問題,文中在分析了存儲測試法的基礎上,以Android智能手機等便攜式移動終端作為數(shù)據(jù)顯示和控制終端的開發(fā)平臺,結合無線WiFi/ARM處理器CC3200和CPLD等設備,通過手機連接無線WiFi實現(xiàn)終端和記錄儀的互連及數(shù)據(jù)傳輸,最終實現(xiàn)該沖擊波測試系統(tǒng)。
Android是基于Linux操作系統(tǒng)的開源手機操作系統(tǒng)[6],結合智能手機強大的數(shù)據(jù)處理能力在生產、生活中逐漸占據(jù)了廣闊的應用市場,大有取代PC的勢頭。Linux平臺為Android提供了基本的用戶界面、中間層、底層內核等基礎功能,用戶可以在此基礎上利用JAVA語言開發(fā)自定義APP程序??傊?Android操作系統(tǒng)具有其獨有優(yōu)勢[7],即開放性、廣泛的應用選擇,軟件設計時可以有較多的選擇和參考。
WiFi技術又稱為802.11b標準,采用2.45 GHz無線頻率,傳輸速率可達1~600 Mbit/s,與各種直接序列擴頻技術(DSSS)兼容。在數(shù)據(jù)鏈路層(MAC),WiFi使用了載波監(jiān)聽多點接入/碰撞避免(CDMA/CA)傳輸模式,同時增加了網(wǎng)絡層,使用動態(tài)分配ip機制提高了數(shù)據(jù)傳輸?shù)陌踩訹8],具有突出的技術優(yōu)勢[9]。WiFi無線電波覆蓋范圍廣,傳輸半徑可達50~300 m,無需布線,非常合適移動應用。健康安全,支持WAP/WAP2等高等級加密和安全機制,具有極強的抗干擾和安全加密機制,資費低成本。
該沖擊波測試系統(tǒng)采用C/S架構[10],主要由智能手機客戶端、記錄儀服務器和數(shù)據(jù)采集端組成。系統(tǒng)的結構布局如圖1所示,電源管理模塊給WiFi模塊、CPU模塊和時序模塊供電;準備就緒后,用戶在智能手機客戶端點擊對應按鈕通過無線WiFi向記錄儀傳輸命令信息;WiFi模塊網(wǎng)絡處理器接收到來自手機的無線信息后,從中解密提取有效命令并傳輸給CPU主控模塊ARM微處理器,CPU根據(jù)命令控制時序模塊產生時鐘、片選存儲芯片或進行數(shù)據(jù)采集和發(fā)送等。
系統(tǒng)傳輸和控制單元采用TI公司的CC3200,這是一款集成應用MCU子系統(tǒng)、WiFi網(wǎng)絡處理器子系統(tǒng)和電源管理子系統(tǒng)于一體的強大功能處理芯片[11],大大減少系統(tǒng)芯片使用量,記錄儀體積更加微型化。應用MCU采用ARM Context-M4內核,運行頻率為80 MHz,具有強大的運算處理能力、豐富的片內外設和獨立可編程、通用/復用輸入輸出(GIOP),可以控制沖擊波數(shù)據(jù)采集和傳輸?shù)?WiFi網(wǎng)絡處理器特有WiFi Internet-on-a-chip專用MCU,ROM中自帶了WiFi以及互聯(lián)網(wǎng)TCP/UDP協(xié)議棧、802.11b/g/n射頻基帶、MAC等,完全省去了WiFi模塊和其他MCU互聯(lián)的處理負擔;電源管理功能支持寬范圍電源電壓,可以配置為高/級低功耗模式。CPLD芯片選用Xlinx公司的XCR3256,該芯片強大的并行處理能力能夠為系統(tǒng)的多線程并行工作提供準確的時序。選用三星公司的大容量FLASH存儲芯片k9k8g08u0b作為數(shù)據(jù)存儲單元,其讀寫速度高達5~7 MB/s[12],通過SPI串行外部接口與WiFi模塊傳輸數(shù)據(jù)。如圖2所示為系統(tǒng)的硬件設計框圖。
2.2.1 整體設計方案
Android客戶端在系統(tǒng)中主要的功能分為兩部分:裝置讀數(shù)和配置記錄儀工作狀態(tài)。讀數(shù)前,軟件后臺自動載入記錄儀裝置的WiFi熱點網(wǎng)絡配置文件供軟件選對目標服務器,然后連接記錄儀服務器讀取數(shù)據(jù)并實時顯示數(shù)據(jù)波形;配置記錄儀工作狀態(tài)時,點擊裝置號按鈕向對應的記錄儀發(fā)送控制命令并實時監(jiān)測記錄儀的工作狀態(tài)轉換,給出狀態(tài)指示,此功能通過Android系統(tǒng)的多線程實現(xiàn)。圖3所示為智能手機軟件系統(tǒng)的基本功能流程,圖4所示為軟件程序模塊結構框圖。
2.2.2 用戶界面設計
軟件的界面系統(tǒng)主要通過Android Studio的圖形用戶界面編程系統(tǒng)(GUI)設計,其具有豐富的圖形界面組件[13]。人性化的操作界面極大程度的吸引了用戶的青睞,系統(tǒng)在界面設計時采取了極簡主題,操作簡單,上手迅速。如圖5所示為記錄儀工作狀態(tài)控制中心界面示意圖。
數(shù)據(jù)波形繪制界面主要功能是顯示數(shù)據(jù)波形,主要采用了Github最新發(fā)布的hellocharts-android開源圖表庫,該庫在圖形繪制方面支持以下Chart類型:Line Chart、Column Chart、Pie Chart、Bubble chart、Combo chart和Preview charts;此外,還支持滑動、平移、縮放、自定義坐標、預覽、動畫等圖像處理功能。系統(tǒng)實現(xiàn)時,用到LineChartView控件的主要實現(xiàn)代碼以下:
LineChartView.setZoomEnabled(true)∥支持縮放;
LineChartView.setInteractive(true)∥支持圖表與用戶互動;
LineChartView.setValueSelectionEnabled(true)∥支持波形選中;
LineChartView.setLineChartData(LineChartData)∥添加波形數(shù)據(jù)。
系統(tǒng)采用WiFi的無線mesh自組網(wǎng)技術形成自定義的類Ad Hoc局域網(wǎng),所有記錄儀裝置將處于同一個無線局域網(wǎng)內。主要實現(xiàn)方案為:將某一記錄儀裝置設置為WiFi站點模式(SP),其余記錄儀設備配置為一般接入點(AP)建立關聯(lián),并加入當前站點設備局域網(wǎng)中。此過程中關聯(lián)設備掃描周圍WiFi信號并發(fā)出連接請求,WiFi站點對其進行認證,使用動態(tài)主機配置協(xié)議(DHCP)為加入的關聯(lián)設備動態(tài)分配IP地址,所有AP設備完成“入網(wǎng)”,客戶端只需連接站點WIFI信號即可通過IP地址路由實現(xiàn)對局域網(wǎng)內所有記錄儀的遠程控制,可以通過局域網(wǎng)廣播形式實現(xiàn)對所有記錄儀的統(tǒng)一觸發(fā)。如圖6所示為系統(tǒng)的網(wǎng)絡拓撲結構。
基于Android手機和記錄儀通信的實現(xiàn)主要分為數(shù)據(jù)接收和發(fā)送兩部分[14],系統(tǒng)記錄儀CC3200芯片采用多線程完成,使用Socket機制的UDP協(xié)議編寫數(shù)據(jù)收發(fā)函數(shù),函數(shù)名分別為UDPRecThread和UDPSendThread。Socket(套接字)在通信時由客戶端和服務端兩部分組成,CC3200服務端使用ServerSocket,Android手機客戶端使用ClientSocket,兩個Socket之間建立連接可以相互發(fā)送信息,實現(xiàn)系統(tǒng)的協(xié)調工作。
基于UDP的Socket服務器設計流程主要是:1)創(chuàng)建一個套接字對象Socket,開啟服務端套接字;2)綁定設置本地IP、端口;3)循環(huán)等待客戶端連接;4)響應客戶端請求;5)關閉連接和套接字[15]。
基于UDP的Socket客戶端設計流程是:1)創(chuàng)建套接字對象,開啟客戶端套接字;2)設置套接字遠程端口和IP,這是正確找到目標服務器和數(shù)據(jù)準確發(fā)送的保障;3)連接服務器;4)發(fā)送數(shù)據(jù)請求;5)接收數(shù)據(jù);6)關閉連接和套接字[15]。
3.2.1 客戶端網(wǎng)絡設計
Android客戶端系統(tǒng)在通信過程中主要功能包括AP信號的掃描、AP信號選擇以及與服務端的交互,這里主要調用了SDK中的WiFiManager和WiFiInfo兩個類[16]。通過WifiManager.getScanResults()返回一個ScanResult列表,其中包含了掃描WiFi熱點的網(wǎng)絡名字(SSID)、接入點地址(BSSID)、信號強度(Level)等信息,根據(jù)SSID連接服務器WiFi熱點信號;WiFiinfo對象通過WifiManager.getConnectioninfo()方法獲取,通過WiFiinfo.getIpAddress()來獲取AP的IP地址,供ClientSocket找到目標服務器,實現(xiàn)客戶端到服務器的信息傳輸。
3.2.2 服務器網(wǎng)絡設計
CC3200服務器系統(tǒng)在通信過程中主要功能包括配置工作模式、WiFi熱點SSID和PassWord以及響應與客戶端交互,主要調用了CC3200的SimpleLinkNetAppEventHandler和SimpleLinkWlanEventHandler事件機制。首先,使用sl_WlanSetMode函數(shù)設置CC3200為AP(接入點)工作模式;通過TI公司提供的WiFi SmartConfig工具配置CC3200的WiFi熱點的Network Name(SSID)和Password[17];在客戶端連接到無線WiFi AP時,觸發(fā)網(wǎng)絡連接事件SimpleLinkWlanEvent,在事件處理函數(shù)中獲取客戶端設備網(wǎng)絡接口信息;客戶端向服務器發(fā)送信息觸發(fā)SimpleLinkNetAppEvent,函數(shù)得到客戶端的網(wǎng)絡IP地址和網(wǎng)關,ServerSocket使用該IP和網(wǎng)關信息獲取客戶端發(fā)來的命令信息和向客戶端返回響應數(shù)據(jù)。
將設計好的硬件記錄儀和手機APP搭建成測試系統(tǒng),在記錄儀無線WiFi覆蓋范圍內,使用智能手機在不同距離范圍內遠程操控記錄儀,測試結果表明:手機在距離記錄儀110 m范圍內WiFi連接穩(wěn)定,指令發(fā)送和響應準確,系統(tǒng)運行穩(wěn)定正常;使用iperf和Network Tools軟件測得該過程中數(shù)據(jù)平均傳輸速率為40 Mbit/s。
使用該測試系統(tǒng)在靶場對某型號對地炮彈進行了沖擊波超壓測試,18套沖擊波測試記錄儀分布在如圖7所示的編號結點處,爆心和記錄儀傳感器距地高度為0 m。如圖8(左)所示為11 m處10號記錄儀節(jié)點測得的沖擊波數(shù)據(jù)經過WiFi網(wǎng)路傳輸?shù)紸ndroid智能手機顯示的波形曲線,圖8(右)為左圖定標、濾波處理后波形曲線,可以看出基本符合沖擊波的衰減規(guī)律,與預期試驗數(shù)據(jù)基本吻合,證明了設計的可靠和成功。
文中采用Simple Link WiFi CC3200微控制器和Android智能終端設計并實現(xiàn)了基于Android和WiFi沖擊波測試系統(tǒng)。該系統(tǒng)利用時下廣泛流行的Android智能手機作為控制終端開發(fā)平臺,應用程序開源設計和實現(xiàn),極大的提高了軟件系統(tǒng)的開發(fā)效率和跨平臺性,軟件系統(tǒng)具有了升級換代的特性;利用開放的Android平臺結合WiFi實現(xiàn)對記錄儀遠程控制和裝置讀數(shù),避免繁瑣的前期布線準備和笨重的PC,具有很好的便捷性,大大提高了試驗效率;無線WiFi保證數(shù)據(jù)傳輸?shù)陌踩浴?/p>