亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種通用的協(xié)議轉換裝置及方法

文檔序號:7781346閱讀:335來源:國知局
一種通用的協(xié)議轉換裝置及方法
【專利摘要】一種通用的協(xié)議轉換裝置及方法,屬于虛擬仿真試驗領域。解決了現(xiàn)有通過軟件進行協(xié)議轉換的方法存在轉換效率和轉換精度低的問題。本發(fā)明包括兩個JTAG接口模塊、96針擴展接口模塊、RJ45接口模塊、FPGA、信號處理器和存儲器,F(xiàn)PGA包括接收緩存單元、協(xié)議匹配模塊、寄存器模塊和發(fā)送緩存單元,將96針擴展接口模塊輸入的協(xié)議數(shù)據(jù)存儲到接收緩存單元,同時送到協(xié)議匹配模塊進行匹配,協(xié)議匹配模塊完成協(xié)議匹配后,將結果存儲在寄存器模塊,接收緩存單元的數(shù)據(jù)和寄存器區(qū)的信息可以被信號處理器過外部存儲器接口訪問;通過信號處理器進行協(xié)議轉換,并將轉換結果發(fā)送出去。本發(fā)明具體應用在協(xié)議轉換領域。
【專利說明】一種通用的協(xié)議轉換裝置及方法
【技術領域】
[0001 ] 本發(fā)明屬于虛擬仿真試驗領域。
【背景技術】
[0002]分布式虛擬仿真試驗基于以太網構建,由大量虛擬、半實物、實裝設備參與。在實裝設備參與虛擬仿真試驗時,由于實裝設備的數(shù)據(jù)格式與虛擬試驗系統(tǒng)的數(shù)據(jù)格式不匹配,需要進行協(xié)議轉換。針對該問題,一種解決方案是使用接口板卡將試驗設備連接到計算機,并在計算機上開發(fā)協(xié)議轉換軟件,但軟件轉換存在效率較低、產生較大時間延遲且延遲時間不確定等缺點。而在實時性要求較高的仿真試驗中,數(shù)據(jù)與指令傳輸?shù)膶崟r性和設備響應的實時性對于仿真試驗的成敗有著決定性的影響;因此,有必要研制基于硬件的實時協(xié)議轉換裝置。此外,針對不同的仿真試驗系統(tǒng)及仿真試驗實裝設備,開發(fā)不同的協(xié)議轉換裝置,不僅會大大降低試驗系統(tǒng)構建效率,還將浪費大量人力、物力、財力。

【發(fā)明內容】

[0003]本發(fā)明是為了解決現(xiàn)有通過軟件進行協(xié)議轉換的方法存在轉換效率和轉換精度低的問題,本發(fā)明提供了 一種通用的協(xié)議轉換裝置及方法。
[0004]一種通用的協(xié)議轉換裝置,它包括兩個JTAG接口模塊、96針擴展接口模塊、RJ45接口模塊、FPGA、信號處理器和存儲器,
[0005]所述的其中一個JTAG接口模塊的燒寫程序信號輸出端與FPGA燒寫程序信號輸入端連接,另一個JTAG接口模塊的燒寫程序信號輸出端與信號處理器燒寫程序信號輸入端連接,
[0006]96針擴展接口模塊的上行協(xié)議數(shù)據(jù)信號輸出端與FPGA4上行協(xié)議數(shù)據(jù)信號輸入端連接,96針擴展接口模塊的下行協(xié)議數(shù)據(jù)信號輸入端與FPGA4下行協(xié)議數(shù)據(jù)信號輸出端連接,
[0007]FPGA的中斷信號輸出端與信號處理器的中斷信號輸入端連接,F(xiàn)PGA的匹配結果信號輸出端與信號處理器的匹配結果信號輸入端連接,F(xiàn)PGA的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器的上下協(xié)議數(shù)據(jù)輸入輸出端連接,
[0008]存儲器的配置數(shù)據(jù)信號輸出端與FPGA的配置數(shù)據(jù)信號輸入端連接,所述的存儲器的協(xié)議描述文件信號輸出端同時與FPGA的協(xié)議描述文件信號輸入端和信號處理器5的協(xié)議描述文件信號輸入端連接,所述的存儲器的存儲信號輸入輸出端與信號處理器的存儲信號輸入輸出端連接,所述的RJ45接口模塊的上位機通信信號輸入輸出端與信號處理器的上位機通信信號輸入輸出端連接。
[0009]所述的FPGA包括接收緩存單元、協(xié)議匹配模塊、寄存器模塊和發(fā)送緩存單元,
[0010]所述的接收緩存單元的數(shù)據(jù)信號輸入端與協(xié)議匹配模塊數(shù)據(jù)信號輸入端連接后作為FPGA上行協(xié)議數(shù)據(jù)信號輸入端,接收緩存單元的上行協(xié)議數(shù)據(jù)信號輸入端和發(fā)送緩存單元下行協(xié)議數(shù)據(jù)信號輸入均作為的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器的上下協(xié)議數(shù)據(jù)輸入輸出端連接,
[0011]發(fā)送緩存單元的數(shù)據(jù)信號輸出端作為FPGA下行協(xié)議數(shù)據(jù)信號輸出端,
[0012]寄存器模塊的中斷信號輸出端作為FPGA的中斷信號輸出端,
[0013]寄存器模塊的匹配結果信號輸出端作為FPGA的匹配結果信號輸出端。
[0014]一種通用的協(xié)議轉換方法,它是基于下述裝置實現(xiàn)的,所述裝置包括兩個JTAG接口模塊、96針擴展接口模塊、RJ45接口模塊、FPGA、信號處理器和存儲器,
[0015]其中一個JTAG接口模塊的燒寫程序信號輸出端與FPGA燒寫程序信號輸入端連接,另一個JTAG接口模塊的燒寫程序信號輸出端與信號處理器燒寫程序信號輸入端連接,
[0016]96針擴展接口模塊的上行協(xié)議數(shù)據(jù)信號輸出端與FPGA上行協(xié)議數(shù)據(jù)信號輸入端連接,96針擴展接口模塊的下行協(xié)議數(shù)據(jù)信號輸入端與FPGA下行協(xié)議數(shù)據(jù)信號輸出端連接,
[0017]FPGA的中斷信號輸出端與信號處理器的中斷信號輸入端連接,F(xiàn)PGA的匹配結果信號輸出端與信號處理器的匹配結果信號輸入端連接,F(xiàn)PGA的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器的上下協(xié)議數(shù)據(jù)輸入輸出端連接,
[0018]存儲器的配置數(shù)據(jù)信號輸出端與FPGA的配置數(shù)據(jù)信號輸入端連接,所述的存儲器的協(xié)議描述文件信號輸出端同時與FPGA的協(xié)議描述文件信號輸入端和信號處理器的協(xié)議描述文件信號輸入端連接,所述的存儲器的存儲信號輸入輸出端與信號處理器的存儲信號輸入輸出端連接,所述的RJ45接口模塊的上位機通信信號輸入輸出端與信號處理器的上位機通信信號輸入輸出端連接;
[0019]信號處理器包括協(xié)議轉換模塊、TCP網絡接口模塊和協(xié)議存儲及加載模塊,
[0020]協(xié)議存儲及加載模塊通過從存儲器中讀寫協(xié)議描述文件,用于加載或存儲協(xié)議描述文件,為協(xié)議轉換做準備;
[0021]協(xié)議轉換模塊,用于對協(xié)議數(shù)據(jù)包進行元素位置重排和函數(shù)處理操作,將試驗設備的硬件數(shù)據(jù)包轉換為可供虛擬試驗系統(tǒng)使用的資源,并把虛擬試驗系統(tǒng)的資源轉換為試驗設備識別的硬件數(shù)據(jù)包;
[0022]TCP網絡接口模塊,用于使接入的試驗設備與虛擬試驗系統(tǒng)之間進行資源獨立交互,
[0023]該通用的協(xié)議轉換方法是由嵌入在信號處理器中軟件實現(xiàn)的,所述軟件依托于DSP/B10S操作系統(tǒng),所述通用的協(xié)議轉換方法是通過在協(xié)議轉換模塊中嵌入的多線程技術實現(xiàn),具體包括以下多個線程:
[0024]數(shù)據(jù)包接收中斷處理線程、上行協(xié)議轉換線程、下行協(xié)議轉換線程、TCP數(shù)據(jù)包裝配線程和TCP數(shù)據(jù)包處理線程,
[0025]上行協(xié)議轉換線程,用于將實裝設備數(shù)據(jù)轉換成虛擬試驗系統(tǒng)所需數(shù)據(jù),獲得SEM_In、QUE_In 和 LCK_In ;
[0026]下行協(xié)議轉換線程,用于將虛擬試驗系統(tǒng)發(fā)送的數(shù)據(jù)轉換成實裝設備所需數(shù)據(jù),
[0027]數(shù)據(jù)包接收中斷處理線程,利用接收到的中斷信號激活上行協(xié)議轉換線程,通過使用信號量SEM_PacketReady實現(xiàn),
[0028]TCP數(shù)據(jù)包裝配線程,用于將接收到的上行協(xié)議轉換線程處理后的信號發(fā)送到虛擬試驗系統(tǒng)中訂購了這個對象或者相關屬性的成員,[0029]TCP數(shù)據(jù)包處理線程,解析從虛擬試驗系統(tǒng)中接收到的數(shù)據(jù)包,該線程發(fā)出SEM_Out、QUE_0ut和LCK_0ut,且SEM_0ut用于激活下行協(xié)議轉換線程;
[0030]其中,SEM_In表示輸入信號量,用于線程同步和互斥,有計數(shù)功能;
[0031]QUE_In表示輸入隊列,用于實現(xiàn)線程間同步和資源的共享;
[0032]LCK_In表示輸入資源鎖,用于實現(xiàn)對共享資源的互斥;
[0033]SEM_0ut表示輸出信號量,用于線程同步和互斥,有計數(shù)功能;
[0034]QUE_0ut表示輸出隊列,用于實現(xiàn)線程間同步和資源的共享;
[0035]LCK_0ut表示輸出資源鎖,用于實現(xiàn)對共享資源的互斥。
[0036]本發(fā)明所述的一種通用的協(xié)議轉換裝置及方法的轉換效率提高了 30%以上,轉換精度提高了 20%以上,且具備通用硬件接口,可適配不同的接口功能板;支持協(xié)議更新、存儲,及上電自動加載;能同時加載64條協(xié)議。
【專利附圖】

【附圖說明】
[0037]圖1為本發(fā)明所述的一種通用的協(xié)議轉換裝置的原理示意圖;
[0038]圖2為【具體實施方式】二所述的FPGA的原理示意圖;
[0039]圖3為【具體實施方式】三所述的協(xié)議匹配單元的原理示意圖;
[0040]圖4為【具體實施方式】五所述的信號處理器的原理示意圖;
[0041]圖5為【具體實施方式】五所述的協(xié)議轉換模塊的原理示意圖;
[0042]圖6為【具體實施方式】六所述的上行協(xié)議轉換線程的數(shù)據(jù)處理過程流程圖;
[0043]圖7為【具體實施方式】七所述的下行協(xié)議轉換線程的數(shù)據(jù)處理過程流程圖;
[0044]圖8為【具體實施方式】八所述的TCP數(shù)據(jù)包裝配線程的數(shù)據(jù)處理過程流程圖;
[0045]圖9為【具體實施方式】九所述的TCP數(shù)據(jù)包處理線程的數(shù)據(jù)處理過程流程圖;
[0046]圖10為【具體實施方式】十所述的協(xié)議存儲及加載模塊數(shù)據(jù)處理過程流程圖。
【具體實施方式】
[0047]【具體實施方式】一:參見圖1說明本實施方式,本實施方式所述的一種通用的協(xié)議轉換裝置,它包括兩個JTAG接口模塊1、96針擴展接口模塊2、RJ45接口模塊3、FPGA4、信號處理器5和存儲器6,
[0048]所述的其中一個JTAG接口模塊I的燒寫程序信號輸出端與FPGA4燒寫程序信號輸入端連接,另一個JTAG接口模塊I的燒寫程序信號輸出端與信號處理器5燒寫程序信號輸入端連接,
[0049]96針擴展接口模塊2的上行協(xié)議數(shù)據(jù)信號輸出端與FPGA4上行協(xié)議數(shù)據(jù)信號輸入端連接,96針擴展接口模塊2的下行協(xié)議數(shù)據(jù)信號輸入端與FPGA4下行協(xié)議數(shù)據(jù)信號輸出端連接,
[0050]FPGA4的中斷信號輸出端與信號處理器5的中斷信號輸入端連接,FPGA4的匹配結果信號輸出端與信號處理器5的匹配結果信號輸入端連接,F(xiàn)PGA4的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器5的上下協(xié)議數(shù)據(jù)輸入輸出端連接,
[0051]存儲器6的配置數(shù)據(jù)信號輸出端與FPGA4的配置數(shù)據(jù)信號輸入端連接,所述的存儲器6的協(xié)議描述文件信號輸出端同時與FPGA4的協(xié)議描述文件信號輸入端和信號處理器5的協(xié)議描述文件信號輸入端連接,所述的存儲器6的存儲信號輸入輸出端與信號處理器5的存儲信號輸入輸出端連接,所述的RJ45接口模塊3的上位機通信信號輸入輸出端與信號處理器5的上位機通信信號輸入輸出端連接。
[0052]【具體實施方式】二:參見圖1和2說明本實施方式,本實施方式與【具體實施方式】一所述的一種通用的協(xié)議轉換裝置的區(qū)別在于,所述的FPGA4包括接收緩存單元4-1、協(xié)議匹配模塊4-2、寄存器模塊4-3和發(fā)送緩存單元4-4,
[0053]所述的接收緩存單元4-1的數(shù)據(jù)信號輸入端與協(xié)議匹配模塊4-2數(shù)據(jù)信號輸入端連接后作為FPGA4上行協(xié)議數(shù)據(jù)信號輸入端,接收緩存單元4-1的上行協(xié)議數(shù)據(jù)信號輸入端和發(fā)送緩存單元4-4下行協(xié)議數(shù)據(jù)信號輸入均作為FPGA4的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器5的上下協(xié)議數(shù)據(jù)輸入輸出端連接,
[0054]發(fā)送緩存單元4-4的數(shù)據(jù)信號輸出端作為FPGA4下行協(xié)議數(shù)據(jù)信號輸出端,
[0055]寄存器模塊4-3的中斷信號輸出端作為FPGA4的中斷信號輸出端,
[0056]寄存器模塊4-3的匹配結果信號輸出端作為FPGA4的匹配結果信號輸出端。
[0057]本實施方式中,將96針擴展接口模塊2輸入的協(xié)議數(shù)據(jù)存儲到接收緩存單元4-1,同時送到協(xié)議匹配模塊4-2進行匹配,協(xié)議匹配模塊4-2完成協(xié)議匹配后,將結果存儲在寄存器模塊4-3,接收緩存單元4-1的數(shù)據(jù)和寄存器區(qū)的信息可以被信號處理器5通過外部存儲器接口訪問;另外,向實裝設備發(fā)送的數(shù)據(jù)包,經過發(fā)送緩存單元4-4緩存后,通過96針接口發(fā)送出去。
[0058]【具體實施方式】三:參見圖1、2和3說明本實施方式,本實施方式與【具體實施方式】三所述的一種通用的協(xié)議轉換裝置的區(qū)別在于,所述的協(xié)議匹配模塊4-2的獲得過程為,將64個協(xié)議匹配單元4-2-1組成協(xié)議匹配單元陣列,所述的協(xié)議匹配單元陣列加上輔助功能邏輯,最終得到協(xié)議匹配模塊4-2 ;
[0059]協(xié)議匹配單元4-2-1用于將接收到的上行協(xié)議數(shù)據(jù)信號進行協(xié)議匹配,并將匹配結果發(fā)送給信號處理器5的匹配結果信號輸入端,
[0060]所述的輔助功能邏輯包括64位與模塊、64位或模塊、64位優(yōu)先級編碼器和8位觸發(fā)器,
[0061]64位優(yōu)先級編碼器對match_ris進行優(yōu)先級編碼,match_ris為匹配出現(xiàn)信號,
[0062]64位與模塊使用兩級8位與模塊實現(xiàn),64位與模塊用于將接收到的done信號進行與運算,獲得所有匹配是否完成信號alldone和其上升沿信號alld0ne_riS ;所述的done為匹配完成信號;
[0063]64位或模塊使用兩級8位或模塊實現(xiàn),64位或模塊用于將接收到的match信號進行或運算,獲得最終匹配結果信號hasmatch,所述的match為匹配結果信號;
[0064]64位優(yōu)先級編碼器基于16位優(yōu)先級編碼器級聯(lián)構成,所述的64位優(yōu)先級編碼器基于16位優(yōu)先級編碼器級聯(lián)構成的具體過程為,首先由16位優(yōu)先級編碼器級聯(lián)構成32位優(yōu)先級編碼器,然后由32位優(yōu)先級編碼器級聯(lián)構成64位優(yōu)先級編碼器;
[0065]所述的協(xié)議匹配單元4-2-1包括字節(jié)計數(shù)器、幀頭數(shù)據(jù)區(qū)、比較單元、匹配完成信號生成邏輯、匹配信號生成邏輯和上升沿檢測邏輯,
[0066]協(xié)議匹配單元4-2-1進行協(xié)議匹配的具體過程為,字節(jié)計數(shù)器對數(shù)據(jù)包字節(jié)計數(shù),直到計數(shù)值與幀頭長度相等為止,根據(jù)計數(shù)值從幀頭數(shù)據(jù)區(qū)取出幀頭字節(jié),[0067]巾貞頭字節(jié)與數(shù)據(jù)包字節(jié)在比較單元中進行比較獲得result,并將result同時發(fā)送至匹配完成信號生成邏輯和匹配信號生成邏輯,其中,result為比較結果信號,
[0068]比較單元是帶記憶功能的比較模塊,它能保存上次比較的結果,
[0069]當匹配結束時,匹配完成信號生成邏輯輸出的done有效;
[0070]當數(shù)據(jù)包與某幀頭匹配時,匹配信號生成邏輯輸出的match有效,并將match作為上升沿檢測邏輯的輸入,得到matchjis ;
[0071]所述的幀頭數(shù)據(jù)區(qū)是包含16個字節(jié)空間的存儲區(qū),存儲一個協(xié)議幀頭的信息,其中,第一個字節(jié)存儲幀頭的長度,其余15個字節(jié)依次存儲幀頭內容。
[0072]本實施方式中,所述的16位優(yōu)先級編碼器為組合邏輯模塊。
[0073]協(xié)議匹配模塊4-2的基本原理是,設置存儲器存儲各個幀頭的內容和幀頭的長度,并設置若干協(xié)議匹配單元,每個協(xié)議匹配單元負責一個協(xié)議幀頭的比較,當硬件數(shù)據(jù)包來臨時,協(xié)議匹配單元將數(shù)據(jù)包的第一個接收的字節(jié)與幀頭的第一個字節(jié)比較,如果第一個字節(jié)相同則將數(shù)據(jù)包第二個字節(jié)與幀頭的第二個字節(jié)比較,當某一個字節(jié)不相同或者已匹配的字節(jié)相同且匹配完幀頭的所有字節(jié)時,該協(xié)議匹配單元匹配完成,得到比較結果,當所有協(xié)議匹配單元都完成匹配后,可以得到最終匹配結果。
[0074]【具體實施方式】四:參見圖1、2和3說明本實施方式,本實施方式與【具體實施方式】三所述的一種通用的協(xié)議轉換裝置的區(qū)別在于,所述的信號處理器5采用TMS320DM642型DSP處理器實現(xiàn),F(xiàn)PGA4是采用Altera公司的EP3C55F484I7型FPGA。
[0075]【具體實施方式】五:參見圖1至5說明本實施方式,一種通用的協(xié)議轉換方法,它是基于下述裝置實現(xiàn)的,所述裝置包括兩個JTAG接口模塊1、96針擴展接口模塊2、RJ45接口模塊3、FPGA4、信號處理器5和存儲器6,
[0076]其中一個JTAG接口模塊I的燒寫程序信號輸出端與FPGA4燒寫程序信號輸入端連接,另一個JTAG接口模塊I的燒寫程序信號輸出端與信號處理器5燒寫程序信號輸入端連接,
[0077]96針擴展接口模塊2的上行協(xié)議數(shù)據(jù)信號輸出端與FPGA4上行協(xié)議數(shù)據(jù)信號輸入端連接,96針擴展接口模塊2的下行協(xié)議數(shù)據(jù)信號輸入端與FPGA4下行協(xié)議數(shù)據(jù)信號輸出端連接,
[0078]FPGA4的中斷信號輸出端與信號處理器5的中斷信號輸入端連接,FPGA4的匹配結果信號輸出端與信號處理器5的匹配結果信號輸入端連接,F(xiàn)PGA4的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器5的上下協(xié)議數(shù)據(jù)輸入輸出端連接,
[0079]存儲器6的配置數(shù)據(jù)信號輸出端與FPGA4的配置數(shù)據(jù)信號輸入端連接,所述的存儲器6的協(xié)議描述文件信號輸出端同時與FPGA4的協(xié)議描述文件信號輸入端和信號處理器5的協(xié)議描述文件信號輸入端連接,所述的存儲器6的存儲信號輸入輸出端與信號處理器5的存儲信號輸入輸出端連接,所述的RJ45接口模塊3的上位機通信信號輸入輸出端與信號處理器5的上位機通信信號輸入輸出端連接;
[0080]信號處理器5包括協(xié)議轉換模塊5-2、TCP網絡接口模塊5_3和協(xié)議存儲及加載模塊 5-1,
[0081]協(xié)議存儲及加載模塊5-1通過從存儲器6中讀寫協(xié)議描述文件,用于加載或存儲協(xié)議描述文件,為協(xié)議轉換做準備;[0082]協(xié)議轉換模塊5-2,用于對協(xié)議數(shù)據(jù)包進行元素位置重排和函數(shù)處理操作,將試驗設備的硬件數(shù)據(jù)包轉換為可供虛擬試驗系統(tǒng)使用的資源,并把虛擬試驗系統(tǒng)的資源轉換為試驗設備識別的硬件數(shù)據(jù)包;
[0083]TCP網絡接口模塊5-3,用于使接入的試驗設備與虛擬試驗系統(tǒng)之間進行資源獨立交互,
[0084]該通用的協(xié)議轉換方法是由嵌入在信號處理器5中軟件實現(xiàn)的,所述軟件依托于DSP/B10S操作系統(tǒng),
[0085]所述通用的協(xié)議轉換方法是通過在協(xié)議轉換模塊5-2中嵌入的多線程技術實現(xiàn),具體包括以下多個線程:
[0086]數(shù)據(jù)包接收中斷處理線程、上行協(xié)議轉換線程、下行協(xié)議轉換線程、TCP數(shù)據(jù)包裝配線程和TCP數(shù)據(jù)包處理線程,
[0087]上行協(xié)議轉換線程,用于將實裝設備數(shù)據(jù)轉換成虛擬試驗系統(tǒng)所需數(shù)據(jù),獲得SEM_In、QUE_In 和 LCK_In ;
[0088]下行協(xié)議轉換線程,用于將虛擬試驗系統(tǒng)發(fā)送的數(shù)據(jù)轉換成實裝設備所需數(shù)據(jù),
[0089]數(shù)據(jù)包接收中斷處理線程,利用接收到的中斷信號激活上行協(xié)議轉換線程,通過使用信號量SEM_PacketReady實現(xiàn),
[0090]TCP數(shù)據(jù)包裝配線程,用于將接收到的上行協(xié)議轉換線程處理后的信號發(fā)送到虛擬試驗系統(tǒng)中訂購了這個對象或者相關屬性的成員,
[0091]TCP數(shù)據(jù)包處理線程,解析從虛擬試驗系統(tǒng)中接收到的數(shù)據(jù)包,該線程發(fā)出SEM_Out、QUE_0ut和LCK_0ut,且SEM_0ut用于激活下行協(xié)議轉換線程;
[0092]其中,SEM_In表示輸入信號量,用于線程同步和互斥,有計數(shù)功能;
[0093]QUE_In表示輸入隊列,用于實現(xiàn)線程間同步和資源的共享;
[0094]LCK_In表示輸入資源鎖,用于實現(xiàn)對共享資源的互斥;
[0095]SEM_0ut表示輸出信號量,用于線程同步和互斥,有計數(shù)功能;
[0096]QUE_0ut表示輸出隊列,用于實現(xiàn)線程間同步和資源的共享;
[0097]LCK_0ut表示輸出資源鎖,用于實現(xiàn)對共享資源的互斥。
[0098]本實施方式中,通過設置信號量實現(xiàn)各線程間同步,其中,數(shù)據(jù)包接收中斷處理線程和上行協(xié)議轉換線程的同步是采用信號量SEM_PaCketReady實現(xiàn),通過設置隊列實現(xiàn)線程間的通信,通過設置資源鎖實現(xiàn)對相關數(shù)據(jù)的原子操作,
[0099]【具體實施方式】六:參見圖1至6說明本實施方式,本實施方式與【具體實施方式】五所述的一種通用的協(xié)議轉換方法的區(qū)別在于,所述的上行協(xié)議轉換線程的處理過程為,
[0100]步驟Al、初始化從FPGA4發(fā)送過來的硬件應用協(xié)議數(shù)據(jù)包,執(zhí)行步驟A2 ;
[0101]步驟A2、利用函數(shù) pend (SEM_PacketReady)的等待信號量 SEM_PacketReady,待信號量SEM_PaCketReady來到后,用于激活上行協(xié)議轉換線程,執(zhí)行步驟A3 ;
[0102]步驟A3、讀取數(shù)據(jù)包長度和協(xié)議信號,執(zhí)行步驟四;
[0103]步驟A4、判斷數(shù)據(jù)包長度==0或協(xié)議信號==0xFFF,結果為真,執(zhí)行步驟A2,否則執(zhí)行步驟A5 ;
[0104]步驟A5、定位源協(xié)議和目的協(xié)議描述信息,執(zhí)行步驟A6 ;
[0105]步驟A6、分配或者調整原協(xié)議元素集存儲區(qū),執(zhí)行步驟A7 ;[0106]步驟A7、元素集存儲區(qū)清0,執(zhí)行步驟AS ;
[0107]步驟AS、解析源協(xié)議元素,執(zhí)行步驟A9 ;
[0108]步驟A9、分配或者調整資源對象緩存區(qū),執(zhí)行步驟AlO ;
[0109]步驟A10、拷貝資源對象至緩沖區(qū),執(zhí)行步驟All ;
[0110]步驟Al 1、函數(shù)處理,將資源對象的數(shù)據(jù)格式轉化成源協(xié)議的數(shù)據(jù)格式,執(zhí)行步驟A12 ;
[0111]步驟A12、函數(shù)處理完成后,資源對象內容得到更新,再將緩沖區(qū)的內容拷貝至資源對象實例化區(qū),執(zhí)行步驟A13 ;
[0112]步驟A13、通過函數(shù)put (QUE_In)在隊列QUE_In尾添加元素項,執(zhí)行步驟A14 ;
[0113]步驟A14、通過函數(shù)post(SEM_In)發(fā)送信號量SEM_In,執(zhí)行步驟A2。
[0114]本實施方式中,在上行協(xié)議轉換時,將源協(xié)議元素值解析至元素集存儲區(qū)域,將資源對象實例化區(qū)的內容拷貝至緩沖區(qū),函數(shù)處理過程在源協(xié)議元素集存儲區(qū)和資源對象實例化緩沖區(qū)之間進行,函數(shù)處理完成后,對象內容得到更新,再將緩沖區(qū)的內容拷貝至資源對象實例化區(qū),函數(shù)處理的工作是將資源對象的數(shù)據(jù)格式轉化成源協(xié)議的數(shù)據(jù)格式,更新資源對象實例化區(qū)域后,將對象號添加到QUE_In隊列,并發(fā)出SEM_In信號量,激活TCP數(shù)據(jù)包裝配線程。
[0115]【具體實施方式】七:參見圖1至7說明本實施方式,本實施方式與【具體實施方式】六所述的一種通用的協(xié)議轉換方法的區(qū)別在于,所述的下行協(xié)議轉換線程的處理過程為,
[0116]步驟B1、初始化TCP數(shù)據(jù)包處理線程發(fā)送過來的數(shù)據(jù),執(zhí)行步驟B2 ;
[0117]步驟B2、利用函數(shù)pend (SEM_0ut)的等待信號量SEM_0ut,待信號量SEM_0ut來到后,用于激活下行協(xié)議轉換線程,執(zhí)行步驟B3 ;
[0118]步驟B3、利用函數(shù)get (QUE_0ut)得到隊列QUE_0ut尾的元素項,即得到資源對象的對象號,執(zhí)行步驟B4;
[0119]步驟B4、定位原協(xié)議描述信息,執(zhí)行步驟B5 ;
[0120]步驟B5、定位目的協(xié)議描述信息,執(zhí)行步驟B6 ;
[0121]步驟B6、分配或者調整資源對象緩存區(qū),執(zhí)行步驟B7 ;
[0122]步驟B7、利用函數(shù)pend (LCK_0bj0ut)鎖住資源對象直至拷貝完成,執(zhí)行步驟B8 ;
[0123]步驟B8、拷貝資源對象從實例化區(qū)至緩沖區(qū),執(zhí)行步驟B9 ;
[0124]步驟B9、利用函數(shù)post(LCK_0bj0ut)鎖住資源對象直至拷貝完成,執(zhí)行步驟BlO ;
[0125]步驟B10、分配或者調整目的協(xié)議元素集存儲區(qū);執(zhí)行步驟Bll ;
[0126]步驟BI 1、生成目的協(xié)議必選元素;執(zhí)行步驟B12 ;
[0127]步驟B12、生成目的協(xié)議可選元素;執(zhí)行步驟B13 ;
[0128]步驟B13、輸出包含信號量SEM_0ut的數(shù)據(jù)包,,執(zhí)行步驟B2。
[0129]本實施方式中,下行協(xié)議轉換線程從隊列QUE_0ut中取出對象的對象號,然后定位對象的協(xié)議描述信息和對象的實例化區(qū)域,在下行協(xié)議轉換線程中設置資源對象緩沖區(qū)緩存對象數(shù)據(jù),函數(shù)處理過程在資源對象緩沖區(qū)和目的協(xié)議集存儲區(qū)之間進行,先生成必選元素,再生成可選元素。與上行協(xié)議轉換線程不同,下行協(xié)議轉換線程不是按照元素在協(xié)議描述信息中的索引號存儲元素值,而是依次存儲生成的必選元素和可選元素,以方便數(shù)據(jù)包的輸出。[0130]【具體實施方式】八:參見圖1至8說明本實施方式,本實施方式與【具體實施方式】七所述的一種通用的協(xié)議轉換方法的區(qū)別在于,所述的TCP數(shù)據(jù)包裝配線程的處理過程為,
[0131]步驟Cl、初始化從上行協(xié)議轉換線程發(fā)來的數(shù)據(jù);執(zhí)行步驟C2 ;
[0132]步驟C2、利用函數(shù)pend(SEM_In)的等待信號量SEM_In,待信號量SEM_In來到后,用于激活TCP數(shù)據(jù)包裝配線程,執(zhí)行步驟C3 ;
[0133]步驟C3、利用函數(shù)get (QUE_In)獲得隊列QUE_In尾的元素項,即得到資源對象的對象號,執(zhí)行步驟C4 ;
[0134]步驟C4、判斷資源接入設備是否加入試驗系統(tǒng),結果為真,執(zhí)行步驟C5,結果為假,執(zhí)行步驟C2;
[0135]步驟C5、分配或者調整資源對象存儲區(qū),執(zhí)行步驟C6 ;
[0136]步驟C6、拷貝資源對象至緩存區(qū),執(zhí)行步驟C7 ;
[0137]步驟C7、獲取發(fā)布列表節(jié)點,執(zhí)行步驟C8 ;
[0138]步驟CS、判斷是否遍歷完成發(fā)布列表,結果為真,執(zhí)行步驟C2,結果為假,執(zhí)行步驟C9 ;
[0139]步驟C9、判斷成員已運行,是否未連接,結果為真,執(zhí)行步驟C10,結果為假,執(zhí)行步驟步驟Cll ;
[0140]步驟C10、發(fā)送連接命令并等待,執(zhí)行步驟Cll ;
[0141]步驟CU、判斷資源對象號是否相符,結果為真,執(zhí)行步驟C12,結果為假,執(zhí)行步驟C7 ;
[0142]步驟C12、判斷成員已運行,且連接,結果為真,執(zhí)行步驟C13,結果為假,執(zhí)行步驟C7 ;
[0143]步驟C13、裝配屬性值更新消息包或對象值更新消息包,執(zhí)行步驟C14 ;
[0144]步驟C14、利用函數(shù)put (QUE_SndTcp)在隊列QUE_SndTcp尾添加元素項,執(zhí)行步驟 C15 ;
[0145]步驟C15、利用函數(shù)post (SEM_SndTcp)的發(fā)送信號量SEM_SndTcp,執(zhí)行步驟C7。
[0146]本實施方式中,TCP數(shù)據(jù)包裝配線程激活后,確定更新的對象,然后遍歷發(fā)布列表,將更新后的數(shù)據(jù)發(fā)送到訂購了這個對象或者相關屬性的成員,發(fā)送消息包前若檢測到尚未建立連接,則首先向TCP發(fā)送線程發(fā)送創(chuàng)建連接命令。
[0147]TCP數(shù)據(jù)包裝配線程設置資源對象緩沖區(qū),將資源對象實例化區(qū)的內容拷貝至該區(qū)域,使得在發(fā)布對象值或屬性值更新消息期間,上行協(xié)議轉換過程仍可更新實例化區(qū)域,即發(fā)布過程和更新過程互不影響。在操作資源對象實例化區(qū)時,伴隨獲取和釋放資源鎖LCK_0bjIn,從而保證對實例化區(qū)域操作的原子性。發(fā)送連接命令后,當發(fā)送的信號量有效時,表明成功建立連接。
[0148]【具體實施方式】九:參見圖1至9說明本實施方式,本實施方式與【具體實施方式】八所述的一種通用的協(xié)議轉換方法的區(qū)別在于,所述的TCP數(shù)據(jù)包處理線程的處理過程為,
[0149]步驟D1、利用函數(shù)pend (SEM_RevTcp)的等待信號量SEM_RevTcp,待信號量SEM_RevTcp來到后,用于激活TCP數(shù)據(jù)包處理線程,執(zhí)行步驟D2 ;
[0150]步驟D2、利用函數(shù)get (QUE_RcvTcp)得到隊列QUE_RcvTcp尾的元素項,執(zhí)行步驟D3 ;[0151]步驟D3、獲取數(shù)據(jù)包類型,執(zhí)行步驟D4 ;
[0152]步驟D4、判斷數(shù)據(jù)包類型,當數(shù)據(jù)包類型為屬性值數(shù)據(jù)包時,執(zhí)行步驟D5,當數(shù)據(jù)包類型為對象值數(shù)據(jù)包時,執(zhí)行步驟D6 ;
[0153]步驟D5、對屬性值數(shù)據(jù)包進行解析,執(zhí)行步驟D51 ;
[0154]步驟D51、進行查找成員訂購表記錄,執(zhí)行步驟D52 ;
[0155]步驟D52、判斷是否完成查找成員訂購表記錄,結果為真,執(zhí)行步驟D1,結果為假,執(zhí)行步驟D53 ;
[0156]步驟D53、獲取源對象號、協(xié)議索引號,執(zhí)行步驟D54 ;
[0157]步驟D54、更新資源對象屬性值,執(zhí)行步驟D55 ;
[0158]步驟D55、清除更新狀態(tài)比特位,執(zhí)行步驟D56 ;
[0159]步驟D56、判斷更新狀態(tài)是否為O,結果為真,執(zhí)彳了步驟D57,結果為假,執(zhí)彳了步驟D51 ;
[0160]步驟D57,利用函數(shù)put(QUE_0ut)在隊列QUE_0ut尾添加元素項,執(zhí)行步驟D58 ;
[0161]步驟D58、通過函數(shù)post(SEM_0ut)發(fā)送信號量SEM_0ut,執(zhí)行步驟D59 ;
[0162]步驟D59、設置對象屬性值更新狀態(tài),執(zhí)行步驟D51 ;
[0163]步驟D6、對對象值數(shù)據(jù)包進行解析,執(zhí)行步驟D61 ;
[0164]步驟D61、進行查找成員訂購表記錄,執(zhí)行步驟D62 ;
[0165]步驟D62、判斷是否完成查找成員訂購表記錄,結果為真,執(zhí)行步驟D1,結果為假,執(zhí)行步驟D63 ;
[0166]步驟D63、獲取資源對象號、協(xié)議索引號,執(zhí)行步驟D64 ;
[0167]步驟D64、更新資源對象,執(zhí)行步驟D65 ;
[0168]步驟D65、利用函數(shù)put(QUE_0ut)在隊列QUE_0ut尾添加元素項,執(zhí)行步驟D66 ;
[0169]步驟D66、通過函數(shù)post (SEM_0ut)發(fā)送信號量SEM_0ut,執(zhí)行步驟D67 ;
[0170]步驟D67、設置對象值更新狀態(tài),執(zhí)行步驟D61。
[0171]本實施方式中,TCP數(shù)據(jù)包處理線程解析接收到的數(shù)據(jù)包,如果是對象值更新消息包,則查詢訂購列表并更新對象實例化區(qū)域,然后將對象的對象號添加到QUE_0ut隊列,再激活下行協(xié)議轉換線程將對象轉換為硬件協(xié)議數(shù)據(jù)包;如果是屬性值更新消息包,則根據(jù)訂購列表的查詢結果更新對象的部分實例化區(qū)域,然后清除更新狀態(tài)的相應比特位,當更新狀態(tài)的各比特位都被清除時,將對象的對象號添加到QUE_0ut隊列,并激活下行協(xié)議轉換線程執(zhí)行,更新對象實例化區(qū)域時,需要使用資源鎖LCK_0bj0ut進行保護。
[0172]【具體實施方式】十:參見圖1至10說明本實施方式,本實施方式與【具體實施方式】五所述的一種通用的協(xié)議轉換方法的區(qū)別在于,所述的協(xié)議存儲及加載模塊5-1的處理過程為,
[0173]步驟E1、調用freeGInfo過程釋放上次執(zhí)行時為glnfo變量分配的存儲空間,執(zhí)行步驟E2 ;
[0174]步驟E2,為glnf0.raw分配存儲區(qū),執(zhí)行步驟E3 ;
[0175]步驟E3、拷貝協(xié)議描述文件內容至glnf0.raw指向區(qū)域,執(zhí)行步驟E4 ;
[0176]步驟E4、給*gInf0.raw的指針賦值為glnf0.protoNum,執(zhí)行步驟E5 ;
[0177]步驟E5、給* (glnf0.raw+2)的指針賦值為glnf0.resNum,執(zhí)行步驟E6 ;[0178]步驟E6、為glnf0.reslnfos分配存儲區(qū),并初始化該存儲區(qū)使內容為0,執(zhí)行步驟E7 ;
[0179]步驟E7、為glnf0.protoinfos分配存儲區(qū),并初始化該存儲區(qū)使內容為0,執(zhí)行步驟E8 ;
[0180]步驟E8、設置glnf0.reslnfos數(shù)組的值,執(zhí)行步驟E9 ;
[0181]步驟E9、設置glnf0.protoinfos數(shù)組的值,執(zhí)行步驟ElO ;
[0182]步驟E10、設置FPGA幀頭數(shù)據(jù)區(qū)域,處理完成。
[0183]本實施方式中,可根據(jù)虛擬仿真系統(tǒng)及實裝設備的數(shù)據(jù)格式生成對應的協(xié)議描述文件,動態(tài)加載到本發(fā)明裝置中,并存儲在FLASH中,當協(xié)議固定后,上電后可將FLASH中的協(xié)議信息自動加載到FPGA的協(xié)議匹配單元及DSP協(xié)議解析軟件中。如果實裝設備協(xié)議格式改變,可重新生成協(xié)議描述文件,并重新加載到FLASH中。由此,既實現(xiàn)了對不同實裝設備的通用性,又保證了針對同一實裝設備只需一次加載協(xié)議描述文件。
[0184]協(xié)議描述文件包含了協(xié)議的數(shù)目、對象的數(shù)目、各協(xié)議的描述信息、對象項信息(ResItem)多種信息。該文件的數(shù)據(jù)使用二進制形式存放。
[0185]執(zhí)行協(xié)議描述信息加載(更新)過程,將信息加載至全局唯一的GlobalInfo變量glnfo中。由于協(xié)議描述文件按預定義的二進制格式存儲信息,因此加載(更新)的過程主要包含內存空間分配、指針賦值(內存區(qū)域映射)等操作。協(xié)議描述信息加載(更新)過程(getGInfo)的流程圖1 0所示。
[0186]在每次執(zhí)行協(xié)議描述信息加載過程時,首先調用freeGInfo過程釋放上次執(zhí)行時為glnfo變量分配的一系列存儲空間。然后分別加載對象項信息數(shù)組和協(xié)議信息數(shù)組,并設置協(xié)議的屬性名稱列表指針。最后,初始化FPGA幀頭數(shù)據(jù)存儲區(qū)域,為協(xié)議匹配做好準備。
[0187]【具體實施方式】十一:參見圖1說明本實施方式,本實施方式與【具體實施方式】一所述的一種通用的協(xié)議轉換方法的區(qū)別在于,所述的存儲器6包括EPCS模塊6-1、Flash模塊6-2 和 SDRAM 模塊 6-3,
[0188]所述的EPCS模塊6-1的信號輸出端為存儲器6的配置數(shù)據(jù)信號輸出端;
[0189]Flash模塊6_2的信號輸出端為存儲器6的協(xié)議描述文件信號輸出端;
[0190]SDRAM模塊6-3的信號輸入輸出端為存儲器6的存儲信號輸入輸出端。
【權利要求】
1.一種通用的協(xié)議轉換裝置,其特征在于,它包括兩個JTAG接口模塊(I )、96針擴展接口模塊(2)、RJ45接口模塊(3)、FPGA (4)、信號處理器(5)和存儲器(6), 所述的其中一個JTAG接口模塊(I)的燒寫程序信號輸出端與FPGA (4)燒寫程序信號輸入端連接,另一個JTAG接口模塊(I)的燒寫程序信號輸出端與信號處理器(5)燒寫程序信號輸入端連接, 96針擴展接口模塊(2)的上行協(xié)議數(shù)據(jù)信號輸出端與FPGA (4)上行協(xié)議數(shù)據(jù)信號輸入端連接,96針擴展接口模塊(2)的下行協(xié)議數(shù)據(jù)信號輸入端與FPGA (4)下行協(xié)議數(shù)據(jù)信號輸出端連接, FPGA (4)的中斷信號輸出端與信號處理器(5)的中斷信號輸入端連接,F(xiàn)PGA (4)的匹配結果信號輸出端與信號處理器(5)的匹配結果信號輸入端連接,F(xiàn)PGA (4)的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器(5)的上下協(xié)議數(shù)據(jù)輸入輸出端連接, 存儲器(6)的配置數(shù)據(jù)信號輸出端與FPGA (4)的配置數(shù)據(jù)信號輸入端連接,所述的存儲器(6)的協(xié)議描述文件信號輸出端同時與FPGA (4)的協(xié)議描述文件信號輸入端和信號處理器(5)的協(xié)議描述文件信號輸入端連接,所述的存儲器(6)的存儲信號輸入輸出端與信號處理器(5)的存儲信號輸入輸出端連接,所述的RJ45接口模塊(3)的上位機通信信號輸入輸出端與信號處理器(5 )的上位機通信信號輸入輸出端連接。
2.根據(jù)權利要求1所述的一種通用的協(xié)議轉換裝置,其特征在于,所述的FPGA(4)包括接收緩存單元(4-1)、協(xié)議匹配模塊(4-2)、寄存器模塊(4-3)和發(fā)送緩存單元(4-4), 所述的接收緩存單元(4-1)的數(shù)據(jù)信號輸入端與協(xié)議匹配模塊(4-2)數(shù)據(jù)信號輸入端連接后作為FPGA (4)上行協(xié)議數(shù)據(jù)信號輸入端,接收緩存單元(4-1)的上行協(xié)議數(shù)據(jù)信號輸入端和發(fā)送緩存單`元(4-4)下行協(xié)議數(shù)據(jù)信號輸入均作為FPGA (4)的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器(5)的上下協(xié)議數(shù)據(jù)輸入輸出端連接, 發(fā)送緩存單元(4-4)的數(shù)據(jù)信號輸出端作為FPGA (4)下行協(xié)議數(shù)據(jù)信號輸出端, 寄存器模塊(4-3)的中斷信號輸出端作為FPGA (4)的中斷信號輸出端, 寄存器模塊(4-3)的匹配結果信號輸出端作為FPGA (4)的匹配結果信號輸出端。
3.根據(jù)權利要求2所述的一種通用的協(xié)議轉換裝置,其特征在于,所述的協(xié)議匹配模塊(4-2)的獲得過程為,將64個協(xié)議匹配單元(4-2-1)組成協(xié)議匹配單元陣列,所述的協(xié)議匹配單元陣列加上輔助功能邏輯,最終得到協(xié)議匹配模塊(4-2); 協(xié)議匹配單元(4-2-1)用于將接收到的上行協(xié)議數(shù)據(jù)信號進行協(xié)議匹配,并將匹配結果發(fā)送給信號處理器(5)的匹配結果信號輸入端, 所述的輔助功能邏輯包括64位與模塊、64位或模塊、64位優(yōu)先級編碼器和8位觸發(fā)器, 64位優(yōu)先級編碼器對match_ris進行優(yōu)先級編碼,match_ris為匹配出現(xiàn)信號, 64位與模塊使用兩級8位與模塊實現(xiàn),64位與模塊用于將接收到的done信號進行與運算,獲得所有匹配是否完成信號alldone和其上升沿信號alldone_ris ;所述的done為匹配完成信號; 64位或模塊使用兩級8位或模塊實現(xiàn),64位或模塊用于將接收到的match信號進行或運算,獲得最終匹配結果信號hasmatch,所述的match為匹配結果信號; 64位優(yōu)先級編碼器基于16位優(yōu)先級編碼器級聯(lián)構成,所述的64位優(yōu)先級編碼器基于16位優(yōu)先級編碼器級聯(lián)構成的具體過程為,首先由16位優(yōu)先級編碼器級聯(lián)構成32位優(yōu)先級編碼器,然后由32位優(yōu)先級編碼器級聯(lián)構成64位優(yōu)先級編碼器; 所述的協(xié)議匹配單元(4-2-1)包括字節(jié)計數(shù)器、幀頭數(shù)據(jù)區(qū)、比較單元、匹配完成信號生成邏輯、匹配信號生成邏輯和上升沿檢測邏輯, 協(xié)議匹配單元(4-2-1)進行協(xié)議匹配的具體過程為,字節(jié)計數(shù)器對數(shù)據(jù)包字節(jié)計數(shù),直到計數(shù)值與幀頭長度相等為止,根據(jù)計數(shù)值從幀頭數(shù)據(jù)區(qū)取出幀頭字節(jié), 中貞頭字節(jié)與數(shù)據(jù)包字節(jié)在比較單元中進行比較獲得result,并將result同時發(fā)送至匹配完成信號生成邏輯和匹配信號生成邏輯,其中,result為比較結果信號, 比較單元是帶記憶功能的比較模塊,它能保存上次比較的結果, 當匹配結束時,匹配完成信號生成邏輯輸出的done有效; 當數(shù)據(jù)包與某幀頭匹配時,匹配信號生成邏輯輸出的match有效,并將match作為上升沿檢測邏輯的輸入,得到matchjis ; 所述的幀頭數(shù)據(jù)區(qū)是包含16個字節(jié)空間的存儲區(qū),存儲一個協(xié)議幀頭的信息,其中,第一個字節(jié)存儲幀頭的長度,其余15個字節(jié)依次存儲幀頭內容。
4.根據(jù)權利要求1、2或3所述的一種通用的協(xié)議轉換裝置,其特征在于,所述的信號處理器(5)采用TMS320DM 642型DSP處理器實現(xiàn),F(xiàn)PGA(4)是采用Altera公司的EP3C55F484I7型 FPGA。
5.一種通用的協(xié)議轉換方法,它是基于下述裝置實現(xiàn)的,所述裝置包括兩個JTAG接口模塊(I)、96針擴展接口模塊(2 )、RJ45接口模塊(3 )、FPGA (4 )、信號處理器(5 )和存儲器(6), 其中一個JTAG接口模塊(I)的燒寫程序信號輸出端與FPGA (4)燒寫程序信號輸入端連接,另一個JTAG接口模塊(I)的燒寫程序信號輸出端與信號處理器(5)燒寫程序信號輸入端連接, 96針擴展接口模塊(2)的上行協(xié)議數(shù)據(jù)信號輸出端與FPGA (4)上行協(xié)議數(shù)據(jù)信號輸入端連接,96針擴展接口模塊(2)的下行協(xié)議數(shù)據(jù)信號輸入端與FPGA (4)下行協(xié)議數(shù)據(jù)信號輸出端連接, FPGA (4)的中斷信號輸出端與信號處理器(5)的中斷信號輸入端連接,F(xiàn)PGA (4)的匹配結果信號輸出端與信號處理器(5)的匹配結果信號輸入端連接,F(xiàn)PGA (4)的上下協(xié)議數(shù)據(jù)輸入輸出端與信號處理器(5)的上下協(xié)議數(shù)據(jù)輸入輸出端連接, 存儲器(6)的配置數(shù)據(jù)信號輸出端與FPGA (4)的配置數(shù)據(jù)信號輸入端連接,所述的存儲器(6)的協(xié)議描述文件信號輸出端同時與FPGA (4)的協(xié)議描述文件信號輸入端和信號處理器(5)的協(xié)議描述文件信號輸入端連接,所述的存儲器(6)的存儲信號輸入輸出端與信號處理器(5)的存儲信號輸入輸出端連接,所述的RJ45接口模塊(3)的上位機通信信號輸入輸出端與信號處理器(5)的上位機通信信號輸入輸出端連接; 信號處理器(5 )包括協(xié)議轉換模塊(5-2 )、TCP網絡接口模塊(5-3 )和協(xié)議存儲及加載模塊5-1, 協(xié)議存儲及加載模塊(5-1)通過從存儲器(6)中讀寫協(xié)議描述文件,用于加載或存儲協(xié)議描述文件,為協(xié)議轉換做準備; 協(xié)議轉換模塊(5-2),用于對協(xié)議數(shù)據(jù)包進行元素位置重排和函數(shù)處理操作,將試驗設備的硬件數(shù)據(jù)包轉換為可供虛擬試驗系統(tǒng)使用的資源,并把虛擬試驗系統(tǒng)的資源轉換為試驗設備識別的硬件數(shù)據(jù)包; TCP網絡接口模塊(5-3),用于使接入的試驗設備與虛擬試驗系統(tǒng)之間進行資源獨立交互, 該通用的協(xié)議轉換方法是由嵌入在信號處理器(5)中軟件實現(xiàn)的,所述軟件依托于DSP/BIOS操作系統(tǒng),其特征在于, 所述通用的協(xié)議轉換方法是通過在協(xié)議轉換模塊(5-2)中嵌入的多線程技術實現(xiàn),具體包括以下多個線程: 數(shù)據(jù)包接收中斷處理線程、上行協(xié)議轉換線程、下行協(xié)議轉換線程、TCP數(shù)據(jù)包裝配線程和TCP數(shù)據(jù)包處理線程, 上行協(xié)議轉換線程,用于將實裝設備數(shù)據(jù)轉換成虛擬試驗系統(tǒng)所需數(shù)據(jù),獲得SEM_In、QUE_In 和 LCK_In ; 下行協(xié)議轉換線程,用于將虛擬試驗系統(tǒng)發(fā)送的數(shù)據(jù)轉換成實裝設備所需數(shù)據(jù), 數(shù)據(jù)包接收中斷處理線程,利用接收到的中斷信號激活上行協(xié)議轉換線程,通過使用信號量 SEM_PacketReady 實現(xiàn), TCP數(shù)據(jù)包裝配線程,用于將接收到的上行協(xié)議轉換線程處理后的信號發(fā)送到虛擬試驗系統(tǒng)中訂購了這個對象或者相關屬性的成員, TCP數(shù)據(jù)包處理線程,解析從虛擬試驗系統(tǒng)中接收到的數(shù)據(jù)包,該線程發(fā)出SEM_Out、QUE_Out和LCK_Out,且SEM_Out用于激活下行協(xié)議轉換線程; 其中,SEM_In表示輸入信`號量,用于線程同步和互斥,有計數(shù)功能; QUE_In表示輸入隊列,用于實現(xiàn)線程間同步和資源的共享; LCK_In表示輸入資源鎖,用于實現(xiàn)對共享資源的互斥; SEM_Out表示輸出信號量,用于線程同步和互斥,有計數(shù)功能; QUE_Out表示輸出隊列,用于實現(xiàn)線程間同步和資源的共享; LCK_Out表示輸出資源鎖,用于實現(xiàn)對共享資源的互斥。
6.根據(jù)權利要求5所述的一種通用的協(xié)議轉換方法,其特征在于,所述的上行協(xié)議轉換線程的處理過程為, 步驟Al、初始化從FPGA4發(fā)送過來的硬件應用協(xié)議數(shù)據(jù)包,執(zhí)行步驟A2 ; 步驟A2、利用函數(shù)pend (SEM_PacketReady)的等待信號量SEM_PacketReady,待信號量SEM_PacketReady來到后,用于激活上行協(xié)議轉換線程,執(zhí)行步驟A3 ; 步驟A3、讀取數(shù)據(jù)包長度和協(xié)議信號,執(zhí)行步驟四; 步驟A4、判斷數(shù)據(jù)包長度==0或協(xié)議信號==0xFFF,結果為真,執(zhí)行步驟A2,否則執(zhí)行步驟A5 ; 步驟A5、定位源協(xié)議和目的協(xié)議描述信息,執(zhí)行步驟A6 ; 步驟A6、分配或者調整原協(xié)議元素集存儲區(qū),執(zhí)行步驟A7 ; 步驟A7、元素集存儲區(qū)清0,執(zhí)行步驟AS ; 步驟AS、解析源協(xié)議元素,執(zhí)行步驟A9 ; 步驟A9、分配或者調整資源對象緩存區(qū),執(zhí)行步驟AlO ; 步驟A10、拷貝資源對象至緩沖區(qū),執(zhí)行步驟All ;步驟Al 1、函數(shù)處理,將資源對象的數(shù)據(jù)格式轉化成源協(xié)議的數(shù)據(jù)格式,執(zhí)行步驟A12 ;步驟A12、函數(shù)處理完成后,資源對象內容得到更新,再將緩沖區(qū)的內容拷貝至資源對象實例化區(qū),執(zhí)行步驟A13; 步驟A13、通過函數(shù)put (QUE_In)在隊列QUE_In尾添加元素項,執(zhí)行步驟A14 ; 步驟A14、通過函數(shù)post(SEM_In)發(fā)送信號量SEM_In,執(zhí)行步驟A2。
7.根據(jù)權利要求6所述的一種通用的協(xié)議轉換方法,其特征在于,所述的下行協(xié)議轉換線程的處理過程為, 步驟B1、初始化TCP數(shù)據(jù)包處理線程發(fā)送過來的數(shù)據(jù),執(zhí)行步驟B2 ; 步驟B2、利用函數(shù)pend (SEM_Out)的等待信號量SEM_Out,待信號量SEM_Out來到后,用于激活下行協(xié)議轉換線程,執(zhí)行步驟B3 ; 步驟B3、利用函數(shù)get (QUE_Out)得到隊列QUE_Out尾的元素項,執(zhí)行步驟B4 ; 步驟B4、定位原協(xié)議描述信息,執(zhí)行步驟B5 ; 步驟B5、定位目的協(xié)議描述信息,執(zhí)行步驟B6 ; 步驟B6、分配或者調整資源對象緩存區(qū),執(zhí)行步驟B7 ; 步驟B7、利用函數(shù)pend (LCK_ObjOut)鎖住資源對象直至拷貝完成,執(zhí)行步驟B8 ; 步驟B8、拷貝資源對象從實例化區(qū)至緩沖區(qū),執(zhí)行步驟B9 ; 步驟B9、利用函數(shù)post (LCK_0bj0ut)鎖住資源對象直至拷貝完成,執(zhí)行步驟BlO ; 步驟B10、分配或者調整`目的協(xié)議元素集存儲區(qū);執(zhí)行步驟Bll ; 步驟BI 1、生成目的協(xié)議必選元素;執(zhí)行步驟B12 ; 步驟B12、生成目的協(xié)議可選元素;執(zhí)行步驟B13 ; 步驟B13、輸出包含信號量SEM_0ut的數(shù)據(jù)包,,執(zhí)行步驟B2。
8.根據(jù)權利要求7所述的一種通用的協(xié)議轉換方法,其特征在于,所述的TCP數(shù)據(jù)包裝配線程的處理過程為, 步驟Cl、初始化從上行協(xié)議轉換線程發(fā)來的數(shù)據(jù);執(zhí)行步驟C2 ; 步驟C2、利用函數(shù)pend (SEM_In)的等待信號量SEM_In,待信號量SEM_In來到后,用于激活TCP數(shù)據(jù)包裝配線程,執(zhí)行步驟C3 ; 步驟C3、利用函數(shù)get (QUE_In)獲得隊列QUE_In尾的元素項,執(zhí)行步驟C4 ; 步驟C4、判斷資源接入設備是否加入試驗系統(tǒng),結果為真,執(zhí)行步驟C5,結果為假,執(zhí)行步驟C2 ; 步驟C5、分配或者調整資源對象存儲區(qū),執(zhí)行步驟C6 ; 步驟C6、拷貝資源對象至緩存區(qū),執(zhí)行步驟C7 ; 步驟C7、獲取發(fā)布列表節(jié)點,執(zhí)行步驟C8 ; 步驟CS、判斷是否遍歷完成發(fā)布列表,結果為真,執(zhí)行步驟C2,結果為假,執(zhí)行步驟C9 ;步驟C9、判斷成員已運行,是否未連接,結果為真,執(zhí)行步驟C10,結果為假,執(zhí)行步驟步驟Cll ; 步驟C10、發(fā)送連接命令并等待,執(zhí)行步驟Cll ; 步驟CU、判斷資源對象號是否相符,結果為真,執(zhí)行步驟C12,結果為假,執(zhí)行步驟C7 ;步驟C12、判斷成員已運行,且連接,結果為真,執(zhí)行步驟C13,結果為假,執(zhí)行步驟C7 ;步驟C13、裝配屬性值更新消息包或對象值更新消息包,執(zhí)行步驟C14 ;步驟C14、利用函數(shù)put (QUE_SndTcp)在隊列QUE_SndTcp尾添加元素項,執(zhí)行步驟C15 ; 步驟C15、利用函數(shù)post (SEM_SndTcp)的發(fā)送信號量SEM_SndTcp,執(zhí)行步驟C7。
9.根據(jù)權利要求8所述的一種通用的協(xié)議轉換方法,其特征在于,所述的TCP數(shù)據(jù)包處理線程的處理過程為, 步驟Dl、利用函數(shù)pend( SEM_RevTcp)的等待信號量SEM_RevTcp,待信號量SEM_RevTcp來到后,用于激活TCP數(shù)據(jù)包處理線程,執(zhí)行步驟D2 ; 步驟D2、利用函數(shù)get (QUE_RcvTcp)得到隊列QUE_RcvTcp尾的元素項,執(zhí)行步驟D3 ; 步驟D3、獲取數(shù)據(jù)包類型,執(zhí)行步驟D4 ; 步驟D4、判斷數(shù)據(jù)包類型,當數(shù)據(jù)包類型為屬性值數(shù)據(jù)包時,執(zhí)行步驟D5,當數(shù)據(jù)包類型為對象值數(shù)據(jù)包時,執(zhí)行步驟D6 ; 步驟D5、對屬性值數(shù)據(jù)包進行解析,執(zhí)行步驟D51 ; 步驟D51、進行查找成員訂購表記錄,執(zhí)行步驟D52 ; 步驟D52、判斷是否完成查找成員訂購表記錄,結果為真,執(zhí)行步驟D1,結果為假,執(zhí)行步驟D53 ; 步驟D53、獲取源對象號、協(xié)議索引號,執(zhí)行步驟D54 ; 步驟D54、更新資源對象屬性值,執(zhí)行步驟D55 ;` 步驟D55、清除更新狀態(tài)比特位,執(zhí)行步驟D56 ; 步驟D56、判斷更新狀態(tài)是否為0,結果為真,執(zhí)行步驟D57,結果為假,執(zhí)行步驟D51 ; 步驟D57,利用函數(shù)put (QUE_0ut)在隊列QUE_0ut尾添加元素項,執(zhí)行步驟D58 ; 步驟D58、通過函數(shù)post (SEM_0ut)發(fā)送信號量SEM_0ut,執(zhí)行步驟D59 ; 步驟D59、設置對象屬性值更新狀態(tài),執(zhí)行步驟D51 ; 步驟D6、對對象值數(shù)據(jù)包進行解析,執(zhí)行步驟D61 ; 步驟D61、進行查找成員訂購表記錄,執(zhí)行步驟D62 ; 步驟D62、判斷是否完成查找成員訂購表記錄,結果為真,執(zhí)行步驟D1,結果為假,執(zhí)行步驟D63 ; 步驟D63、獲取資源對象號、協(xié)議索引號,執(zhí)行步驟D64 ; 步驟D64、更新資源對象,執(zhí)行步驟D65 ; 步驟D65、利用函數(shù)put (QUE_0ut)在隊列QUE_0ut尾添加元素項,執(zhí)行步驟D66 ; 步驟D66、通過函數(shù)post(SEM_Out)發(fā)送信號量SEM_0ut,執(zhí)行步驟D67 ; 步驟D67、設置對象值更新狀態(tài),執(zhí)行步驟D61。
10.根據(jù)權利要求5所述的一種通用的協(xié)議轉換方法,其特征在于,所述的協(xié)議存儲及加載模塊(5-1)的處理過程為, 步驟E1、調用freeGInfo過程釋放上次執(zhí)行時為glnfo變量分配的存儲空間,執(zhí)行步驟E2 ; 步驟E2,為glnf0.raw分配存儲區(qū),執(zhí)行步驟E3 ; 步驟E3、拷貝協(xié)議描述文件內容至glnf0.raw指向區(qū)域,執(zhí)行步驟E4 ; 步驟E4、給*gInf0.raw的指針賦值為glnf0.protoNum,執(zhí)行步驟E5 ; 步驟E5、給* (glnf0.raw+2)的指針賦值為glnf0.resNum,執(zhí)行步驟E6 ;步驟E6、為glnf0.reslnfos分配存儲區(qū),并初始化該存儲區(qū)使內容為0,執(zhí)行步驟E7 ;步驟E7、為glnf0.protoinfos分配存儲區(qū),并初始化該存儲區(qū)使內容為0,執(zhí)行步驟
E8 ;步驟E8、設置glnf0.reslnfos數(shù)組的值,執(zhí)行步驟E9 ;步驟E9、設置glnf0.protoinfos數(shù)組的值,執(zhí)行步驟ElO ;步驟E10、設置FPGA幀頭 數(shù)據(jù)區(qū)域,處理完成。
【文檔編號】H04L29/06GK103685292SQ201310711623
【公開日】2014年3月26日 申請日期:2013年12月20日 優(yōu)先權日:2013年12月20日
【發(fā)明者】魏長安, 許永輝, 趙嘉宇, 謝東周, 鄧舒予, 姜守達 申請人:哈爾濱工業(yè)大學
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1