安國臣,劉家男,馬洪濤
(河北科技大學,河北 石家莊 050000)
隨著衛(wèi)星通信技術的發(fā)展,數據的透明轉發(fā)已經不能滿足現階段的衛(wèi)星通信的需求,融合星上交換、星上路由等技術實現衛(wèi)星通信業(yè)務的全IP化,進而提高了系統(tǒng)的靈活性和可靠性[1,2]。為了滿足衛(wèi)星通信領域的有效性和可靠性,采用專用通信協(xié)議。本系統(tǒng)實現了以太網協(xié)議和自定義專用鏈路協(xié)議之間的協(xié)議轉換,為衛(wèi)星通信提供了可靠的保障。
系統(tǒng)采用Xilinx公司Virtex5系列的FPGA芯片作為核心芯片,通過對4路以太網數據的輪詢、拆包、拼幀和合包等處理,完成了以太網協(xié)議與專業(yè)鏈路協(xié)議之間的相互轉換功能。
根據系統(tǒng)功能需求系統(tǒng)分為數據上行和數據下行兩部分,其中數據上行部分負責從網絡測試儀中接收以太網數據包,對其拆包、拼幀等處理,完成對以太網協(xié)議與專用鏈路協(xié)議之間的轉換等功能,并由LVDS接口發(fā)送到星上設備;數據下行部分與之相反,負責接收專用鏈路數據包,對其合包、拼幀等處理,完成對專用鏈路協(xié)議與以太網協(xié)議的轉換等功能,并通過網口發(fā)送回網絡測試儀。
數據上行部分負責完成以太網協(xié)議與專用鏈路數據協(xié)議的轉換功能,在其結構上可以分為以下3部分:接收部分、協(xié)議轉換部分和發(fā)送部分,其結構框圖,如圖1所示。
圖1 數據上行部分設計框圖
由圖1可知,數據上行分成了3個獨立模塊:MAC接收模塊、拆包拼幀模塊和發(fā)送模塊,各模塊功能具體詳述如下。① MAC接收模塊負責從網口接收以太網數據包,并完成包過濾、幀長計算和CRC校驗等處理。對校驗通過的數據包提取源MAC地址、目的MAC地址、幀類型、源IP地址和目的IP地址等信息,并將其存入幀頭FIFO存儲器中,其余數據信息存入數據FIFO存儲器中。② 拆包拼幀模塊負責輪詢接收來自上一級模塊FIFO中的幀頭、幀長和數據信息,并根據讀取的幀長信息對數據進行拆包處理,將其分成數組256字節(jié)小包數據,存入數據FIFO存儲器中,然后根據幀頭信息中的源MAC地址和源IP地址拼出專用鏈路數據幀頭,并將其存入幀頭FIFO存儲器中[3]。需要注意的是當最后一組數據不足256字節(jié)時,需通過補零將數據補充完整[4]。③ 發(fā)送模塊負責接收來自拆包拼幀模塊中的并行數據,并經過并串轉換處理,將串行數據發(fā)送到星上設備。
與數據上行部分相反,數據下行部分負責完成專用鏈路協(xié)議與以太網協(xié)議轉換功能,在其結構上也分為3部分:接收部分、協(xié)議轉換部分和發(fā)送部分,其結構框圖,如圖2所示。
如圖2可知,數據下行分成了3個獨立模塊:LVDS接收模塊、合包拼幀模塊和MAC發(fā)送模塊,各模塊功能具體詳述如下。① 接收模塊負責從LVDS口接收串行數據,經過串并轉換處理,將數據包拆分為幀頭和數據,并完成幀長計算,將其存入相應FIFO存儲器之中。② 合包拼幀模塊負責從LVDS接收模塊讀取FIFO存儲器中的幀頭、幀長和數據信息。根據幀頭信息中的目的站地址,添加設定好的以太網數據包頭,并將讀取的小包數據按照順序合成完整的一個以太網數據包。③MAC發(fā)送模塊負責讀取合包拼幀模塊FIFO存儲器中的數據,并根據其解析出來的幀類型輸送到MAC核之中,并從對應的網口輸出。
系統(tǒng)的性能和功能測試采用設備自環(huán)測試方法,并用思博倫Spirent C1網絡測試儀作為發(fā)包設備,在其專用控制軟件Spirent TestCenter Application中配置好端口速率、包類型和協(xié)議格式,完成數據發(fā)包工作[5],測試結果如圖3所示。由圖3可知,網絡測試儀發(fā)送了831720240包,在經過協(xié)議轉換處理和LVDS口自環(huán)后,網絡測試儀接收回來的數據為831720240,不存在丟包現象,達到了專用通信協(xié)議轉換系統(tǒng)的性能要求。
圖3 測試結果
系統(tǒng)采用FPGA作為核心芯片,給出了協(xié)議轉換模塊的詳細設計方案。經過系統(tǒng)驗證,系統(tǒng)實現了以太網協(xié)議和專用通信協(xié)議之間的相互轉化功能,為星上設備提供了可靠的數據源,具有很實用的參考價值和工程價值。