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