王夢佳,劉鵬
中國空空導彈研究院,河南,洛陽,471009
計算機技術、微電子技術、智能性機電設備的大量采用,使現代軍機、導彈等作戰武器系統的作戰效能得到很大提高,但其相關系統故障率也不斷增高,同時戰場條件的不斷惡化增加了設備檢測的難度。這些又反過來影響了武器系統作戰效能的發揮。隨著工業水平的發展,測試技術變得越來越重要。常用的測試系統需要布線及專用的測試儀器。隨著無線技術的發展,很多無線測試技術得到應用。通過無線測試技術的應用,大大降低了測試設備的成本,減小了測試設備的體積,擺脫了線纜對測試的限制,使得遠距離測試和批量測試成為可能[1]。
本文設計基于安卓的無線舵機測試系統,在Android Studio環境下完成了上位機軟件開發,基于STM32單片機完成了無線通信模塊的開發,最終實現了安卓端上位機軟件對舵機發送控制指令,并對舵機實時反饋數據,且可實現接收顯示功能。本系統具有友好的人機交互界面,操作流暢,通信可靠,可大大提高舵機的測試效率和交付進度[2]。
本系統由安卓端舵機測試軟件和無線通信模塊組成。本系統的主要功能是對舵機進行自檢測試及自檢結果顯示、跟隨測試及跟隨曲線繪制,并對舵機各項性能指標進行計算和顯示?;竟ぷ髟恚簾o線通信模塊通過程序設置IP地址和端口號。上位機軟件通過IP地址和端口號與其建立WiFi連接,然后由上位機調用相應的線程通過WiFi發送舵機控制指令給無線通信模塊;無線通信模塊的WiFi轉串口模塊ATK-ESP8266接收到信號后,將其轉換為串口數據發送給單片機STM32 F103,單片機通過USART2接收到指令后進行協議轉換后通過USART3將數據發出,然后通過MAX3490將TTL電平轉換為RS422信號給舵機,從而完成指令的發送。同理,反向完成上位機對舵機測試結果的接收。安卓端的線程接收到測試數據后,通過Message通知Handler完成對應的界面更新[3]。
系統的設計如圖1所示。

圖1 系統設計框圖
(1)界面設計。安卓程序采用Activity(活動)來與用戶進行交互。本系統主要有Main Activity和TestAcvtivity兩個界面。MainActivity用來建立WiFi連接,TestAcvtivity用來完成各項測試功能。軟件使用tabhost組件作為TestAcvtivity的主框架,tabhost又包含了上電自檢測試、地面自檢測試、跟隨測試、測試結果顯示四個分界面。使用github的LineChart庫進行跟隨曲線的顯示和放大,使用smartTable庫進行測試結果顯示。
為了確保軟件適配不同尺寸的上位機屏幕,本文采用ConstraintLayout(約束布局)來進行界面設計。
(2)程序設計。測試軟件采用模塊化設計方法,主要包括WiFi連接模塊、自檢測試模塊、跟隨測試模塊和用戶交互模塊。WiFi連接模塊主要完成與無線通信模塊的連接;自檢測試模塊主要完成與舵機的自檢信息交互;跟隨測試模塊主要完成與舵機的跟隨測試信息交互及性能指標計算;用戶交互模塊主要用來告知用戶當前測試進度和測試結果。程序主流程如圖3所示。

圖3 上位機程序流程圖
本文采用基于TCP協議的WiFi無線通信協議構建局域網進行數據信息交換。WiFi是一種創建于IEEE802.11標準的無線局域網技術。最大傳輸速率可達11Mbps,在室內有障礙的情況下最大傳輸距離也可達100M。TCP協議是一種面向連接的、可靠的、基于字節流的、全雙工的傳輸層通信協議。它可以將主機的數據無差錯地傳輸到目標主機[4]。SOCKET是網絡通信應用層與TCP/IP協議族通信的中間軟件抽象層,它是網絡通信的接口。SOCKET的本質是封裝了TCP/IP協議的編程接口(API)。用戶只需使用Socket即可建立網絡連接、獲取輸入輸出流。
本文用JAVA IO流來處理數據的輸入輸出。JAVA IO是JAVA的核心庫,它涉及的領域很廣泛,包括標準輸入輸出、文件操作、網絡上的數據流、字符串流等。JAVA IO下的類很多,但無論哪種,都繼承自InputStream、OutputStream、Reader、Writer這四大類?;诒疚牡膶嶋H需求,采用InputStream和OutputStream這兩個類,基于字節流進行數據收發。
無線通信模塊是搭建上位機和舵機之間信息通信的橋梁,實現WiFi信號與其他通信協議的相互轉換,從而控制整個系統的穩定運行。結合無線模塊的使用環境,應滿足功能、穩定性、低成本、易擴展等要求。
(1)無線通信模塊硬件電路設計。本文用到的無線通信模塊的硬件系統主要由以STM32F103為核心的主控芯片、WiFi轉串口模塊、串口轉422模塊、電源模塊組成。除此之外,為了滿足以后其他類型舵機通信協議的變化,無線通信模塊還包含有CAN驅動模塊等其他模塊。
無線通信模塊硬件電路芯片選型基于低成本、性能可靠、易操作的角度進行,選用STM32F103為主控芯片,ATK-ESP8266作為USART-WiFi模塊,SM3490作為串口轉422芯片。STM32F103具有低成本、低功耗、外設豐富、編程簡單的特點,由意法半導體公司出品,采用32位處理器Cortex-M3,具有512K片內FLASH和64KSARAM,最高工作頻率可達72MHz。STM32F103內部集成了現在大多數的主流外設部件,如USART,DMA,CAN,USB等。ATKESP8266板載AI-THINK公司的ESP8266模塊,通信穩定、開發便捷,支持LVTTL串口,且兼容3.3V和5V單片機系統,具有AP、STA、AP+STA三種模式,串口波特率可達921600bps。本文將ATK-ESP8266模塊配置為AP模式,與單片機的PC10、PC11引腳相連。SM3490作為串口轉422芯片,性能穩定,已在多型舵機上使用驗證。
(2)無線通信模塊軟件設計。無線通信模塊軟件主要完成軟件通信協議的轉換。軟件協議轉換是指上位機與無線通信模塊之間的通信協議和無線通信模塊與舵機之間的通信協議。這種設計方法可大大較小上位機與無線通信模塊之間的通信量,增加數據傳輸的可靠性[5]。無線通信模塊根據指令類型和反饋類型來進行相應的轉換工作,主流程如圖5所示。

圖5 無線通信模塊程序流程圖
經測試分析,該無線測試系統不僅實現了舵機自檢測試、多種跟隨測試、測試結果計算顯示等功能,而且能夠進行曲線細節放大等[6]。相較傳統采用工控機作為上位機進行測試,具有如下優點。
(1)實現了舵機測試系統的便攜化。傳統的舵機測試設備非常龐大,不適合多變的測試環境。無線舵機測試系統僅僅由一臺普通的安卓機和一塊約6cm*6cm的無線通信模塊構成,不僅減小了測試設備的體積,也大大減輕了重量。
(2)傳統的舵機測試設備采用工控機帶板卡作為上位機,造價非常昂貴(約數萬元),無線舵機測試系統成本僅需5千元以下即可,徹底實現了測試設備的低成本。
(3)打破了傳統測試設備線纜對測試距離的限制。WiFi無線通信距離至少可達數十米,打破了傳統測試設備因線纜長度不足導致無法測試的問題。
測試效果如圖6所示。

圖6 無線測試系統測試效果
在舵機研制過程中,往往伴隨著大量的交付試驗,試驗場所也常常發生變化,因此測試設備的便攜化就顯得尤為重要。本文首次采用體積小、重量輕的安卓機和無線測試模塊搭建舵機無線測試系統。該系統不僅可以完成傳統測試設備的所有功能,且相較傳統測試設備,突破了測試距離的限制,具有通信可靠、成本低廉、測試靈活,可擴展性強等優勢。本文為無線測試技術在武器系統測試上的應用打下了良好的基礎,這種技術將使未來舵機的批量測試、自動化測試、多協議測試、遠程軟件串行加載成為可能。