胡生國 朱 艷
(中船重工第七一〇研究所 宜昌 443003)
在水雷目標(biāo)探測(cè)系統(tǒng)研制的特定階段,需要進(jìn)行長時(shí)間或特定工況下的考核測(cè)試,基于特定的原因,有些考核可以在海上以實(shí)船方式進(jìn)行,有些卻不能,只能在實(shí)驗(yàn)室或以特定的儀器設(shè)備進(jìn)行考核驗(yàn)證。為確保目標(biāo)探測(cè)系統(tǒng)能經(jīng)受嚴(yán)酷的考核試驗(yàn),在實(shí)驗(yàn)室條件下必須預(yù)先對(duì)目標(biāo)探測(cè)系統(tǒng)進(jìn)行長時(shí)間、惡劣工況條件下的仿真試驗(yàn)考核。為提高仿真置信度,在研制的后期一般均是采用實(shí)航試驗(yàn)數(shù)據(jù)進(jìn)行考核驗(yàn)證。受限于數(shù)據(jù)采集系統(tǒng)存儲(chǔ)容量的限制,長時(shí)間特定工況下的連續(xù)噪聲信號(hào)都是以一個(gè)個(gè)數(shù)據(jù)文件存在,在半實(shí)物仿真過程中,在將數(shù)據(jù)文件中的信號(hào)還原成實(shí)航條件下的信號(hào)時(shí),將會(huì)出現(xiàn)輸出信號(hào)是一段一段的,與實(shí)航條件下的狀態(tài)不一致,導(dǎo)致仿真置信度大幅下降,失去考核作用。如何將多個(gè)數(shù)據(jù)文件以連續(xù)回放方式將信號(hào)還原出來,成為特定工況如臺(tái)風(fēng)條件下對(duì)系統(tǒng)進(jìn)行考核的必然要求。本文采用上下位機(jī)方式,采用VxWorks實(shí)時(shí)操作系統(tǒng),輔之以特定的軟件控制流程,實(shí)現(xiàn)了多個(gè)數(shù)據(jù)文件連續(xù)回放的功能,回放的數(shù)據(jù)文件取決硬盤所能存儲(chǔ)的最大容量,真正實(shí)現(xiàn)了長航程的考核,在半實(shí)物仿真試驗(yàn)中獲得了成功的應(yīng)用。
在實(shí)航試驗(yàn)過程中,物理場(chǎng)數(shù)據(jù)采集系統(tǒng)將采集到的艦船噪聲數(shù)據(jù)以定長的具有特定格式的數(shù)據(jù)文件存放,數(shù)據(jù)文件包含文件頭,包頭,幀頭等,不同的文件名以時(shí)間段進(jìn)行區(qū)分,相鄰的文件名在時(shí)間上是相互銜接的,如某一個(gè)文件名為11.12.52.30.dat,數(shù)據(jù)時(shí)長為10min,則下一個(gè)文件名為.11.13.02.30.dat。在半實(shí)物仿真過程中,為了復(fù)現(xiàn)實(shí)航試驗(yàn)狀態(tài),要求數(shù)據(jù)文件以時(shí)間為序連續(xù)回放。為實(shí)現(xiàn)這一功能,采用上下位機(jī)的方式,上位機(jī)運(yùn)行Windows系統(tǒng),實(shí)現(xiàn)人機(jī)交互功能,下位機(jī)運(yùn)行VxWorks實(shí)時(shí)操作系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)的讀取及連續(xù)回放功能。首先將所有的待回放的數(shù)據(jù)文件全部拷入下位機(jī)的硬盤(在數(shù)據(jù)文件存放的過程中,文件不一定是按時(shí)間順序進(jìn)行存放的),在上位機(jī)上運(yùn)行人機(jī)交互軟件,將下位機(jī)所有的數(shù)據(jù)文件名提取并按時(shí)間順序排序。仿真時(shí)首先通過人機(jī)交互軟件選擇待回放的第一個(gè)數(shù)據(jù)文件,通過網(wǎng)絡(luò)方式傳給下位的測(cè)控軟件,下位機(jī)的測(cè)控軟件在硬盤上找到對(duì)應(yīng)的文件名,打開按幀方式讀取數(shù)據(jù)并進(jìn)行相應(yīng)的操作,當(dāng)數(shù)據(jù)文件讀到數(shù)據(jù)末尾時(shí),測(cè)控軟件向上位機(jī)發(fā)送數(shù)據(jù)請(qǐng)求,上位機(jī)的人機(jī)交互軟件取下一個(gè)文件名并傳送給下位機(jī),完成下一個(gè)文件的讀取準(zhǔn)備。為確保兩個(gè)數(shù)據(jù)文件之間的無縫銜接,應(yīng)充分利用硬件設(shè)備板卡如DA板卡上的動(dòng)態(tài)緩存,通過軟件流程控制,使動(dòng)態(tài)緩存中的數(shù)據(jù)用完之前及時(shí)將新文件中的數(shù)據(jù)導(dǎo)入,保證兩個(gè)數(shù)據(jù)文件之間的無縫銜接,實(shí)現(xiàn)數(shù)據(jù)連續(xù)輸出。
采用上下位機(jī)結(jié)合高性能DA板卡實(shí)現(xiàn)數(shù)據(jù)文件連續(xù)回放過程,系統(tǒng)組成結(jié)構(gòu)圖如圖1所示[6]。
圖1 仿真系統(tǒng)組成框圖
系統(tǒng)由三部分組成:1)上位監(jiān)控計(jì)算機(jī),運(yùn)行Windows操作系統(tǒng),安裝人機(jī)交互軟件開發(fā)工具Visual Studio及VxWorks前端編譯工具Tornado,完成仿真人機(jī)交互及仿真過程監(jiān)控功能,與仿真計(jì)算機(jī)之間以網(wǎng)絡(luò)連接,采用UDP/IP方式實(shí)現(xiàn)數(shù)據(jù)通訊;2)下位仿真計(jì)算機(jī),CPCI總線架構(gòu),運(yùn)行VxWorks實(shí)時(shí)操作系統(tǒng)及實(shí)時(shí)測(cè)控軟件,硬盤中存放實(shí)航試驗(yàn)數(shù)據(jù),完成數(shù)據(jù)解析,網(wǎng)絡(luò)通訊,數(shù)據(jù)傳輸?shù)裙δ?,與DA板卡之間通過CPCI總線以DMA方式實(shí)現(xiàn)數(shù)據(jù)傳輸;3)多通道同步信號(hào)輸出DA板卡,接收仿真計(jì)算機(jī)傳輸過來的數(shù)字信號(hào),按照設(shè)定的通道及數(shù)據(jù)采樣率將數(shù)字信號(hào)轉(zhuǎn)變?yōu)槟M信號(hào)輸出。
下位機(jī)實(shí)時(shí)測(cè)控軟件采用多任務(wù)方式,其主要的任務(wù)如表1所示。
正常工作時(shí),只運(yùn)行任務(wù)3、任務(wù)4及任務(wù)5。軟件流程的核心是圍繞多通道同步信號(hào)輸出DA板卡來進(jìn)行流程劃分,關(guān)鍵點(diǎn)在于DA板卡上的動(dòng)態(tài)緩存的運(yùn)用。
連續(xù)輸出技術(shù)主要涉及二個(gè)方面,一個(gè)是所采用板卡的數(shù)據(jù)存儲(chǔ)格式,另一個(gè)是對(duì)板卡自身所帶動(dòng)態(tài)緩存的應(yīng)用。數(shù)據(jù)存儲(chǔ)格式?jīng)Q定多通道信號(hào)是否能正確輸出,動(dòng)態(tài)緩存則決定信號(hào)是否能連續(xù)不中斷輸出。
表1 實(shí)時(shí)測(cè)控軟件任務(wù)
多通道數(shù)據(jù)的正確輸出取決于數(shù)據(jù)存儲(chǔ)格式,對(duì)不同的硬件板卡,其數(shù)據(jù)存儲(chǔ)格式不盡相同,首先數(shù)據(jù)存儲(chǔ)格式要符合板卡本身數(shù)據(jù)采樣的要求,對(duì)本研究已選定的 PMC-16AO-12-20221板卡而言,其數(shù)據(jù)的存放格式如表2所示。
其數(shù)據(jù)是按激活的通道數(shù)順序存放的,每一個(gè)通道的同一序號(hào)的數(shù)組成一幀,每一個(gè)采樣周期的觸發(fā)脈沖將一幀數(shù)據(jù)取出,按相應(yīng)的順序發(fā)送到不同通道對(duì)應(yīng)的DAC,當(dāng)最后一個(gè)通道的數(shù)據(jù)到達(dá)時(shí),所有通道的DAC同時(shí)觸發(fā),將數(shù)據(jù)發(fā)送出去。
表2 動(dòng)態(tài)緩存數(shù)據(jù)存放示意表(激活3、6、8通道)
同步輸出板卡動(dòng)態(tài)緩存的工作方式分為兩種,一種為閉環(huán)方式,一種為開環(huán)方式[2],其工作示意圖如圖5、圖6。
圖2 閉環(huán)緩存工作示意圖
圖3 開環(huán)緩存工作示意圖
如圖2所示,閉環(huán)緩存工作時(shí),預(yù)先放入緩存的數(shù)據(jù)在采樣時(shí)鐘的作用下,其數(shù)據(jù)流有二個(gè)方向,其一為采樣時(shí)鐘將數(shù)據(jù)幀直接轉(zhuǎn)向DAC,此為模擬信號(hào)輸出通道,其二為轉(zhuǎn)向DAC的數(shù)據(jù)同時(shí)被導(dǎo)向先前放入緩存的數(shù)據(jù)的末尾,變成了一個(gè)環(huán)形通道,動(dòng)態(tài)緩存中的數(shù)據(jù)既沒增多,也沒減少。
如圖3所示,開環(huán)動(dòng)態(tài)緩存工作時(shí),當(dāng)從總線來的數(shù)據(jù)放入動(dòng)態(tài)緩存后,一旦數(shù)據(jù)的采樣時(shí)鐘啟動(dòng),其數(shù)據(jù)只有一個(gè)流向,即數(shù)據(jù)被采樣時(shí)鐘導(dǎo)向了DAC,緩存中的數(shù)據(jù)同步向前流動(dòng),緩存中的數(shù)據(jù)同步減少。
從圖2、圖3可以看出,為了防止數(shù)據(jù)輸出中途出現(xiàn)斷點(diǎn),每一幀的數(shù)據(jù)首尾必須相接,在技術(shù)上,當(dāng)一幀數(shù)據(jù)放入動(dòng)態(tài)緩存時(shí),其尾部自動(dòng)出現(xiàn)一個(gè)EOF標(biāo)識(shí),每一幀數(shù)據(jù)放入時(shí),其頭部首先尋找EOF標(biāo)識(shí),然后在數(shù)據(jù)末尾按順序排放,既防止數(shù)據(jù)出現(xiàn)斷點(diǎn),又可防止數(shù)據(jù)格式混亂。其工作示意圖見圖4。
圖4 數(shù)據(jù)幀銜接示意圖
多通道同步信號(hào)輸出DA板提供了七種中斷源,如表3所示。
表3 DA板中斷源
如表3所示,與動(dòng)態(tài)緩存有關(guān)的中斷有三種,分別為動(dòng)態(tài)緩空中斷,動(dòng)態(tài)緩存1/4滿中斷及動(dòng)態(tài)緩存3/4滿中斷,顯然在仿真中選擇動(dòng)態(tài)輸出緩存空是不可取的,因?yàn)楸厝粫?huì)出現(xiàn)數(shù)據(jù)輸出的斷點(diǎn)。在另兩種中斷方式中選擇何種中斷方式與仿真系統(tǒng)的規(guī)劃有關(guān),與之有關(guān)的主要有仿真幀數(shù)據(jù)量,采樣時(shí)鐘頻率,動(dòng)態(tài)緩存的大小及CPU的計(jì)算速度,幾種因素相互制約,需綜合考慮。首先一旦DA選定,其動(dòng)態(tài)緩存的總量就定下了,可以按1/2n來進(jìn)行動(dòng)態(tài)緩存劃分,本研究中采用全動(dòng)態(tài)緩存即128k,當(dāng)采用1/4滿中斷方式時(shí),即動(dòng)態(tài)緩存中的數(shù)據(jù)少于32k時(shí),DA板會(huì)發(fā)出中斷請(qǐng)求,若采用3/4滿中斷方式時(shí),動(dòng)態(tài)緩存中的數(shù)據(jù)少于96k時(shí)會(huì)發(fā)出中斷請(qǐng)求。采用這兩種方式時(shí)分別有限制條件,當(dāng)采用1/4方式時(shí),要確保CPU在32k的數(shù)據(jù)被采樣完之前計(jì)算完新的一幀數(shù)據(jù)并將其導(dǎo)入動(dòng)態(tài)緩存。而采用3/4方式,要確保CPU計(jì)算出的一幀數(shù)據(jù)通過DMA導(dǎo)入動(dòng)態(tài)緩存時(shí),數(shù)據(jù)不溢出[1]。
當(dāng)一個(gè)噪聲數(shù)據(jù)放完時(shí),為了防止動(dòng)態(tài)緩存中的數(shù)據(jù)出現(xiàn)空狀態(tài),必須在緩存中的數(shù)據(jù)放完之前放入下一個(gè)文件中的數(shù)據(jù)。為了實(shí)現(xiàn)這一功能必須充分利用動(dòng)態(tài)緩存的1/4中斷標(biāo)識(shí)及1/4緩存容量,動(dòng)態(tài)緩存示意圖如下:
圖5 動(dòng)態(tài)緩存數(shù)據(jù)流向示意圖
若動(dòng)態(tài)緩存容量為128k,則1/4容量為32k,設(shè)采樣時(shí)鐘為50kHz,通道數(shù)為6,則從1/4緩存中斷到數(shù)據(jù)放完所需時(shí)間為
在109ms內(nèi)需要完成:1)關(guān)閉當(dāng)前文件,向上位機(jī)請(qǐng)求下一個(gè)文件名;2)上位機(jī)響應(yīng)請(qǐng)求,發(fā)送下一個(gè)文件名到下位機(jī);3)下位機(jī)接收了文件名,并在硬盤中查找對(duì)應(yīng)文件;4)打開文件,讀出一幀數(shù)據(jù)并解析;5)將數(shù)據(jù)放入動(dòng)態(tài)緩存。由于下位機(jī)采用VxWorks實(shí)時(shí)操作系統(tǒng),主要的耗時(shí)在第2)步,經(jīng)實(shí)測(cè),采用千兆網(wǎng)主流配置的PC機(jī)其耗時(shí)約為20ms~50ms,完全能夠滿足要求。
圖6 模擬信號(hào)輸出示意圖
采用某實(shí)航試驗(yàn)數(shù)據(jù)進(jìn)行測(cè)試,每個(gè)數(shù)據(jù)文件10個(gè)通道,約360M,80個(gè)文件,經(jīng)過下位機(jī)實(shí)時(shí)回放軟件的處理,多個(gè)數(shù)據(jù)文件能夠順暢連續(xù)回放,兩個(gè)數(shù)據(jù)文件之間的信號(hào)無縫鏈接,經(jīng)示波器觀察無斷點(diǎn)存在,回放的數(shù)據(jù)文件量取決于下位機(jī)硬盤所能存儲(chǔ)的數(shù)據(jù)量?;胤胚^程中反饋回上位機(jī)的數(shù)據(jù)圖像如圖6所示。
采用VxWorks實(shí)時(shí)操作系統(tǒng)結(jié)合高性能多通道同步輸出DA板卡,輔之以上下位機(jī)通訊機(jī)制及信號(hào)同步輸出軟件控制技術(shù),依據(jù)CPCI控制總線計(jì)算機(jī)的強(qiáng)大計(jì)算性能,通過仔細(xì)劃分仿真幀時(shí)間及仿真幀數(shù)據(jù)量大小,較好地解決了仿真試驗(yàn)所要求的多噪聲數(shù)據(jù)文件回放無縫銜接及巨量數(shù)據(jù)文件連續(xù)自動(dòng)回放問題,使該技術(shù)在產(chǎn)品研制過程中得到了充分的應(yīng)用。
[1]PCI 9080Data sheet[M].version 0.93February 28,1997:40-58.
[2]PMC-16AO-12USER'S MANUAL[M].Rev:103000 30October 2000standard corporation.
[3]葉平賢,龔沈光.艦船物理場(chǎng)[M].北京:兵器工業(yè)出版社,1992.
[4]蔡鹍,陳煥杰,周升陽,等.水雷引信技術(shù)[M].北京:國防工業(yè)出版社,2012.
[5]張新宇,陳彬,等.HLA數(shù)據(jù)回放及其可通用性問題研究[J].國防科技大學(xué)學(xué)報(bào),2007,29(5):104-110.
[6]胡生國,陳剛.基于VxWorks的數(shù)據(jù)采集及遠(yuǎn)程實(shí)時(shí)數(shù)據(jù)回放系統(tǒng)[C]//宜昌:仿真學(xué)組2007年度論文交流,2007:165-171.
[7]劉靈,吳曼青,洪一,等.基于PCI總線的多板數(shù)據(jù)回放系統(tǒng)[J].雷達(dá)科學(xué)與技術(shù),2006,4(5):317-322.
[8]李國梁,張歆,袁建平.基于PCI總線的數(shù)據(jù)采集與回放處理系統(tǒng)[J].研發(fā)與開發(fā),2006(4):49-51.
[9]李小青,劉克剛,王皓.高精度數(shù)據(jù)采集與回放系的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù),2004(7):11-13.
[10]郭東文,金勇,樊秀云.基于CPCI總線的數(shù)據(jù)回放系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2008,28:128-130.