(1.91388部隊(duì)92分隊(duì) 湛江 524022)(2.海軍裝備研究院系統(tǒng)所 北京 100073)
基于潛艇武器系統(tǒng)試驗(yàn)的數(shù)據(jù)錄取系統(tǒng)設(shè)計(jì)*
鄭健1張福生1胡科強(qiáng)1周濤2
(1.91388部隊(duì)92分隊(duì) 湛江 524022)(2.海軍裝備研究院系統(tǒng)所 北京 100073)
數(shù)據(jù)錄取系統(tǒng)通過采用國內(nèi)外成熟的計(jì)算機(jī)技術(shù)、軟件開發(fā)平臺(tái)、視頻采集技術(shù)、網(wǎng)絡(luò)授時(shí)技術(shù)和系統(tǒng)集成技術(shù),實(shí)現(xiàn)了對(duì)視頻信息、串口以及以太網(wǎng)數(shù)據(jù)的采集、壓縮、解析、時(shí)戳疊加和存儲(chǔ),項(xiàng)目的成熟度高,可為后續(xù)項(xiàng)目的改造和新研提供技術(shù)支撐。
串行通信;以太網(wǎng);視頻采集
ClassNumberTB56
隨著新型魚水雷快速發(fā)展和陸續(xù)裝備部隊(duì),無論是研制新型潛艇魚水雷武器系統(tǒng)還是現(xiàn)役潛艇的武器系統(tǒng)適應(yīng)性改裝,均需進(jìn)行潛艇魚水雷武器系統(tǒng)海上試驗(yàn)鑒定[1]。數(shù)據(jù)錄取系統(tǒng)是潛艇武器系統(tǒng)試驗(yàn)的核心裝備,基于武器系統(tǒng)試驗(yàn)的數(shù)據(jù)錄取系統(tǒng)主要用于潛艇武器試驗(yàn)的數(shù)據(jù)錄取,為其武器系統(tǒng)的主要功能、性能指標(biāo)的試驗(yàn)分析評(píng)定提供數(shù)據(jù)支撐。
試驗(yàn)所需的數(shù)據(jù)信息包括潛艇系泊狀態(tài)和航行狀態(tài)下實(shí)時(shí)錄取探測目標(biāo)的信息、導(dǎo)航信息和雷達(dá)信息,實(shí)時(shí)錄取指控系統(tǒng)和武器發(fā)控設(shè)備之間以及武器發(fā)控設(shè)備和模擬器之間傳輸?shù)陌l(fā)控、設(shè)定及回復(fù)等數(shù)據(jù)信息,并按照應(yīng)用協(xié)議進(jìn)行解析,實(shí)時(shí)采集探測系統(tǒng)、指控系統(tǒng)主要顯控臺(tái)的圖形、表頁等視頻信息。
3.1 總體布局
系統(tǒng)總體布局如圖1所示。
圖1 系統(tǒng)總體布局與組成
3.2 系統(tǒng)硬件設(shè)備組成
主要硬件設(shè)備包括:串口數(shù)據(jù)錄取機(jī)、以太網(wǎng)數(shù)據(jù)錄取機(jī)、視頻信息錄取機(jī)、接口信號(hào)適配盒、視頻信息采集卡、視頻分配器、授時(shí)服務(wù)器、串口數(shù)據(jù)錄取電纜、以太網(wǎng)數(shù)據(jù)錄取電纜、視頻錄取線纜,網(wǎng)絡(luò)交換機(jī)和不間斷電源等組成。
3.3 軟件組成
系統(tǒng)軟件包括:串口數(shù)據(jù)錄取軟件、以太網(wǎng)數(shù)據(jù)錄取軟件和視頻采集軟件。其中串口數(shù)據(jù)錄取軟件與以太網(wǎng)數(shù)據(jù)錄取軟件必須依據(jù)實(shí)際裝備研制,視頻采集軟件則是在既有數(shù)據(jù)錄取軟件基礎(chǔ)上進(jìn)行改造。
為錄取試驗(yàn)所需的數(shù)據(jù)信息,需要在艇上相關(guān)位置加裝三通數(shù)據(jù)連接電纜和視頻采集電纜,并連接數(shù)據(jù)錄取設(shè)備[2],為滿足數(shù)據(jù)錄取需求,在錄取串口通道數(shù)據(jù)時(shí),需要三臺(tái)串口數(shù)據(jù)錄取機(jī);錄取以太網(wǎng)數(shù)據(jù)時(shí),需要一臺(tái)以太網(wǎng)數(shù)據(jù)錄取機(jī);錄取聲納顯控臺(tái)、指揮顯控臺(tái)視頻數(shù)據(jù)時(shí),需要視頻錄取機(jī)兩臺(tái)。
4.1 串口數(shù)據(jù)錄取
數(shù)據(jù)錄取系統(tǒng)的三臺(tái)加固筆記本電腦和四個(gè)接口信號(hào)適配盒,新增兩個(gè)接口信號(hào)適配盒,定制數(shù)據(jù)錄取電纜,新研串口數(shù)據(jù)錄取軟件,實(shí)時(shí)錄取武器系統(tǒng)通道、聲納、綜合導(dǎo)航傳輸?shù)拇跀?shù)據(jù)信息。
硬件設(shè)計(jì)采用成熟的MOXA公司的UPort1400系列協(xié)議轉(zhuǎn)換器[3](以下簡稱MOXA協(xié)議轉(zhuǎn)換器),它以異步串行通信方式工作,可以同時(shí)將四路RS232/RS422/RS485串口信息轉(zhuǎn)換為USB接口信息。各數(shù)據(jù)采集點(diǎn)的三通線纜制作根據(jù)航空插座相關(guān)芯線定義進(jìn)行,接入MOXA協(xié)議轉(zhuǎn)換器端的接口采用九針串口,嚴(yán)格按照協(xié)議轉(zhuǎn)換器芯線定義進(jìn)行焊接制作。
針對(duì)武器系統(tǒng)數(shù)據(jù)采集實(shí)際,串口采集主要分布在指揮艙以及武器發(fā)控艙,二個(gè)艙室共配置三臺(tái)加固筆記本作為串口數(shù)據(jù)采集機(jī),前端配備四個(gè)MOXA轉(zhuǎn)換器連接各采集點(diǎn),協(xié)議轉(zhuǎn)換器與數(shù)據(jù)采集機(jī)用USB線纜連接。
串口數(shù)據(jù)錄取軟件在WindowsXP操作系統(tǒng)下,利用多線程技術(shù)在Visual Studio平臺(tái)上進(jìn)行軟件開發(fā)[4]。
軟件運(yùn)行后需要對(duì)連接各采集點(diǎn)的協(xié)議轉(zhuǎn)換器串口進(jìn)行參數(shù)設(shè)置[5],包括波特率、奇偶校驗(yàn)位以及停止位等。設(shè)置完成后打開相應(yīng)串口,利用多線程技術(shù)實(shí)時(shí)監(jiān)聽串口,分別對(duì)接收到的有效數(shù)據(jù)進(jìn)行分離與解析,疊加時(shí)標(biāo)后存盤,并在程序監(jiān)控界面實(shí)時(shí)顯示解析的數(shù)據(jù)。軟件流程圖如圖2所示。
圖2 數(shù)據(jù)采集軟件流程圖
程序根據(jù)需要監(jiān)控的串口通道數(shù)建立多個(gè)線程,每個(gè)線程中包含一個(gè)串口對(duì)象用于通道數(shù)據(jù)讀取[6],一個(gè)數(shù)據(jù)解析函數(shù)用于源碼解析與存盤。主要數(shù)據(jù)結(jié)構(gòu)如下:
1)每個(gè)串口對(duì)象各擁有一個(gè)緩沖區(qū)gPortBuffer,用于保存從串口獲得的數(shù)據(jù)。CMainFrame::Analyze(int port)從中取出若干字節(jié)數(shù)據(jù)解析,解析后將用于解析的數(shù)據(jù)從緩沖區(qū)中刪除。功能流程見圖3所示。
2)其他全局?jǐn)?shù)據(jù)
Contents:每種數(shù)據(jù)最新源碼及解析結(jié)果;
int g_nTypeSelected=0;選擇的數(shù)據(jù)類型。
串口類主動(dòng)監(jiān)視串口,當(dāng)檢測到有數(shù)據(jù)到達(dá)時(shí),將數(shù)據(jù)保存,并發(fā)送WM_COMM_Display消息通知CMainFrame處理(相應(yīng)的函數(shù)為BOOL CMainFrame::Analyze(int port))。數(shù)據(jù)解析函數(shù)CMainFrame::Analyze(int port)。
4.2 以太網(wǎng)數(shù)據(jù)錄取
利用數(shù)據(jù)錄取設(shè)備一臺(tái)網(wǎng)絡(luò)數(shù)據(jù)錄取機(jī),采用定制網(wǎng)絡(luò)數(shù)據(jù)錄取電纜、網(wǎng)絡(luò)交換機(jī)、以太網(wǎng)數(shù)據(jù)錄取軟件,實(shí)時(shí)錄取武器發(fā)控設(shè)備之間以太網(wǎng)傳輸?shù)陌l(fā)控、設(shè)定與回復(fù)等信息[7]。
圖3 數(shù)據(jù)解析功能流程
硬件采用帶鏡像口的網(wǎng)絡(luò)交換機(jī)[8],數(shù)據(jù)采集點(diǎn)的網(wǎng)絡(luò)線纜根據(jù)航空插座相關(guān)芯線定義進(jìn)行焊接制作。
以太網(wǎng)數(shù)據(jù)采集點(diǎn)位于在武器發(fā)控設(shè)備之間,配置1臺(tái)加固筆記本作為以太網(wǎng)數(shù)據(jù)采集機(jī),前端配備1個(gè)帶鏡像口的網(wǎng)絡(luò)交換機(jī)通過網(wǎng)絡(luò)錄取線纜連接采集點(diǎn)。
以太網(wǎng)數(shù)據(jù)錄取軟件在WindowsXP操作系統(tǒng)下,在Visual Studio平臺(tái)上進(jìn)行軟件開發(fā)。
程序利用建立的Socket套接字偵聽網(wǎng)絡(luò)交換機(jī)的鏡像口,如果有通過該端口的IP數(shù)據(jù)包則接收并存入緩存。數(shù)據(jù)分類按數(shù)據(jù)來源進(jìn)行,根據(jù)數(shù)據(jù)源IP地址的不同進(jìn)行分類,同一源IP地址的數(shù)據(jù)存入相同的數(shù)據(jù)記錄表。流程圖如圖4所示。
圖4 以太網(wǎng)數(shù)據(jù)錄取軟件流程圖
使用WinpCap進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的獲取。WinpCap是一個(gè)廣泛使用的用于網(wǎng)絡(luò)數(shù)據(jù)獲取的開源工具[9]。軟件使用到WinpCap工具包的如下函數(shù):
pcap_findalldevs
pcap_open_live
pcap_compile
pcap_setfilter
pcap_dump_open
pcap_next_ex
pcap_dump
pcap_close
pcap_dump_close
4.3 視頻數(shù)據(jù)錄取
利用數(shù)據(jù)錄取設(shè)備和數(shù)據(jù)錄取系統(tǒng)視頻采集機(jī),采用視頻分頻器、視頻錄取電纜、視頻采集軟件,實(shí)時(shí)采集聲納和指控顯控臺(tái)顯示屏信息[10]。
目前艦艇上顯控臺(tái)視頻輸入輸出一般采用標(biāo)準(zhǔn)視頻接口,符合通用軍工標(biāo)準(zhǔn),因此研制的視頻錄取系統(tǒng)也采用這種視頻標(biāo)準(zhǔn),具有高度通用性。
視頻錄取系統(tǒng)硬件包括視頻錄取機(jī)、高清視頻采集卡、視頻分配器以及標(biāo)準(zhǔn)視頻線纜。視頻錄取機(jī)是采用Intel Q8400四核CPU的工業(yè)級(jí)便攜式工控機(jī),存儲(chǔ)設(shè)備采用RAID0+RAID1的磁盤冗余策略,工控機(jī)內(nèi)置多塊符合軍用總線標(biāo)準(zhǔn)的PCI-E高清視頻采集卡。系統(tǒng)可以同時(shí)錄取4路1280×1024分辨率的高清視頻。
標(biāo)準(zhǔn)視頻線一端連接標(biāo)準(zhǔn)顯控臺(tái)視頻輸出端,另一端接視頻分配器輸入端;再用一條視頻線分別接視頻分配器輸出端和顯控臺(tái)顯示器;最后用一條視頻線分別接視頻分配器另一輸出端和視頻錄取機(jī)的視頻采集卡。
現(xiàn)有的視頻錄取系統(tǒng)軟件是基于多線程并發(fā)計(jì)算技術(shù)開發(fā)的,沒有考慮當(dāng)前多核CPU硬件環(huán)境帶來的優(yōu)勢,程序完全交與操作系統(tǒng)分時(shí)調(diào)度。操作系統(tǒng)按照時(shí)間片將CPU分配給各個(gè)線程,在處理當(dāng)前線程時(shí)其它線程處于等待狀態(tài),對(duì)于多核CPU環(huán)境來說利用效率太低,而且多路視頻同時(shí)采集時(shí)會(huì)出現(xiàn)各線程執(zhí)行效率不均衡的現(xiàn)象。另外,程序中控制代碼復(fù)雜,容易出現(xiàn)多線程編程中常見的線程同步異常以及死鎖現(xiàn)象。
為克服舊有系統(tǒng)的弊病,這里我們用到了微軟.NET4.0中的并行任務(wù)庫,它是.NET 4.0為開發(fā)者提供的一組類,位于System.Threading和System.Threading.Tasks這兩個(gè)命名空間下,駐留在三個(gè).NET核心程序集mscorlib.dll、System.dll和System.Core.dll里。它將并行程序抽象級(jí)別從“線程(Thread)”提升到“任務(wù)”級(jí)別。
軟件編寫使用C#語言,在Microsoft Visual Studio 2010環(huán)境下進(jìn)行開發(fā)。以下是部分關(guān)鍵代碼。
1)并行執(zhí)行任務(wù)代碼,用于并行調(diào)用四路視頻錄取代碼。
//引用兩個(gè)命名空間
Using System.Threading;
Using System.Threading.Tasks;
//……
//獲取當(dāng)前系統(tǒng)CPU核心數(shù)
Int numberofCPU=System.Environment.ProcessorCount;
//視頻采集代碼分配到不同的CPU核心,并行調(diào)用視頻錄取代碼
Parallel.For(0,numberofCPU,i=>{
Int iCurrUsedNo;//視頻采集卡卡號(hào)
VideoCapture(iCurrUsedNo);});
//……
2)視頻錄取(VideoCapture)關(guān)鍵代碼。其中,部分函數(shù)引用視頻采集卡公司提供的二次開發(fā)包,視頻編碼可設(shè)置為H.264或MPEG4算法。
//……
//打開指定的視頻采集卡
hBoard = okOpenBoard(iCurrUsedNo);
//指定文件路徑以及編碼格式
filename1 = fnametmp + ".AVI,MPG4" ;
//獲取當(dāng)前系統(tǒng)時(shí)間,精確到毫秒
systime = CurrentTime();
//將時(shí)間信息疊加到當(dāng)前幀
okSetTextTo hBoard, BUFFER, rcRect, lfLogFont, textmode, systime, 23;
//將當(dāng)前幀存儲(chǔ)到指定的文件
okSaveImageFile hBoard, filename1, imageseq, BUFFER, 0, 1;
//以上代碼循環(huán),直到“停止”操作
//……
視頻采集軟件界面如圖5所示。
圖5 視頻采集軟件界面
4.4 關(guān)鍵技術(shù)
關(guān)鍵技術(shù)有四個(gè)方面:一是實(shí)時(shí)對(duì)高分辨率標(biāo)準(zhǔn)顯控臺(tái)顯示器進(jìn)行長時(shí)間采集,采集幀率不低于10幀/秒;二是要求用盡可能少的筆記本電腦對(duì)串口通道數(shù)據(jù)進(jìn)行采集,同時(shí)不出現(xiàn)丟失報(bào)文;三是實(shí)時(shí)采集在武器發(fā)控設(shè)備之間的網(wǎng)絡(luò)數(shù)據(jù)信息,做到報(bào)文不丟失;四是對(duì)視頻和數(shù)據(jù)報(bào)文進(jìn)行同步時(shí)戳疊加。
解決辦法是采用多塊高分辨率視頻帶有硬件壓縮功能的采集卡,將其集成在便攜式工控機(jī)中,通過多核編程技術(shù)改造現(xiàn)有的視頻采集軟件,提高視頻采集軟件CPU使用效率,可實(shí)現(xiàn)在兩臺(tái)工控機(jī)上有效完成同時(shí)對(duì)多個(gè)顯示器的視頻采集,且采集幀率不低于10幀/秒;標(biāo)配筆記本電腦都只配一個(gè)串行接口,為節(jié)省空間、減少筆記本數(shù)量、優(yōu)化硬件配置,采用多串口轉(zhuǎn)接盒,通過優(yōu)化串口數(shù)據(jù)采集軟件,實(shí)現(xiàn)一臺(tái)筆記本電腦可同時(shí)采集八個(gè)串口通道數(shù)據(jù);以太網(wǎng)數(shù)據(jù)采集利用網(wǎng)絡(luò)實(shí)時(shí)嗅探技術(shù),可通過帶鏡像口的網(wǎng)絡(luò)交換機(jī)進(jìn)行實(shí)時(shí)監(jiān)聽與數(shù)據(jù)解析;視頻采集和串口報(bào)文錄取分別通過多臺(tái)工控機(jī)和筆記本電腦完成,存在一定的時(shí)間漂移,通過采用網(wǎng)絡(luò)同步授時(shí)技術(shù),對(duì)工控機(jī)和筆記本電腦進(jìn)行授時(shí),由數(shù)據(jù)錄取軟件對(duì)錄取的視頻和報(bào)文進(jìn)行疊加時(shí)戳,有效解決同步時(shí)戳疊加功能。
利用現(xiàn)有成熟數(shù)據(jù)錄取技術(shù),在系統(tǒng)設(shè)計(jì)方面提高了集成度,完善了試驗(yàn)數(shù)據(jù)采集手段,為武器系統(tǒng)的主要功能、性能指標(biāo)的試驗(yàn)分析評(píng)定提供數(shù)據(jù)支撐,提高了試驗(yàn)結(jié)果分析評(píng)定的速度和準(zhǔn)確度,有效地縮短試驗(yàn)周期,為海軍新裝備加快形成戰(zhàn)斗力提供保證。該數(shù)據(jù)錄取系統(tǒng)也可服務(wù)于部隊(duì)日常訓(xùn)練中的數(shù)據(jù)采集,為訓(xùn)練效果評(píng)估、事后案例分析等提供數(shù)據(jù)支撐。
[1]陳松輝,邱宏理.基于AHP和模糊綜合評(píng)價(jià)法的登陸作戰(zhàn)效能分析[J].艦船電子工程,2013,224(2):91-93.
[2]董曉明,程嵐,張劍,等.元數(shù)據(jù)管理在作戰(zhàn)系統(tǒng)數(shù)據(jù)集成設(shè)計(jì)中的應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2010,38(7):62-65.
[3]李建軍,葉林.應(yīng)用MOXA卡串行通信函數(shù)實(shí)現(xiàn)多機(jī)通信的方法[J].儀表技術(shù)與傳感器,2002,21(12):32-34.
[4]張玉芝.指揮自動(dòng)化原理[D].大連:海軍大連艦艇學(xué)院,2009:251-275.
[5]姚璟,董曉明,秦克.作戰(zhàn)系統(tǒng)接口協(xié)議輔助設(shè)計(jì)軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2012,40(1):140-142.
[6]劉仁杰,姚星周.Windows環(huán)境下多線程多串口通訊的實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2011,24(5):32-33.
[7]楊書凱,惠力,等.基于以太網(wǎng)的平臺(tái)綜合觀測系統(tǒng)軟件設(shè)計(jì)[J].山東科學(xué),2012,25(6):83-85.
[8]周忠寶,董豆豆,周經(jīng)倫.貝葉斯網(wǎng)絡(luò)在可靠性分析中的應(yīng)用[J].系統(tǒng)工程理論與實(shí)踐,2006,26(6):95-100.
[9]沈輝,張龍.基于WinPcap的網(wǎng)絡(luò)數(shù)據(jù)監(jiān)測及分析[J].計(jì)算機(jī)科學(xué),2012,39(10):15-18.
[10]王黎明,鄭健,等.基于多核并行計(jì)算的艦艇通用視頻錄取系統(tǒng)[J].電子設(shè)計(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日
鄭健,男,高級(jí)工程師,研究方向:指控系統(tǒng)及其數(shù)據(jù)采集。張福生,男,碩士,研究方向:作戰(zhàn)系統(tǒng)與數(shù)據(jù)采集工程。胡科強(qiáng),男,碩士,研究方向:水下靶標(biāo)控制技術(shù)。周濤,男,高級(jí)工程師,研究方向:反潛武器系統(tǒng)。
TB56DOI:10.3969/j.issn1672-9730.2014.05.025