姜守達,鄧舒予,魏長安
摘 ?要: 哈爾濱工業大學自動化測試與控制研究所研發了試驗和訓練體系結構HIT?TENA平臺,用于搭建虛擬試驗系統;為了將靶場實物資源接入該系統,研制了基于PCI總線和1553B總線的協議轉換模塊。采用DSP+FPGA的硬件結構,利用FPGA實現了并行協議幀頭識別,利用DSP實現了協議轉換。測試表明,該模塊能完成協議轉換,并將延時降低到1 ms以內,解決了試驗設備接入虛擬試驗系統時轉換效率低下、延時較大等問題。
關鍵詞: 虛擬試驗系統; 1553B; 協議識別; 協議轉換
中圖分類號: TN91?34 ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2014)23?0100?04
Development of protocol conversion module for virtual test system
JIANG Shou?da, DENG Shu?yu, WEI Chang?an
(Department of Automatic Test and Control, Harbin Institute of Technology, Harbin 150001, China)
Abstract: A testing and training architecture HIT?TENA platform was developed by Automatic Test and Control Institute of Harbin Institute of Technology to establish virtual test system. In order to connect the testing resourse in the system, a protocol conversion module based on PCI bus and 1553B bus was designed. The logic of 1553B protocol and concurrent protocol identification were achieved on the basis of hardware structure with DSP + FPGA and FPGA. The DSP is used to realize the protocol conversion. The testing result shows the the module can perform the function of protocol conversion and reduce the delay to 1 ms. It solves the problem of low efficiency and long delay occurred when the test equipments join up with virtual test system.
Keywords: virtual test system; 1553B; protocol identification; protocol conversion
0 ?引 ?言
試驗與訓練使能體系結構(Test and Training Enabling Architecture,TENA)是美國國防部針對試驗和訓練領域的需求,為促進各試驗靶場、設施、實驗室和各種仿真建模活動之間的共享、重用、互操作和可組合而開發的測試訓練體系結構。TENA專門針對試驗訓練領域的特點進行開發,并針對試驗與訓練領域的特定需求進行擴展,提供了試驗和訓練所需的更多特定功能[1]。
哈工大測控所在研究和學習美軍TENA體系結構的基礎上,針對靶場試驗領域的特殊需求,結合目前國內試驗與訓練領域建設的現狀,提出一種試驗和訓練體系結構,即HIT?TENA平臺。HIT?TENA平臺通過整合各種試驗與訓練資源,能夠快速構建虛擬試驗系統,引導靶場試驗由“任務驅動型”向“能力建設型”轉變[2]。但是,國內靶場中還存在大量采用硬件協議的實物資源設備,而虛擬試驗系統采用名為HIT?TENA對象模型的專用協議進行通信,硬件協議和對象模型之間不能兼容,因此需要人工開發專用接口網關才能實現和虛擬試驗系統之間的通信。由于上位機操作系統的非實時性,實物資源通過接口網關接入試驗系統時會產生不穩定的時間延遲,同時隨著武器裝備復雜性的日漸提高,上述模式存在開發周期長、網關軟件測試難度大以及可靠性差等缺點,造成虛擬試驗系統搭建周期長、費用高和風險大等問題。
為了解決上述問題,本文創新性地提出一種在硬件設備內進行協議轉換的方案。該設備具有靶場實物資源常用硬件接口1553B總線接口及用于連接上位機的PCI接口,用戶只需提前定義對象協議對應關系并加載到模塊內即可實現HIT?TENA對象模型和硬件協議之間的快速轉換。研制虛擬試驗系統協議轉換模塊(以下簡稱協議轉換模塊),對于支持不同實物資源快速接入虛擬試驗系統參與虛擬仿真試驗,保障高性能試驗設備的實時性,將起到非常重要的作用。
1 ?總體方案設計
HIT?TENA平臺搭建的虛擬試驗系統由多臺計算機或實物資源通過以太網連接組成,每臺計算機都獨立作為一個節點加入系統。而實物資源因為接口不同且傳輸協議不兼容,不能直接接入系統,需要通過協議轉換模塊才能參與虛擬仿真試驗。
根據協議轉換模塊的功能要求,設備應當通過PCI接口連接上位機,并可通過1553B總線接口與實物資源通信。板上還應該具有處理器資源和邏輯陣列器件,用于控制數據傳輸,并完成協議轉換。經過需求分析及對多個可行方案的比較,選擇采用DSP+FPGA的硬件核心架構實現協議轉換模塊。為了節約成本,不再新開發硬件板卡,而是采用實驗室已開發的PCI?1553B通信板[3]。
PCI?1553B通信板是哈工大測控所自行開發用于組建1553B總線產品仿真和測試系統的通信模塊,它的控制器采用TI公司的高速DSP TMS320DM642。這款芯片內部集成了PCI2.2協議模塊,支持PCI主從協議的DMA數據傳輸[4]。相較于采用專用芯片或FPGA等方式實現PCI協議,這種方法開發方式簡單,成本低[5]。FPGA選用Altera公司Cyclone Ⅲ系列的EP3C55型芯片[6],并通過FPGA邏輯實現傳輸速率為1 Mb/s的1553B的接口協議模塊 [7]。在PCI?1553B通信板已經實現1553B總線和PCI總線兩個通信接口的基礎上,設計協議轉換模塊總體框圖如圖1所示。在板卡內開發協議識別模塊和協議編解碼模塊,實現設備最主要的協議轉換功能。
<;E:\2014年23期\2014年23期\Image\18t1.tif>;
圖1 總體方案框圖
實物資源通過1553B總線將數據傳輸給模塊板卡,傳入協議識別模塊進行協議類型識別,得到該硬件協議的協議號。在FPGA內進行協議類型識別,可實現多個協議幀頭的并行識別,極大地提高了實時性。DSP內的協議編解碼模塊從協議識別模塊中讀取實物資源發送的數據并識別得到的協議號;通過協議號查找用戶事先定義的對象協議對應關系,將硬件協議快速轉換為HIT?TENA資源對象;再通過PCI接口將數據發送給上位機,接入虛擬仿真試驗系統。
2 ?協議識別模塊設計
協議識別模塊是協議轉換的重要模塊,它對經過1553B協議通信模塊解析的數據進行協議類型識別。通過對事先存入的協議幀頭與接收數據按字節進行比對,得到源數據所屬協議的協議號,為下一步的協議轉換提供索引[8]。在FPGA里面進行協議類型識別,可以實現多個協議幀頭的并行識別,在該設計中,最大可支持64種協議,比起在DSP內進行串行識別,極大地減少所需時間,提高了實時性[9]。
協議識別模塊的核心構成是協議識別單元,其功能框圖如圖2所示。它主要由比對單元、數據拆分單元、字節計數器、協議幀頭存儲區、完成信號生成單元5個部分構成。
<;E:\2014年23期\2014年23期\Image\18t2.tif>;
圖2 協議識別單元功能框圖
數據拆分單元的功能是對傳輸進協議識別單元的數據進行拆分。1553B協議解析得到的數據data長度為16位,而一般采用的協議幀頭每個幀頭數據都為字節長度,因此需要通過數據拆分單元將數據拆為單個字節byte,方便進行識別。
協議幀頭存儲區用于存儲一種協議的全部幀頭內容,存儲區第一個字節用于存儲該幀頭的長度fhlength,接下來的空間按順序存儲幀頭數據fheader。字節計數器以字節為單位對接收數據包進行計數,每到來一個新數據,計數器值cnt加1。
比對單元是協議識別單元的最基本組成元件,它對輸出的兩個字節數據進行比對,在內部寄存器保存比對結果result并輸出。當一個新的數據data到來時,前段邏輯會同時生成一個開始信號start,字節計數器接收到這個信號后,計數值cnt加1,然后發送給協議幀頭存儲器;協議幀頭存儲器將第cnt個幀頭數據fheader發送給比對單元。比對單元對byte和fheader進行比對,若數據不同,則將結果寄存器值賦0,輸出0;若兩數據相同,則結果寄存器值為1,且輸出1。這樣保證了接收到的數據必須每個字節都與協議幀頭相同,比對單元才能輸出有效結果。
完成信號生成單元讀取比對單元的輸出結果result、計數值cnt和幀頭長度fhlength。當result為0時,說明識別失敗,生成結束信號finish,識別成功信號succeed為無效;當result為1且cnt值和fhlength值相同時,說明識別成功,生成結束信號finish,同時產生一個時鐘高電平的識別成功信號succeed。
協議識別模塊主要由協議識別單元陣列和協議號生成單元組成,其總體框圖見圖3。
單個協議識別單元只能完成一種協議的識別,而64個協議識別單元組成協議識別陣列便能完成最多64種協議的識別,大大提高了協議識別速度。當所有協議識別單元都完成識別后,協議識別陣列輸出各64位的結束信號finish和識別成功信號succeed。
<;E:\2014年23期\2014年23期\Image\18t3.tif>;
圖3 協議識別模塊總體框圖
協議號生成單元接收協議識別陣列輸出的finish信號和succeed信號,根據這兩個信號進行協議號判斷。協議號生成單元對finish的64位元素進行全與處理,若結果為1,說明協議識別陣列已完成協議識別。然后對succeed信號的64位元素進行全或處理,若結果為0,說明匹配失敗,無法識別數據的協議;若結果為1,說明匹配成功。因為每個協議識別單元產生的succeed信號只持續一個時鐘,此時只有成功識別出數據協議的協議識別單元輸出的succeed信號才為有效,所以對64位succeed信號進行按位查詢,得到第[k]位值為1,[k]即為接收數據對應的協議號,將其存入pro_id寄存器中,同時產生pause信號通知DSP來讀取協議號。
3 ?協議編解碼模塊設計
協議轉換模塊是資源接入設備的核心部分,其功能是快速完成虛擬試驗系統的對象模型和實物資源的硬件協議之間的相互轉換。轉換實現的具體過程就是根據源協議格式對數據進行解碼,再根據目的協議對數據進行編碼。對于待轉換的數據包,首先根據源協議號從事先加載的協議描述文件中定位源協議描述內容和其對應的目的協議號,根據源協議的格式從數據包中解碼出所需要的有效元素值集合;再根據目的協議號查詢目的協議描述內容,按照該內容信息,從解碼得到的元素值集合進行元素值提取、函數處理、幀頭幀尾封裝等編碼操作,得到目的協議數據包[10]。整個過程如圖4所示。
<;E:\2014年23期\2014年23期\Image\18t4.tif>;
圖4 協議轉換示意圖
因為硬件應用協議和資源對象的相互轉換是兩個不同的操作,所以上下行兩個協議轉換在兩個不同的轉換單元中進行[11],其流程示意圖如圖5所示。
<;E:\2014年23期\2014年23期\Image\18t5.tif>;
圖5 上下行協議轉換流程示意圖
上行協議轉換過程如圖5(a)所示,是將實物資源上傳的數據包從硬件協議格式轉換為虛擬試驗系統上應用的的對象模型。協議轉換模塊的FPGA完成協議識別后,以中斷模式通知DSP,DSP激活上行協議轉換單元讀取識別得到的源協議號,并從FPGA內的存儲器讀取接收到的數據包,然后存儲到源協議數據存儲區中。開始協議轉換后,首先將源協議數據存儲區中的數據進行初步解析得到元素值集合,然后從元素值中先后提取出對象模型需要的必選元素和可選元素,將它們按照在協議描述信息中的索引號排列順序存儲,并對有函數處理要求的元素進行相應處理。函數處理完成后,將緩存區的數據包內容拷貝至對象模型的實例化區域,然后通知上位機協議轉換完成,等待上位機讀取對象模型數據。
下行協議轉換過程如圖5(b)所示,是將對象模型轉換為硬件協議數據包。當虛擬試驗系統中有對象模型更新時,平臺將新的對象數據打包發送給協議轉換模塊,模塊接收到數據后啟動協議轉換。下行協議轉換單元先讀取對象的對象號,然后定位對象的協議描述信息和對象的實例化區域。為了對對象數據進行緩存,下行協議轉換單元中也申請一定大小的緩沖區,按照硬件協議格式從緩沖區數據中解析元素,并進行函數處理。為了方便向實物資源輸出數據包,下行協議轉換線程中生成硬件協議數據包時,首先生成必選元素,然后再生成可選元素,這些元素依次排列,而不嚴格按照在協議描述信息中的索引號排列。
4 ?測試結果
首先對協議轉換的功能進行測試,為了測試上行編解碼單元和下行編解碼單元的功能,設計了4條協議(A,B,C,D)用于測試。其中A和B為硬件協議,有幀頭和幀尾,用于協議識別;C和D為HIT?TENA對象模型,沒有幀頭和幀尾。A和C,B和D分別為對應關系的協議。它們的格式定義如表1~表4所示。
表1 協議A的格式定義
[屬性元素\&;數據類型\&;函數處理\&;對應屬性\&;幀頭\&;ProtoA\&;-\&;-\&;1\&;double\&;-\&;-\&;2\&;double\&;-\&;-\&;3\&;char\&;-\&;-\&;幀尾\&;End\&;-\&;-\&;]
表2 協議B的格式定義
[屬性元素\&;數據類型\&;函數處理\&;對應屬性\&;幀頭\&;ProtoB\&;-\&;-\&;1\&;double\&;DIRECT\&;2\&;2\&;double\&;ADD2\&;1,4\&;3\&;double\&;DIRECT\&;3\&;幀尾\&;End\&;-\&;-\&;]
表3 協議C的格式定義
[屬性元素\&;數據類型\&;函數處理\&;對應屬性\&;1\&;double\&;ADD2\&;1,2\&;2\&;char\&;DIRECT\&;3\&;]
表4 協議D的格式定義
[屬性元素\&;數據類型\&;函數處理\&;對應屬性\&;1\&;double\&;-\&;-\&;2\&;double\&;-\&;-\&;3\&;double\&;-\&;-\&;4\&;double\&;-\&;-\&;]
測試上行協議轉換時,從試驗設備向資源接入設備發送滿足協議A格式的數據:‘ProtoA,21.473 684,21.233 766,‘K,‘End。經過資源接入設備后,上位機接收到了數據:42.707 450,‘K。接收數據滿足協議C的格式,同時42.707 450=21.473 684+21.233 766,函數處理無誤,上行協議轉換成功。
測試下行協議轉換時,從上位機向資源接入設備發送滿足協議D格式的數據:11.472 103,21.233 766,22.339 812,34.195 328。數據在資源接入設備進行協議轉換,最終試驗設備接收到數據:‘ProtoB,21.233 766,45.667 431,22.339 812,‘End。接收數據滿足協議B的格式,同時45.667 431=11.472 103+34.195 328,函數處理無誤,下行協議轉換成功。
然后測協議轉換模塊的實時性,測試方法為在FPGA內設置計數器模塊。當數據進入資源接入設備后計數器開始計數,協議轉換完成后通知計數器停止計數,通過計數器值可以計算出資源接入設備造成的延時。測試結果見表5和表6。
表5 上行處理延遲
[\&;1\&;2\&;3\&;4\&;5\&;平均\&;延遲 /ms\&;0.67\&;0.63\&;0.71\&;0.65\&;0.62\&;0.66\&;]
表6 下行處理延遲
[\&;1\&;2\&;3\&;4\&;5\&;平均\&;延遲 /ms\&;0.42\&;0.47\&;0.37\&;0.39\&;0.35\&;0.40\&;]
通過測試數據可以看出,協議轉換設備造成的延時都在1 ms以內,滿足虛擬仿真試驗對實時性的要求。
5 ?結 ?語
本文針對靶場實物資源接入虛擬試驗系統時存在的協議轉換效率低、延遲較大等問題,研制了一種以DSP+FPGA為核心并具備PCI總線和1553B總線接口的協議轉換模塊。通過對常用硬件協議和對象模型的分析,在FPGA設計協議識別模塊實現了對數據協議的識別,在DSP內設計協議轉換模塊實現了硬件協議和對象模型間的快速轉換。經過測試表明,本設備能很好地完成協議轉換任務,產生延時在1 ms以內,滿足虛擬仿真試驗對實時性的要求。本協議轉換設備在實際應用中,運行穩定,快速可靠,具有很高的工程應用價值,對于解決實物資源接入虛擬仿真試驗系統的實時性問題有十分重要的意義。
參考文獻
[1] 代坤,趙雯,張灝龍,等.基于TENA的虛擬試驗實現技術研究[J].系統仿真學報,2011,23(5):857?863.
[2] 關萍萍,翟正軍.虛擬靶場運行支撐體系結構研究[J].計算機測量與控制,2009,17(12):2475?2478.
[3] 李世良,許永輝.PCI總線智能GJB289A仿真卡設計[J].現代電子技術,2010,33(20):114?116.
[4] 許永輝,楊京禮,林連雷.TMS320DM642 DSP原理與應用實踐[M].北京:電子工業出版社,2012.
[5] 趙明陽,朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設計[J].現代電子技術,2012,35(10):78?81.
[6] 曾蓉.LXI集成通信模塊的研制[D].哈爾濱:哈爾濱工業大學,2013.
[7] 黃樹蔚.VXI總線高速1553B通信模塊研制[D].哈爾濱:哈爾濱工業大學,2009.
[8] 黃敬禮.通用協議轉換設備研制[D].哈爾濱:哈爾濱工業大學,2011.
[9] 張賢莉,翟正軍,馮萍.靶場仿真中分布式異構網關技術研究[J].計算機測量與控制,2011,19(9):2263?2265.
[10] 張曉利,周榮輝.多模式匹配算法在協議識別中的應用[C]//中國電子學會第十六屆信息論學術年會論文集.北京:電子工業出版社,2009:87?89.
[11] 張陽,張海.一種系統測試中的快速多協議匹配算法[J].電光與控制,2010(7):142?144.
表6 下行處理延遲
[\&;1\&;2\&;3\&;4\&;5\&;平均\&;延遲 /ms\&;0.42\&;0.47\&;0.37\&;0.39\&;0.35\&;0.40\&;]
通過測試數據可以看出,協議轉換設備造成的延時都在1 ms以內,滿足虛擬仿真試驗對實時性的要求。
5 ?結 ?語
本文針對靶場實物資源接入虛擬試驗系統時存在的協議轉換效率低、延遲較大等問題,研制了一種以DSP+FPGA為核心并具備PCI總線和1553B總線接口的協議轉換模塊。通過對常用硬件協議和對象模型的分析,在FPGA設計協議識別模塊實現了對數據協議的識別,在DSP內設計協議轉換模塊實現了硬件協議和對象模型間的快速轉換。經過測試表明,本設備能很好地完成協議轉換任務,產生延時在1 ms以內,滿足虛擬仿真試驗對實時性的要求。本協議轉換設備在實際應用中,運行穩定,快速可靠,具有很高的工程應用價值,對于解決實物資源接入虛擬仿真試驗系統的實時性問題有十分重要的意義。
參考文獻
[1] 代坤,趙雯,張灝龍,等.基于TENA的虛擬試驗實現技術研究[J].系統仿真學報,2011,23(5):857?863.
[2] 關萍萍,翟正軍.虛擬靶場運行支撐體系結構研究[J].計算機測量與控制,2009,17(12):2475?2478.
[3] 李世良,許永輝.PCI總線智能GJB289A仿真卡設計[J].現代電子技術,2010,33(20):114?116.
[4] 許永輝,楊京禮,林連雷.TMS320DM642 DSP原理與應用實踐[M].北京:電子工業出版社,2012.
[5] 趙明陽,朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設計[J].現代電子技術,2012,35(10):78?81.
[6] 曾蓉.LXI集成通信模塊的研制[D].哈爾濱:哈爾濱工業大學,2013.
[7] 黃樹蔚.VXI總線高速1553B通信模塊研制[D].哈爾濱:哈爾濱工業大學,2009.
[8] 黃敬禮.通用協議轉換設備研制[D].哈爾濱:哈爾濱工業大學,2011.
[9] 張賢莉,翟正軍,馮萍.靶場仿真中分布式異構網關技術研究[J].計算機測量與控制,2011,19(9):2263?2265.
[10] 張曉利,周榮輝.多模式匹配算法在協議識別中的應用[C]//中國電子學會第十六屆信息論學術年會論文集.北京:電子工業出版社,2009:87?89.
[11] 張陽,張海.一種系統測試中的快速多協議匹配算法[J].電光與控制,2010(7):142?144.
表6 下行處理延遲
[\&;1\&;2\&;3\&;4\&;5\&;平均\&;延遲 /ms\&;0.42\&;0.47\&;0.37\&;0.39\&;0.35\&;0.40\&;]
通過測試數據可以看出,協議轉換設備造成的延時都在1 ms以內,滿足虛擬仿真試驗對實時性的要求。
5 ?結 ?語
本文針對靶場實物資源接入虛擬試驗系統時存在的協議轉換效率低、延遲較大等問題,研制了一種以DSP+FPGA為核心并具備PCI總線和1553B總線接口的協議轉換模塊。通過對常用硬件協議和對象模型的分析,在FPGA設計協議識別模塊實現了對數據協議的識別,在DSP內設計協議轉換模塊實現了硬件協議和對象模型間的快速轉換。經過測試表明,本設備能很好地完成協議轉換任務,產生延時在1 ms以內,滿足虛擬仿真試驗對實時性的要求。本協議轉換設備在實際應用中,運行穩定,快速可靠,具有很高的工程應用價值,對于解決實物資源接入虛擬仿真試驗系統的實時性問題有十分重要的意義。
參考文獻
[1] 代坤,趙雯,張灝龍,等.基于TENA的虛擬試驗實現技術研究[J].系統仿真學報,2011,23(5):857?863.
[2] 關萍萍,翟正軍.虛擬靶場運行支撐體系結構研究[J].計算機測量與控制,2009,17(12):2475?2478.
[3] 李世良,許永輝.PCI總線智能GJB289A仿真卡設計[J].現代電子技術,2010,33(20):114?116.
[4] 許永輝,楊京禮,林連雷.TMS320DM642 DSP原理與應用實踐[M].北京:電子工業出版社,2012.
[5] 趙明陽,朱巖,張建東,等.基于PCI局部總線的1553B總線接口卡設計[J].現代電子技術,2012,35(10):78?81.
[6] 曾蓉.LXI集成通信模塊的研制[D].哈爾濱:哈爾濱工業大學,2013.
[7] 黃樹蔚.VXI總線高速1553B通信模塊研制[D].哈爾濱:哈爾濱工業大學,2009.
[8] 黃敬禮.通用協議轉換設備研制[D].哈爾濱:哈爾濱工業大學,2011.
[9] 張賢莉,翟正軍,馮萍.靶場仿真中分布式異構網關技術研究[J].計算機測量與控制,2011,19(9):2263?2265.
[10] 張曉利,周榮輝.多模式匹配算法在協議識別中的應用[C]//中國電子學會第十六屆信息論學術年會論文集.北京:電子工業出版社,2009:87?89.
[11] 張陽,張海.一種系統測試中的快速多協議匹配算法[J].電光與控制,2010(7):142?144.