武建亮,姜照昶,王文彥,金 璇
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.中國人民解放軍94106部隊,陜西 西安 710614;3.中國人民解放軍63636部隊,甘肅 蘭州 732750)
航天測控動態(tài)數(shù)傳數(shù)據(jù)模擬器的實現(xiàn)
武建亮1,姜照昶1,王文彥2,金 璇3
(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;2.中國人民解放軍94106部隊,陜西 西安 710614;3.中國人民解放軍63636部隊,甘肅 蘭州 732750)
在載人航天測控任務(wù)準(zhǔn)備階段,測控系統(tǒng)技術(shù)狀態(tài)確認是非常重要的準(zhǔn)備工作。航天測控動態(tài)數(shù)傳模擬器利用現(xiàn)有系統(tǒng)配備的圖像模擬器和測控基帶終端設(shè)備,輔以話音輸入設(shè)備和數(shù)據(jù)模擬軟件,可以實現(xiàn)飛船圖像和話音數(shù)據(jù)實時模擬,設(shè)備采用中斷和DMA傳輸技術(shù)在提高數(shù)據(jù)傳輸速率的同時降低了系統(tǒng)開銷。該模擬器已經(jīng)應(yīng)用在多套載人航天地面測控系統(tǒng)中,為載人航天地面系統(tǒng)技術(shù)狀態(tài)確認節(jié)約了人力和時間成本。
USB統(tǒng)一測控系統(tǒng);實時傳輸協(xié)議;中斷服務(wù)例程;延遲過程調(diào)用
Abstract At the mission preparation period of aerospace measurement and control,TT&C system’s technical status confirmation is very important.Dynamic data transfers simulation uses the existing system equipped with the image simulator and the measurement and control BBE terminal,with voice input device and data simulation software,realizes real-time simulation of the vehicle image and voice data.The device also uses interrupt and DMA transmission technology to improve the data transmission rate and reduce the cost of the system.The function and performance of the equipment are verified by engineering application.
Key words USB Unified TTC&C System;RTP;ISR;DPC
近年來,隨著數(shù)傳技術(shù)應(yīng)用領(lǐng)域的不斷拓展,高速數(shù)傳技術(shù)已經(jīng)應(yīng)用于載人航天器中,在“神舟”載人飛船任務(wù)中,利用數(shù)傳技術(shù)實時回傳了圖像、話音和其他數(shù)據(jù)。在載人航天任務(wù)準(zhǔn)備階段,地面測控系統(tǒng)設(shè)備技術(shù)狀態(tài)正確性驗證是保證任務(wù)順利執(zhí)行的重要環(huán)節(jié),目前主要依靠飛行器與測控系統(tǒng)的對接試驗來實現(xiàn)。隨著發(fā)射任務(wù)的逐年增加,對接試驗成本也大幅上升,所以迫切需要開發(fā)用于進行測控系統(tǒng)技術(shù)狀態(tài)確認的驗證設(shè)備[1]。
圖像話音動態(tài)模擬器將圖像話音數(shù)據(jù)按照任務(wù)狀態(tài)格式進行組幀,利用調(diào)制板卡調(diào)制輸出與實際任務(wù)完全一致的數(shù)傳信號,該模擬器利用數(shù)據(jù)配置文件進行任務(wù)格式描述,可以兼容多種飛行器,特別適合地面測控系統(tǒng)設(shè)備功能和性能檢查和驗證。
目前測控設(shè)備配備數(shù)傳模擬器只能模擬固定數(shù)據(jù),無法進行實時圖像和話音數(shù)據(jù)模擬。
載人航天動態(tài)圖像話音模擬器可以實現(xiàn)載人航天器實時圖像和話音模擬,充分驗證數(shù)傳接收機、RTP數(shù)據(jù)傳輸[2-3]、圖像恢復(fù)設(shè)備的功能和性能。
測控系統(tǒng)數(shù)傳設(shè)備信號流程圖如圖 1所示。數(shù)傳模擬器實時接收圖像模擬設(shè)備輸入的圖像模擬數(shù)據(jù)和話音輸入設(shè)備輸入的音頻數(shù)據(jù)按照既定格式產(chǎn)生數(shù)傳數(shù)據(jù)模擬信號,該信號可由系統(tǒng)中頻矩陣環(huán)回送至數(shù)傳接收設(shè)備,數(shù)傳接收機解調(diào)并將數(shù)傳數(shù)據(jù)送至圖像監(jiān)視設(shè)備和話音輸出設(shè)備。在該系統(tǒng)中數(shù)傳接收設(shè)備可以接收飛船下發(fā)的數(shù)傳任務(wù)信號,也可以接收模擬設(shè)備發(fā)出的數(shù)傳模擬信號,二者的工作狀態(tài)和參數(shù)完全一致。
圖1 測控系統(tǒng)數(shù)傳設(shè)備信號流程
模擬器設(shè)備組成如圖2所示。模擬器由圖像模擬器、話音輸入設(shè)備、數(shù)據(jù)模擬軟件、設(shè)備驅(qū)動程序、模擬器調(diào)制板卡和CPCI工控機組成。其中圖像模擬器、模擬器調(diào)制板卡和工控機均為測控系統(tǒng)標(biāo)配設(shè)備,無需重新開發(fā);話音輸入設(shè)備可利用計算機音頻輸入端口接入計算機;設(shè)備驅(qū)動程序需進行適應(yīng)性改造,數(shù)據(jù)模擬軟件需重新開發(fā)。
圖2 模擬器設(shè)備組成
圖像模擬器接收攝像頭輸入的實時視頻數(shù)據(jù)經(jīng)壓縮編碼后生成網(wǎng)絡(luò)格式圖像數(shù)據(jù)[4]送數(shù)據(jù)模擬軟件;話音輸入設(shè)備產(chǎn)生的音頻數(shù)據(jù)通過工控機音頻輸入口送給數(shù)據(jù)生成軟件;數(shù)據(jù)模擬軟件負責(zé)產(chǎn)生數(shù)傳模擬數(shù)據(jù),將接收到的圖像數(shù)據(jù)和話音數(shù)據(jù)按照既定數(shù)傳格式填入模擬數(shù)據(jù)幀中,數(shù)據(jù)幀通過設(shè)備驅(qū)動程序送模擬器調(diào)制板卡進行數(shù)據(jù)調(diào)制并輸出中頻信號。模擬器設(shè)備接口如表1所示。
表1 模擬器設(shè)備接口
1.1 圖像模擬器
圖像模擬器采用測站標(biāo)配的模擬設(shè)備,該設(shè)備可以接收攝像設(shè)備輸入的視頻信號經(jīng)過編碼、壓縮后采用UDP+RTP協(xié)議送出圖像數(shù)據(jù)包。
1.2 話音輸入設(shè)備
利用模擬計算機的音頻輸入口將話筒的聲音信號轉(zhuǎn)為音頻數(shù)字信號[5],數(shù)據(jù)模擬軟件可以通過操作系統(tǒng)API接口函數(shù)獲取該聲音數(shù)據(jù)。
1.3 設(shè)備驅(qū)動程序
設(shè)備驅(qū)動程序是計算機操作系統(tǒng)內(nèi)核層的重要組成部分,對于用戶自己開發(fā)的硬件設(shè)備,必須開發(fā)相應(yīng)的設(shè)備驅(qū)動程序以保證硬件設(shè)備的正常運行。設(shè)備驅(qū)動程序是模擬調(diào)制板卡與數(shù)據(jù)模擬軟件之間通信的橋梁。由于數(shù)傳速率較高,采用DMA傳輸方式可以大大減少CPU對數(shù)據(jù)傳輸?shù)母深A(yù)次數(shù)。
1.4 數(shù)據(jù)模擬軟件
數(shù)據(jù)模擬軟件是動態(tài)模擬器的控制核心,按照既定數(shù)傳幀格式產(chǎn)生模擬數(shù)據(jù),將圖像模擬器送來的圖像數(shù)據(jù)和話音輸入設(shè)備送來的話音數(shù)據(jù)按照格式要求填入數(shù)據(jù)幀內(nèi)。組幀完畢后通過驅(qū)動程序API接口函數(shù)[6-7]將數(shù)據(jù)寫入模擬器調(diào)制板卡調(diào)制輸出。
1.5 模擬器調(diào)制板卡
模擬器調(diào)制板卡負責(zé)將數(shù)據(jù)模擬軟件送來的數(shù)據(jù)完成碼型變換、數(shù)據(jù)調(diào)制后輸出中頻模擬信號。
圖像模擬器、模擬器調(diào)制板卡、話音輸入設(shè)備和工控機均為已有或成熟產(chǎn)品,本節(jié)不再描述,重點介紹軟硬件數(shù)據(jù)交互方式、設(shè)備驅(qū)動程序[8-9]和數(shù)據(jù)模擬軟件的開發(fā)過程。
2.1 數(shù)據(jù)交互方式
軟硬件數(shù)據(jù)交互方式采用中斷+DMA傳輸?shù)耐ㄐ欧绞?。?shù)據(jù)交互過程如下:
① 調(diào)制器板卡設(shè)計一個FIFO,該FIFO用于接收數(shù)據(jù)模擬軟件發(fā)送的模擬數(shù)據(jù);
② 調(diào)制器板卡定義一個FIFO容量寄存器,該寄存器用于表示當(dāng)前FIFO的剩余空間;
③ 硬件板卡實時判斷FIFO的空滿狀態(tài),當(dāng)FIFO內(nèi)的數(shù)據(jù)為半空時,向PCI端產(chǎn)生一個中斷信號;
④ 數(shù)據(jù)模擬軟件收到該中斷信號后,讀取FIFO容量寄存器即可獲取可向FIFO寫入的數(shù)據(jù)長度,然后立即向FIFO內(nèi)寫入數(shù)據(jù);
⑤ 只要保持FIFO內(nèi)的數(shù)據(jù)不空,即可保證調(diào)制板卡輸出的數(shù)據(jù)連續(xù)。
軟硬件數(shù)據(jù)交互方式示意圖如圖3所示。
圖3 軟硬件數(shù)據(jù)交互方式示意
2.2 設(shè)備驅(qū)動程序
2.2.1 ISR例程
為了完成中斷處理、DMA傳輸[10],設(shè)備驅(qū)動程序需要增加ISR例程和DPC例程[11]。其中ISR例程用于實現(xiàn)硬件中斷響應(yīng)及處理[12],DPC例程實現(xiàn)DMA數(shù)據(jù)傳輸[13]。
ISR執(zhí)行在提升的IRQL[14]上,凍結(jié)了其CPU上所有低于或等于該IRQL的其他活動。為了提高系統(tǒng)性能,ISR應(yīng)該盡可能快地執(zhí)行。基本上,只做服務(wù)硬件所需的最小量的工作[15](如清除中斷),然后立即返回。如果有額外工作(例如完成一個IRP),應(yīng)該由DPC(延遲過程調(diào)用)例程來完成。
調(diào)制器板卡共可以產(chǎn)生2種類型的中斷:數(shù)據(jù)中斷和DMA結(jié)束中斷。因此首先讀取PCI的中斷控制/狀態(tài)寄存器,根據(jù)標(biāo)志位判斷調(diào)制器板卡是否產(chǎn)生了中斷、產(chǎn)生了哪種類型的中斷。如果沒有產(chǎn)生中斷,則立即返回FALSE即可。如果產(chǎn)生了數(shù)據(jù)中斷,則申請一個DPC用于后續(xù)啟動DMA傳輸。如果產(chǎn)生了DMA結(jié)束中斷,也申請一個DPC用于后續(xù)完成該IRP。
∥中斷處理函數(shù)
BOOLEAN WDFBBE_EvtInterruptIsr(
INWDFINTERRUPT Interrupt,
IN ULONG MessageID)
{
<判斷該中斷是否為DMA傳輸結(jié)束中斷>
{
<確認中斷>
<清除中斷>
<申請調(diào)用DPC處理并結(jié)束中斷>
<返回TRUE表示是期望的中斷>
}
<判斷該中斷是否為數(shù)據(jù)讀中斷>
{
<確認中斷>
<清除中斷>
<申請調(diào)用DPC處理并結(jié)束中斷>
<返回TRUE表示是期望的中斷>
}
<返回FALSE,表示不是期望的中斷>
}
2.2.2 DPC例程
基帶板卡可以產(chǎn)生2種類型的中斷[16],所以在DPC例程中也有2種處理。如果是讀數(shù)據(jù)中斷申請的DPC,則計算本次可以讀取數(shù)據(jù)的長度,然后啟動DMA傳輸。如果是寫數(shù)據(jù)中斷申請的DPC,則計算本次可以寫入數(shù)據(jù)的長度,如果寫RAM空間滿足寫入要求則啟動DMA傳輸,否則繼續(xù)掛起該IRP。如果是為DMA結(jié)束中斷申請的DPC,則保存已讀取數(shù)據(jù)的最終地址后,即可完成該IRP。驅(qū)動程序完成IRP時,需要告知應(yīng)用程序此IRP完成情況,如實際傳輸?shù)拈L度及傳輸結(jié)果等,以便應(yīng)用程序能正確對數(shù)據(jù)進行分類處理。
VOID
WDFBBE_EvtInterruptDpc(
IN WDFINTERRUPT Interrupt,
IN WDFOBJECT Device)
{
<判斷是否為DMA傳輸結(jié)束請求的DPC>
{
<允許中斷,準(zhǔn)備處理下一個中斷>
<返回>
}
<判斷當(dāng)前IRP是否為寫請求>
{
<完成本地寫請求,返回實際傳輸長度>
<允許中斷,準(zhǔn)備處理下一個中斷>
<返回>
}
}
2.3 數(shù)據(jù)模擬軟件設(shè)計
數(shù)據(jù)模擬軟件實現(xiàn)圖像、話音模擬數(shù)據(jù)接收、組幀和控制模擬終端調(diào)制發(fā)送。為了適應(yīng)多種飛行器圖像和音頻格式,數(shù)據(jù)模擬軟件采用配置方式進行數(shù)據(jù)組幀。
數(shù)據(jù)模擬軟件的工作過程如下:① 建立網(wǎng)絡(luò)數(shù)據(jù)接收線程,接收圖像模擬器發(fā)送的RTP格式圖像數(shù)據(jù)包[17-18];② 建立話音數(shù)據(jù)接收線程,接收話音輸入設(shè)備輸入到音頻數(shù)據(jù);③ 讀取數(shù)據(jù)幀格式配置文件,按照配置文件格式要求將圖像數(shù)據(jù)和音頻數(shù)據(jù)填入指定的數(shù)據(jù)位置,除圖像和音頻外的其他數(shù)據(jù)幀位置,可以按照需要填入固定數(shù)或隨機數(shù)等;④ 建立中斷信號讀取線程[19],實時等待中斷信號,當(dāng)中斷信號到來時,先獲取FIFO剩余容量大小,然后從已產(chǎn)生的數(shù)傳數(shù)據(jù)中讀取對應(yīng)長度的模擬數(shù)據(jù)經(jīng)由驅(qū)動程序API接口函數(shù)向調(diào)制器板卡發(fā)送[20]。
圖4 數(shù)據(jù)模擬軟件工作流程
3 模擬器的工程應(yīng)用
數(shù)傳模擬器工程應(yīng)用方式如圖5所示。地面測控站利用數(shù)傳動態(tài)模擬設(shè)備輔以測控系統(tǒng)標(biāo)校設(shè)備可以按照任務(wù)場景模擬飛船/空間站任務(wù)狀態(tài),進行設(shè)備功能及性能檢查。
圖5 模擬器工程應(yīng)用示意
目前該設(shè)備已經(jīng)在多套載人航天地面測控系統(tǒng)中得到應(yīng)用。在測控任務(wù)準(zhǔn)備階段,利用該設(shè)備模擬飛船/空間站任務(wù)場景,對地面系統(tǒng)中的信道設(shè)備、數(shù)字基帶設(shè)備和測控鏈路狀態(tài)等進行綜合檢測,為載人航天測控任務(wù)提供了重要保障。
介紹了數(shù)傳數(shù)據(jù)動態(tài)模擬器的實現(xiàn)方案,闡述了話音和圖像數(shù)據(jù)模擬的實現(xiàn)途徑,采用數(shù)據(jù)中斷配合DMA傳輸?shù)姆桨附鉀Q了計算機性能瓶頸問題,使用配置文件實現(xiàn)圖像及音頻數(shù)據(jù)幀動態(tài)配置,可以適應(yīng)多種飛行器數(shù)據(jù)模擬。在實際工程應(yīng)用中,數(shù)傳數(shù)據(jù)模擬器能夠滿足載人航天測控地面測控系統(tǒng)功能及性能檢查的需求,為載人航天任務(wù)準(zhǔn)備節(jié)約了人力和時間成本。未來載人航天器會搭載高清圖像和高質(zhì)量話音設(shè)備,在模擬高碼率圖像和話音方面還需要做進一步工作。
[1] 周智敏,李企舜.現(xiàn)代航天測控原理[M].長沙:國防科技大學(xué)出版社,1998.
[2] 靳海力.一種增強型可靠UDP的設(shè)計及應(yīng)用[D].合肥:中國科學(xué)技術(shù)大學(xué),2009.
[3] 羅明宇,陶孜謹,盧錫城.RTP在網(wǎng)絡(luò)視頻傳輸中的實現(xiàn)研究[J].計算機工程,ISTICPKU,2000,26(9):65-66.[4] 李燕靈,馬瑞芳,左力.基于RTP/PTCP的實時視頻數(shù)據(jù)傳輸模型及實現(xiàn)[J].微電子學(xué)與計算機,ISTIC PKU,2005,22(8):138-140.
[5] 馬厚勇,韓寧.視頻、音頻信號處理器-多媒體DSP[J].無線電通信技術(shù),2005,31(1):27-28.
[6] 求是科技.Windows API程序設(shè)計參考大全[M].北京:人民郵電出版社,2006.
[7] 胡剛,石亞偉.PCI總線的中斷處理技術(shù)[J].計算機自動測量與控制,2001,9(6):55-56.
[8] CANT C.Windows WDM設(shè)備驅(qū)動程序開發(fā)指南[M].北京:機械工業(yè)出版社,2000.
[9] 何帥,王文基,狄衛(wèi)國.基于WDF的航天測控數(shù)字基帶板驅(qū)動程序設(shè)計[J].無線電工程,2016,46(4):5-8.
[10] ONEY W.Programming the Microsoft Windows Driver Model[M].Microsoft Press,2003.
[11] 祁佳,羅琦,于勇.Windows平臺DDK開發(fā)WDM設(shè)備驅(qū)動研究及應(yīng)用[J].微電子學(xué)與計算機,2008,25(12):154-156.
[12] 閆改,郭曉光.基于DSP的PCI總線高速DMA數(shù)據(jù)傳輸[J].無線電工程,2013,43(8):19-21.
[13] 武安河.Windows2000/XP WDM設(shè)備驅(qū)動程序開發(fā)[M].北京:電子工業(yè)出版社,2005.
[14] 馬玉英,馬義德.PCI中斷機制分析[J].青海師范大學(xué)學(xué)報,2005(2):51-53.
[15] 徐洪信,申景詩,王鳳陽.高速率數(shù)據(jù)接收存儲系統(tǒng)設(shè)計[J].航天器工程,2009,18(1):43-47.
[16] 滑偉.一種PCI總線接口的數(shù)據(jù)接收卡設(shè)計[J].無線電通信技術(shù),2013,39(4):53-55.
[17] 孫守閣,徐勇.Windows設(shè)備驅(qū)動程序技術(shù)內(nèi)幕[M].北京:清華大學(xué)出版社,2000.
[18] 冉林倉.Windows API編程[M].北京:清華大學(xué)出版社,2005.
[19] 倪麗娜,趙茂先,張秀娟.Visual C++6.0 全攻略寶典[M].北京:中國水利水電出版社,2001.
[20] 高京龍.PCI總線設(shè)備驅(qū)動程序開發(fā)[J].無線電通信技術(shù),2001,27(6):43-44.
The Implement of Dynamic Data Transfers Simulation on Aerospace TT&C System
WU Jian-liang1,JIANG Zhao-chang1,WANG Wen-yan2,JIN Xuan3
(1.The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China; 2.Unit94106,PLA,Xi’anShaanxi710614,China; 3.Unit63636,PLA,LanzhouGansu732750,China)
10.3969/j.issn.1003-3106.2017.08.05
武建亮,姜照昶,王文彥,等.航天測控動態(tài)數(shù)傳數(shù)據(jù)模擬器的實現(xiàn)[J].無線電工程,2017,47(8):18-21.[WU Jianliang,JIANG Zhaochang,WANG Wenyan,et al.The Implement of Dynamic Data Transfers Simulation on Aerospace TT&C System[J].Radio Engineering,2017,47(8):18-21.]
2017-03-14
國家高技術(shù)研究發(fā)展計劃(“863”計劃)基金資助項目(2013AA122904)。
TP311.1
A
1003-3106(2017)08-0018-04
武建亮 男,(1984—),工程師。主要研究方向:航天測控。
姜照昶 男,(1986—),工程師。主要研究方向:航天測控。