谷曉鵬,楊玉亮,張 然(.海軍指揮所,北京0084;.中國船舶重工集團公司第七二四研究所,南京53)
?
基于VPX的SRIO通信模塊設計
谷曉鵬1,楊玉亮2,張然2
(1.海軍指揮所,北京100841;2.中國船舶重工集團公司第七二四研究所,南京211153)
摘要:針對VPX下SRIO通信的需求,提出一種封裝SRIO通信接口的方法,設計并實現(xiàn)了一種SRIO通信模塊。SRIO通信模塊采用軟件模塊化設計思想,在SRIO通信接口的基礎上設計PowerPC板CPU之間的通用的數(shù)據(jù)通信方式,可實現(xiàn)PowerPC板內、板間的數(shù)據(jù)通信。該模塊以庫函數(shù)形式實現(xiàn)二進制重用,可移植于任意PowerPC程序設計中,實現(xiàn)通信參數(shù)的可視化配置,有利于軟件結構化、模塊化設計。測試分析表明,該模塊具有良好的性能和二進制可重用性。
關鍵詞:通信模塊; VPX; Serial RapidIO;軟件模塊化
隨著技術的進步以及應用性能需求的不斷提高,雷達系統(tǒng)各單元之間的通信對帶寬要求不斷提高。VPX各單元之間的Serial RapidIO(以下簡稱SRIO)總線由于傳輸帶寬的優(yōu)勢,應用越來越廣泛,因此SRIO通信越來越普遍。但是,直接使用SRIO通信接口函數(shù)存在很多不足:
(1)SRIO通信相關接口函數(shù)多,使用不方便,每個軟件人員需花大量時間學習其使用方法;
(2)SRIO通信需要對CPUID、地址、門鈴等進行約定,需各個軟件相關人員進行討論確定;當CPU之間需增加新的報文或者已有CPU與新的CPU進行通信時,整個項目相關人員可能都需對通信模塊程序進行修改;
(3)程序運行過程中,SRIO通信出現(xiàn)收不到數(shù)據(jù)或者數(shù)據(jù)錯誤時很難進行定位和排查;
(4)每個軟件人員對SRIO通信進行設計時未對自身程序的通信速度、穩(wěn)定性等進行系統(tǒng)的測試,很難保證通信的可靠性。
針對上述問題,提出一種封裝SRIO通信接口的方法,設計并實現(xiàn)了一種SRIO通信模塊。該模塊以庫函數(shù)形式實現(xiàn)二進制重用,可移植于任意PowerPC程序設計中,實現(xiàn)通信參數(shù)的可視化配置,有利于軟件結構化、模塊化設計。
VPX機箱中同一PowerPC板各單元之間通過Serial RapidIO高速串行總線進行互連,每個CPU都有一個SRIO接口,通過switch路由于背板。不同PowerPC板間通過機箱中交換板進行互連[1],如圖1所示。
VPX6-8640D的每個RapidIO設備(8640D cpu)都有inbound SRIO memory windows,允許其他RapidIO設備來訪問該設備。同時,還有outbound SRIO memory windows,允許該RapidIO設備去訪問其他設備[2]。
圖1 SRIO通信架構
2.1需求分析與設計
SRIO通信時,首先需要對CPUID、地址、門鈴等進行約定。當通信需求改變時,整個項目相關人員可能都需對通信模塊程序進行修改。針對該問題,本模塊設計并實現(xiàn)了一種通信參數(shù)的可視化配置方法,通過該方法同時增加了模塊的通用性和可移植性
SRIO通信相關接口函數(shù)多,使用不方便,每個軟件人員需花大量時間學習其使用方法。本模塊提出一種封裝SRIO通信接口的方法,有效地解決了該問題。
2.1.1通信參數(shù)的可視化配置方法
(1)配置文件設計
參與通信的CPU采用統(tǒng)一配置文件,完成對CPUID、地址、門鈴等的配置。使用門鈴作為每條配置信息的唯一標識。通信過程中,使用門鈴完成配置信息的索引,進而實現(xiàn)CPU間數(shù)據(jù)到對應地址的映射。
各CPU的發(fā)送和接收窗口個數(shù)均有一定限制(發(fā)送窗8個,接收窗4個),需采用地址偏移方式實現(xiàn)多數(shù)據(jù)報文的通信。配置文件設計過程中,加入發(fā)送窗口和接收窗口建立標識,并通過地址偏移和門鈴的設置實現(xiàn)窗口的復用。
每個CPU可配置多條配置信息,每條配置信息又可實現(xiàn)多種報文的通信。配置信息結構如圖2所示。
圖2 配置信息結構圖
(2)可視化界面設計
參數(shù)配置程序用于生成或修改配置文件,效果如圖3所示。
設置配置文件參數(shù)過程中,當參數(shù)設置不合理時將彈出提示對話框,例如地址越界、地址不對齊、地址重用等錯誤。
2.1.2SRIO通信接口封裝方法[3-4]
該模塊設計提供3個功能模塊: SRIO初始化模塊、SRIO發(fā)送模塊和SRIO接收模塊,分別對應3個功能接口函數(shù)。通信流程如圖4所示。增加新的報文或者增加新的通信CPU時僅需對配置文件進行修改。
圖3 配置文件設置效果圖
圖4 SRIO模塊通信流程
(1)SRIO初始化模塊
初始化模塊主要實現(xiàn)以下功能:
·SRIO接收窗口和發(fā)送窗口的創(chuàng)建;
·SRIO接收緩存區(qū)、信號量、相關變量的初始化;
·SRIO門鈴輸入的初始化,門鈴中斷處理函數(shù)的創(chuàng)建;
·SRIO接收任務的創(chuàng)建。
(2)SRIO發(fā)送模塊
該模塊設計流程為:
·將門鈴作為唯一標識,從配置信息中查找到對應的發(fā)送地址;
·通過DMA傳輸方式,將待發(fā)送數(shù)據(jù)傳輸至發(fā)送地址中,完成數(shù)據(jù)到總線的映射;
·發(fā)送門鈴中斷通知接收端數(shù)據(jù)已更新。
(3)SRIO接收模塊
該模塊設計流程為:
·門鈴中斷輸入函數(shù)接收門鈴;
·判斷門鈴值,啟動門鈴對應的接收任務;
·接收任務讀取對應接收地址中的數(shù)據(jù)值接收緩存區(qū),接收地址通過門鈴值索引得到;
·通過讀取緩存區(qū)接口函數(shù),讀取緩存區(qū)數(shù)據(jù)。
2.2可靠性設計
模塊設計中主要采取了以下幾種方法提高模塊的可靠性:
(1)模塊編譯成庫函數(shù)的形式,僅提供給用戶庫函數(shù)和頭文件;
(2)通過編譯器的強類型檢查,接口參數(shù)使用錯誤時,報送錯誤信息,避免運行過程中產生通信錯誤或者模塊崩潰;
(3)配置文件設置過程中,對各配置參數(shù)的有效性進行檢查,避免了配置的設置參數(shù)無效產生通信錯誤;
(4)通信過程中,數(shù)據(jù)包的最后16位作為校驗位,以檢驗數(shù)據(jù)包的有效性。
(1)可重用性
該模塊通過庫函數(shù)形式,可以實現(xiàn)二進制重用,用戶無需對模塊代碼進行學習和了解,僅通過接口函數(shù)的調用,即可完成相應的SRIO通信。
(2)可靠性
模塊設計過程中充分考慮了可靠性的設計。開發(fā)完成后,對模塊完成了功能、性能和異常的測試,保證軟件具有成熟性、容錯性。
(3)可維護性
通信過程中出現(xiàn)故障時,通過檢查接口調用方式,參數(shù)配置等方式來確定故障位置。硬件升級或應用環(huán)境能力改變,模塊的升級不影響庫函數(shù)的接口簽名,使得模塊易于升級。
4.1模塊功能測試
·測試硬件環(huán)境: VPX插箱,兩塊PowerPC板,1塊交換板,CPU類型:8640D;
·8片CPU接收緩存區(qū)均設置為4 MB,單數(shù)據(jù)包大小設置為1200 B,發(fā)送速度20 MBps,設置配置文件(共56條配置信息),完成每片CPU分別與其他7 片CPU的通信,測試5 min;
·記錄測試結果,發(fā)送接收數(shù)據(jù)一致;
·測試結果表明:參數(shù)配置程序完成了參數(shù)的可視化配置,同時模塊實現(xiàn)了多個CPU之間的數(shù)據(jù)通信。
4.2通信速度測試
測試硬件環(huán)境: VPX插箱,兩塊PowerPC板,1塊交換板,CPU類型:8640D。
4.2.1數(shù)據(jù)分類測試
接收緩存區(qū)大小為64 MB,單數(shù)據(jù)包大小分別為: 1200 B、65532 B、2 MB、8 MB、16 MB、32 MB時,設置配置文件,實現(xiàn)兩PowerPC板上各一個CPU之間的通信,發(fā)送10 min,測試結果如表1所示。測試結果表明:該模塊對各種類型報文的通信都具有良好的性能。
表1 數(shù)據(jù)分類測試結果
4.2.2通信能力測試
模塊通信能力主要取決于DMA傳輸速度和內存拷貝速度,二者均受到硬件條件限制,下面分別進行測試。
改變單次發(fā)送數(shù)據(jù)包大小,分別設置為1 MB、2 MB、4 MB、8 MB、16 MB、32 MB,調用本模塊發(fā)送函數(shù)循環(huán)發(fā)送,接收模塊接收數(shù)據(jù)后循環(huán)拷貝至緩存,過程中分別計算DMA傳輸速度和內存拷貝速度。
計算方法: DMA傳輸速度記為(VDMA)MBps,發(fā)送次數(shù)(N)次,單次數(shù)據(jù)包大小(L)MB,傳輸時間(T)s,則: VDMA= N* L/T;計算20次結果取平均值。內存拷貝速度采用相同計算方法。測試結果如表2所示。
表2 模塊能力測試結果
由表2得出以下結論:
(1)DMA傳輸速度>800 MBps,而內存拷貝速度峰值為110 MBps左右。該速度為通信過程中的峰值速度,大于該發(fā)送速度,接收端將不能及時讀取數(shù)據(jù)至緩存;
(2)測試結果表明:模塊通信速度受底層memcpy函數(shù)的限制,即硬件的處理能力,本模塊具有良好的性能,滿足通信需求。
4.3穩(wěn)定性測試
上一節(jié)測試中,分別挑選3種情況進行長時間測試,結果如下:
(1)1200 B數(shù)據(jù),0.2 ms/次發(fā)送速度,運行2 h,記錄所有數(shù)據(jù)包的流水號,并分段將輸入輸出詳細數(shù)據(jù)記文件,數(shù)據(jù)校驗位正確,結果正確;
(2)65532 B數(shù)據(jù),1 ms/次發(fā)送速度,運行2 h,記錄所有數(shù)據(jù)包的流水號,并分段將輸入輸出詳細數(shù)據(jù)記文件,數(shù)據(jù)校驗位正確,結果正確;
(3)32 MB數(shù)據(jù),500 ms/次發(fā)送速度,運行2 h,記錄所有數(shù)據(jù)包的流水號,并分段將輸入輸出詳細數(shù)據(jù)記文件,數(shù)據(jù)校驗位正確,結果正確。
測試結果表明,該模塊具有良好的穩(wěn)定性。
4.4實用測試
該模塊已應用于某項目中,VPX插箱中各CPU間SRIO通信均使用該模塊,滿足項目中所有通信需求。模塊的易用性和可靠性節(jié)省了項目軟件開發(fā)人員大量開發(fā)時間,并達到了所需的性能要求。
本文設計的SRIO通信模塊具備良好的工程實用性,后期將會應用于更多的項目和產品中。其模塊化的特點在項目和產品的軟件開發(fā)中具有諸多優(yōu)勢,后續(xù)的應用反饋將使模塊更加完善。本文的設計思想為工程應用中的軟件模塊化提供了參考。
參考文獻:
[1]尹亞明,等.新型高性能RapidIO互連技術研究[J].計算機工程與科學,2004(12).
[2]Sam Fuller.RapidIO嵌入式系統(tǒng)互連[M].北京:電子工業(yè)出版社,2006.
[3]李春田.模塊化研究[M].北京:中國標準出版社,2008.
[4]徐惠民.基于VxWorks的嵌入式系統(tǒng)及實驗[M].北京:北京郵電大學出版社,2006.
Design of SRIO communication module based on VPX
GU Xiao-peng1,YANG Yu-liang2,ZHANG Ran2
(1.Naval Command Post,Beijing 100841; 2.No.724 Research Institute of CSIC,Nanjing 211153)
Abstract:According to the requirements of the SRIO communication for the VPX,a method of encapsulating the SRIO communication interface is proposed,and a SRIO communication module is designed and realized.The SRIO communication module adopts an idea of modularized software that the universal data communication mode between the CPUs of the PowerPC boards is designed based on the SRIO communication interface,which can realize the data communication between and inside the PowerPC boards.The binary system reusability for the module is realized in the form of library function.The module can be transplanted in any PowerPC programs,realizing the visualized configuration of the communication parameters and facilitating structural and modularized design of the software.The test results indicate that this module features good performance and binary system reusability.
Keywords:communication module; VPX; Serial RapidIO; modularized software
作者簡介:谷曉鵬(1976-),男,工程師,碩士,研究方向:指揮自動化信息處理技術;楊玉亮(1987-),男,工程師,碩士,研究方向:雷達資源調度;張然(1989-),女,工程師,碩士,研究方向:雷達數(shù)據(jù)處理。
收稿日期:2015-03-03;修回日期:2015-03-18
文章編號:1009-0401(2015)02-0064-05
文獻標志碼:A
中圖分類號:TN95