(1.91388部隊92分隊 湛江 524022)(2.海軍裝備研究院系統所 北京 100073)
基于潛艇武器系統試驗的數據錄取系統設計*
鄭健1張福生1胡科強1周濤2
(1.91388部隊92分隊 湛江 524022)(2.海軍裝備研究院系統所 北京 100073)
數據錄取系統通過采用國內外成熟的計算機技術、軟件開發平臺、視頻采集技術、網絡授時技術和系統集成技術,實現了對視頻信息、串口以及以太網數據的采集、壓縮、解析、時戳疊加和存儲,項目的成熟度高,可為后續項目的改造和新研提供技術支撐。
串行通信;以太網;視頻采集
ClassNumberTB56
隨著新型魚水雷快速發展和陸續裝備部隊,無論是研制新型潛艇魚水雷武器系統還是現役潛艇的武器系統適應性改裝,均需進行潛艇魚水雷武器系統海上試驗鑒定[1]。數據錄取系統是潛艇武器系統試驗的核心裝備,基于武器系統試驗的數據錄取系統主要用于潛艇武器試驗的數據錄取,為其武器系統的主要功能、性能指標的試驗分析評定提供數據支撐。
試驗所需的數據信息包括潛艇系泊狀態和航行狀態下實時錄取探測目標的信息、導航信息和雷達信息,實時錄取指控系統和武器發控設備之間以及武器發控設備和模擬器之間傳輸的發控、設定及回復等數據信息,并按照應用協議進行解析,實時采集探測系統、指控系統主要顯控臺的圖形、表頁等視頻信息。
3.1 總體布局
系統總體布局如圖1所示。

圖1 系統總體布局與組成
3.2 系統硬件設備組成
主要硬件設備包括:串口數據錄取機、以太網數據錄取機、視頻信息錄取機、接口信號適配盒、視頻信息采集卡、視頻分配器、授時服務器、串口數據錄取電纜、以太網數據錄取電纜、視頻錄取線纜,網絡交換機和不間斷電源等組成。
3.3 軟件組成
系統軟件包括:串口數據錄取軟件、以太網數據錄取軟件和視頻采集軟件。其中串口數據錄取軟件與以太網數據錄取軟件必須依據實際裝備研制,視頻采集軟件則是在既有數據錄取軟件基礎上進行改造。
為錄取試驗所需的數據信息,需要在艇上相關位置加裝三通數據連接電纜和視頻采集電纜,并連接數據錄取設備[2],為滿足數據錄取需求,在錄取串口通道數據時,需要三臺串口數據錄取機;錄取以太網數據時,需要一臺以太網數據錄取機;錄取聲納顯控臺、指揮顯控臺視頻數據時,需要視頻錄取機兩臺。
4.1 串口數據錄取
數據錄取系統的三臺加固筆記本電腦和四個接口信號適配盒,新增兩個接口信號適配盒,定制數據錄取電纜,新研串口數據錄取軟件,實時錄取武器系統通道、聲納、綜合導航傳輸的串口數據信息。
硬件設計采用成熟的MOXA公司的UPort1400系列協議轉換器[3](以下簡稱MOXA協議轉換器),它以異步串行通信方式工作,可以同時將四路RS232/RS422/RS485串口信息轉換為USB接口信息。各數據采集點的三通線纜制作根據航空插座相關芯線定義進行,接入MOXA協議轉換器端的接口采用九針串口,嚴格按照協議轉換器芯線定義進行焊接制作。
針對武器系統數據采集實際,串口采集主要分布在指揮艙以及武器發控艙,二個艙室共配置三臺加固筆記本作為串口數據采集機,前端配備四個MOXA轉換器連接各采集點,協議轉換器與數據采集機用USB線纜連接。
串口數據錄取軟件在WindowsXP操作系統下,利用多線程技術在Visual Studio平臺上進行軟件開發[4]。
軟件運行后需要對連接各采集點的協議轉換器串口進行參數設置[5],包括波特率、奇偶校驗位以及停止位等。設置完成后打開相應串口,利用多線程技術實時監聽串口,分別對接收到的有效數據進行分離與解析,疊加時標后存盤,并在程序監控界面實時顯示解析的數據。軟件流程圖如圖2所示。

圖2 數據采集軟件流程圖
程序根據需要監控的串口通道數建立多個線程,每個線程中包含一個串口對象用于通道數據讀取[6],一個數據解析函數用于源碼解析與存盤。主要數據結構如下:
1)每個串口對象各擁有一個緩沖區gPortBuffer,用于保存從串口獲得的數據。CMainFrame::Analyze(int port)從中取出若干字節數據解析,解析后將用于解析的數據從緩沖區中刪除。功能流程見圖3所示。
2)其他全局數據
Contents:每種數據最新源碼及解析結果;
int g_nTypeSelected=0;選擇的數據類型。
串口類主動監視串口,當檢測到有數據到達時,將數據保存,并發送WM_COMM_Display消息通知CMainFrame處理(相應的函數為BOOL CMainFrame::Analyze(int port))。數據解析函數CMainFrame::Analyze(int port)。
4.2 以太網數據錄取
利用數據錄取設備一臺網絡數據錄取機,采用定制網絡數據錄取電纜、網絡交換機、以太網數據錄取軟件,實時錄取武器發控設備之間以太網傳輸的發控、設定與回復等信息[7]。

圖3 數據解析功能流程
硬件采用帶鏡像口的網絡交換機[8],數據采集點的網絡線纜根據航空插座相關芯線定義進行焊接制作。
以太網數據采集點位于在武器發控設備之間,配置1臺加固筆記本作為以太網數據采集機,前端配備1個帶鏡像口的網絡交換機通過網絡錄取線纜連接采集點。
以太網數據錄取軟件在WindowsXP操作系統下,在Visual Studio平臺上進行軟件開發。
程序利用建立的Socket套接字偵聽網絡交換機的鏡像口,如果有通過該端口的IP數據包則接收并存入緩存。數據分類按數據來源進行,根據數據源IP地址的不同進行分類,同一源IP地址的數據存入相同的數據記錄表。流程圖如圖4所示。

圖4 以太網數據錄取軟件流程圖
使用WinpCap進行網絡數據的獲取。WinpCap是一個廣泛使用的用于網絡數據獲取的開源工具[9]。軟件使用到WinpCap工具包的如下函數:
pcap_findalldevs
pcap_open_live
pcap_compile
pcap_setfilter
pcap_dump_open
pcap_next_ex
pcap_dump
pcap_close
pcap_dump_close
4.3 視頻數據錄取
利用數據錄取設備和數據錄取系統視頻采集機,采用視頻分頻器、視頻錄取電纜、視頻采集軟件,實時采集聲納和指控顯控臺顯示屏信息[10]。
目前艦艇上顯控臺視頻輸入輸出一般采用標準視頻接口,符合通用軍工標準,因此研制的視頻錄取系統也采用這種視頻標準,具有高度通用性。
視頻錄取系統硬件包括視頻錄取機、高清視頻采集卡、視頻分配器以及標準視頻線纜。視頻錄取機是采用Intel Q8400四核CPU的工業級便攜式工控機,存儲設備采用RAID0+RAID1的磁盤冗余策略,工控機內置多塊符合軍用總線標準的PCI-E高清視頻采集卡。系統可以同時錄取4路1280×1024分辨率的高清視頻。
標準視頻線一端連接標準顯控臺視頻輸出端,另一端接視頻分配器輸入端;再用一條視頻線分別接視頻分配器輸出端和顯控臺顯示器;最后用一條視頻線分別接視頻分配器另一輸出端和視頻錄取機的視頻采集卡。
現有的視頻錄取系統軟件是基于多線程并發計算技術開發的,沒有考慮當前多核CPU硬件環境帶來的優勢,程序完全交與操作系統分時調度。操作系統按照時間片將CPU分配給各個線程,在處理當前線程時其它線程處于等待狀態,對于多核CPU環境來說利用效率太低,而且多路視頻同時采集時會出現各線程執行效率不均衡的現象。另外,程序中控制代碼復雜,容易出現多線程編程中常見的線程同步異常以及死鎖現象。
為克服舊有系統的弊病,這里我們用到了微軟.NET4.0中的并行任務庫,它是.NET 4.0為開發者提供的一組類,位于System.Threading和System.Threading.Tasks這兩個命名空間下,駐留在三個.NET核心程序集mscorlib.dll、System.dll和System.Core.dll里。它將并行程序抽象級別從“線程(Thread)”提升到“任務”級別。
軟件編寫使用C#語言,在Microsoft Visual Studio 2010環境下進行開發。以下是部分關鍵代碼。
1)并行執行任務代碼,用于并行調用四路視頻錄取代碼。
//引用兩個命名空間
Using System.Threading;
Using System.Threading.Tasks;
//……
//獲取當前系統CPU核心數
Int numberofCPU=System.Environment.ProcessorCount;
//視頻采集代碼分配到不同的CPU核心,并行調用視頻錄取代碼
Parallel.For(0,numberofCPU,i=>{
Int iCurrUsedNo;//視頻采集卡卡號
VideoCapture(iCurrUsedNo);});
//……
2)視頻錄取(VideoCapture)關鍵代碼。其中,部分函數引用視頻采集卡公司提供的二次開發包,視頻編碼可設置為H.264或MPEG4算法。
//……
//打開指定的視頻采集卡
hBoard = okOpenBoard(iCurrUsedNo);
//指定文件路徑以及編碼格式
filename1 = fnametmp + ".AVI,MPG4" ;
//獲取當前系統時間,精確到毫秒
systime = CurrentTime();
//將時間信息疊加到當前幀
okSetTextTo hBoard, BUFFER, rcRect, lfLogFont, textmode, systime, 23;
//將當前幀存儲到指定的文件
okSaveImageFile hBoard, filename1, imageseq, BUFFER, 0, 1;
//以上代碼循環,直到“停止”操作
//……
視頻采集軟件界面如圖5所示。

圖5 視頻采集軟件界面
4.4 關鍵技術
關鍵技術有四個方面:一是實時對高分辨率標準顯控臺顯示器進行長時間采集,采集幀率不低于10幀/秒;二是要求用盡可能少的筆記本電腦對串口通道數據進行采集,同時不出現丟失報文;三是實時采集在武器發控設備之間的網絡數據信息,做到報文不丟失;四是對視頻和數據報文進行同步時戳疊加。
解決辦法是采用多塊高分辨率視頻帶有硬件壓縮功能的采集卡,將其集成在便攜式工控機中,通過多核編程技術改造現有的視頻采集軟件,提高視頻采集軟件CPU使用效率,可實現在兩臺工控機上有效完成同時對多個顯示器的視頻采集,且采集幀率不低于10幀/秒;標配筆記本電腦都只配一個串行接口,為節省空間、減少筆記本數量、優化硬件配置,采用多串口轉接盒,通過優化串口數據采集軟件,實現一臺筆記本電腦可同時采集八個串口通道數據;以太網數據采集利用網絡實時嗅探技術,可通過帶鏡像口的網絡交換機進行實時監聽與數據解析;視頻采集和串口報文錄取分別通過多臺工控機和筆記本電腦完成,存在一定的時間漂移,通過采用網絡同步授時技術,對工控機和筆記本電腦進行授時,由數據錄取軟件對錄取的視頻和報文進行疊加時戳,有效解決同步時戳疊加功能。
利用現有成熟數據錄取技術,在系統設計方面提高了集成度,完善了試驗數據采集手段,為武器系統的主要功能、性能指標的試驗分析評定提供數據支撐,提高了試驗結果分析評定的速度和準確度,有效地縮短試驗周期,為海軍新裝備加快形成戰斗力提供保證。該數據錄取系統也可服務于部隊日常訓練中的數據采集,為訓練效果評估、事后案例分析等提供數據支撐。
[1]陳松輝,邱宏理.基于AHP和模糊綜合評價法的登陸作戰效能分析[J].艦船電子工程,2013,224(2):91-93.
[2]董曉明,程嵐,張劍,等.元數據管理在作戰系統數據集成設計中的應用[J].計算機與數字工程,2010,38(7):62-65.
[3]李建軍,葉林.應用MOXA卡串行通信函數實現多機通信的方法[J].儀表技術與傳感器,2002,21(12):32-34.
[4]張玉芝.指揮自動化原理[D].大連:海軍大連艦艇學院,2009:251-275.
[5]姚璟,董曉明,秦克.作戰系統接口協議輔助設計軟件的設計與實現[J].計算機與數字工程,2012,40(1):140-142.
[6]劉仁杰,姚星周.Windows環境下多線程多串口通訊的實現[J].工業控制計算機,2011,24(5):32-33.
[7]楊書凱,惠力,等.基于以太網的平臺綜合觀測系統軟件設計[J].山東科學,2012,25(6):83-85.
[8]周忠寶,董豆豆,周經倫.貝葉斯網絡在可靠性分析中的應用[J].系統工程理論與實踐,2006,26(6):95-100.
[9]沈輝,張龍.基于WinPcap的網絡數據監測及分析[J].計算機科學,2012,39(10):15-18.
[10]王黎明,鄭健,等.基于多核并行計算的艦艇通用視頻錄取系統[J].電子設計工程,2011,19(13):52-54.
DataAcquisitionSystemBasedonTheSubmarineWeaponSystem
ZHENG Jian1ZHANG Fusheng1HU Keqiang1ZHOU Tao2
(1. Unit 92, No. 91388 Troops of PLA, Zhanjiang 524022)(2. Navy Equipment Research Institute, Beijing 100073)
An Ethernet based data acquisition and processing software system of integrated Serial communication、ethernet and video-capturing were developed. The system could accurately acquire and process Serial、Ethernet and video-capturing data. These data were further shared by Ethernet. The system could therefore provide accurate and reliable data for marine.
serial communication, ethernet, video-capturing
2013年11月10日,
:2013年12月27日
鄭健,男,高級工程師,研究方向:指控系統及其數據采集。張福生,男,碩士,研究方向:作戰系統與數據采集工程。胡科強,男,碩士,研究方向:水下靶標控制技術。周濤,男,高級工程師,研究方向:反潛武器系統。
TB56DOI:10.3969/j.issn1672-9730.2014.05.025