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