易宇++周學安++曲海山++王哲



摘 要:由于虛擬仿真試驗系統對實時性和通用性要求高,并且虛擬仿真試驗系統中的虛擬模型與實裝模型之間需要通過相應的串行接口卡進行傳輸,因此設計了基于反射內存的多功能通訊板卡。該通訊板卡中應用了反射內存技術,具有串口與反射內存網絡進行交互的功能。實驗證明,基于反射內存技術的多功能通訊板卡的帶寬最高為30 MB/s,誤碼率低于10~15,時延為深亞微秒級,支持RS 422接口等。
關鍵詞:反射內存;多功能通訊;RS 422;虛擬仿真
中圖分類號:TN913.7 文獻標識碼:A 文章編號:2095-1302(2016)11-00-03
0 引 言
隨著裝備性能的提高,裝備的控制周期已達到1 ms甚至百微秒量級[1]。因此對虛擬仿真系統中通常采用的反射內存網絡進行數據傳輸。虛擬模型之間通過網絡傳遞數據,虛擬模型與實裝模型之間通過相應的串行接口卡進行通訊,例如RS 422、1553B通訊板卡。因此若能直接實現反射內存網中數據與串行接口之間的直接數據傳輸[2],將極大地提高通訊卡的通用性和仿真系統的實時性[3]。
當今市面上常見的反射內存網絡產品無法單獨滿足虛擬仿真系統對網絡功能的需求,所以基于反射內存的多功能通訊模塊的研制對于半實物仿真系統有著十分重要的意義。
1 多功能通訊模塊原理及工作模式
反射內存網絡示意圖如圖1所示。多功能通訊板卡組建的反射內存網絡通過光纖連接而成。網上的每臺計算機通過CPCI插槽插入一塊多功能通訊板卡形成網絡上的一個節點。
網絡上每個節點的局部內存都映射到一個虛擬的全局內存,構成分布式共享存儲器。用戶對本地節點內存的讀寫相當于對全局內存的讀寫。對于本地節點內存的讀寫可以由宿主機或帶有RS 422接口的設備完成。多功能通訊板卡上集成了4路RS 422接口,使帶有RS 422的設備能直接訪問反射內存網。
2 總體方案設計
圖2所示為多功能通訊板卡總體框圖。該板卡總體上由宿主機交互模塊、DDR2模塊、RS 422模塊、光纖接口模塊四部分組成,各個模塊均掛載在Avalon總線上,借助該總線進行數據交互。Avalon交換式總線定義的內聯線策略使得任何一個Avalon總線上的主外設都可以與任何一個從外設溝通。
2.1 宿主機交互模塊設計
宿主機交互模塊負責處理板卡和宿主機的信息交互,實現數據解析、數據組幀和打包、與Avalon總線交互等功能。該模塊由CPCI總線的接口單元、數據解析單元和數據組幀單元等構成。宿主機交互模塊框圖如圖3所示。
PLX9054的工作模式采用C模式,傳輸方式選擇DMA模式。
數據解析單元通過PCI總線的地址位來區分上位機的數據種類[4]。上位機發送的數據種類有經由RS 422接口的數據、廣播到反射內存網絡的數據、讀寫本地內存的數據[5]。為了更好地管理數據,將反射內存網絡中的內存劃分為兩大區域:地址0x00000000~0x000FFFF是RS 422數據,地址0x0010000~0x8000000是通用內存數據。
數據組幀加包是為了解決從單一數據源發送數據到不同出口而產生的數據帶寬不同、協議不匹配等問題[6]。為了方便數據交互,統一各路數據結構,根據目前反射內存網絡沒有形成協議標準的現狀,設計其實現機制和數據結構如下所示:
(1)發送到RS 422接口的數據由命令標志位和數據位構成。其中命令標志位用于區分數據幀和命令幀。命令幀包括波特率配置和字長配置。
(2)發送到反射內存網絡的數據格式由幀頭標志、節點號、中斷標志、協議號標志、包長度組成。其中節點號表示該數據包的源節點號,協議號標志表示該數據包的數據源采用的協議。幀頭標志位用于區分幀頭和地址幀、數據幀、校驗幀。
(3)為了提高系統帶寬,宿主機交互模塊集成了四個Avalon總線主端口,由于每個總線主機均有自己的專用互聯,總線主機只需搶占共享從機,而非總線本身,因此不會造成總線擁塞。Avalon接口性能很高,可每個時鐘傳輸1次,所以對上下行數據的傳輸速率的影響可忽略不計。
2.2 光纖接口模塊設計
圖4所示為光纖接口模塊。該模塊由光電收發器、編解碼控制、數據仲裁和數據解析等功能單元組成。其中,光傳輸模塊采用集成光電轉換方案,其支持的最高串行數據傳輸率為1.062 5 Gb/s。
各功能單元之間為保持數據的完整性,設計了多個FIFO來緩存接收和發送數據。解決上下接口速率不匹配、跨時鐘域的問題。
在高速串行收發器中,內置有8 B/10 B解碼器可以檢查出單比特錯誤,同時還內置有CRC校驗器,能夠有效發現錯誤并糾正單比特錯誤。利用這兩種方案能夠將錯誤有效反饋給上層進行處理。
2.3 RS 422模塊設計
圖5所示為RS 422模塊。該模塊主要由UART模塊、控制模塊和RS 422接口電路組成。
UART在Avalon總線體系里是一個常用的字符型外圍設備[7],為Altera FPGA上的嵌入式系統和外部設備提供了串行字符流通信方式。主控制模塊的主要功能單元為UART控制、地址匹配和數據打包等。同時控制模塊內嵌3個Avalon主端口和1個Avalon從端口,通過Avalon總線與其他模塊進行數據交互。
3 主要功能及性能指標測試
測試時搭建由虛擬機和實物設備構成的半實物仿真系統驗證基于反射內存的多功能板卡的各項功能及性能。
3.1 反射內存網絡功能測試
測試網絡采用由三個節點、光纖互聯組成的環狀鏈路,其中一個網絡節點接入RS 422設備,測試是否能構成共享內存網絡。測試模型如圖6所示。
在廣播通訊測試中,節點0計算機作為數據源發送數據包,環路節點1、2收到數據包后執行存儲操作,同時按序轉發數據包。當數據包回到節點0時,該節點刪除數據包,不再轉發,最后將3個節點的內存數據讀取比較。本次測試用大小為12字節的數據包進行了長時間連續測試。實際測試結果表明傳輸中的誤碼率低于10-15。
3.2 RS 422功能測試
測試2模型和測試1一致。節點3上的RS 422設備作為數據源廣播大小為12字節的數據包,最后比較各節點內存數據。每個通道按照三種波特率9 600 b/s、115.2 Kb/s、1 Mb/s和字長8位、9位共6種組合方式分別測試,設備收發的數據和各節點內存區數據完全一致。
3.3 網絡傳輸速率測試
測試3沿用測試1的測試模型。宿主機讀寫采用DMA方式,測試時,節點0宿主機發起數據寫傳輸,發起的同時開啟RTX系統提供的0.1 ms時鐘,當數據通過環形網絡更新完畢時則停止計時,得到數據寫速率。每次發送100個數據包,發送500次,有效數據總量為200 000 MB。試驗數據如表1所列。通過宿主機讀內存數據,每次讀100個數據包,讀500次,有效數為200 000 MB,得到數據讀速率。數據讀測試如表2所列。
在數據量較小時,傳輸速率不高,因為大部分時間開銷都在中斷的傳輸和邏輯判斷中。當發送數據變大時,傳輸速率較快,并趨于穩定。
3.4 傳輸延時測試
傳輸延時包括節點間延時和節點內延時,測試模型如圖7所示。相鄰節點之間完成數據發送接收過程的延時測試,需要依次經過發送節點發送單元、光電收發器、光纖、光電收發器、接收節點接收單元,其中光纖長度為10 m。通過100次測試單板自收發,可測得節點與節點間的時延平均為244.4 ns。節點內部處理相鄰節點發送的數據并轉發時會造成延時。完成以上一次收發需要經過兩次節點間時延和一次節點內時延。經過100次測試,得出節點內平均時延為263.2 ns。
4 結 語
通過一系列實驗測試證明,基于反射內存的多功能通訊板卡設計合理,滿足高速(帶寬最高為30 MB/s)、可靠(誤碼率低于10-15)、可預測(時延是深亞微秒級)、多功能(支持多模式的RS 422)等要求。目前,該板卡已應用在虛擬仿真平臺。需要指出的是,該板卡上還集成了RS 232、1533B、CAN等通訊模塊,改動FPGA程序即可擴展板卡的通訊能力。
參考文獻
[1]劉峰,王鴻翔,張帥.一種基于雙中斷的反射內存網通信方法研究[J].航空科學技術,2014 (12):54-58.
[2]李鋒.基于光纖反射內存網的實時數據傳輸研究[D].成都:中國科學院研究生院(光電技術研究所),2014.
[3]周強,張秀磊,駱冬,等.基于CPCI總線的反射內存網絡接口卡研制[J].計算機測量與控制,2014,22(9):2934-2936.
[4]李明星,魏長安,姜守達.一種基于PCI總線的反射內存卡設計[J].自動化技術與應用,2010,29(10):84-87.
[5]金暑鈞,趙占偉.通用試驗體系支撐平臺下的反射內存網通信組件開發[J].自動化技術與應用,2012,31(5):38-41.
[6]王玉龍,徐志躍,劉亞斌.基于cPCI總線的一種反射內存卡的研究與設計[J].電子設計工程,2015,23(5):164-167.
[7]紀紅.基于反射內存網絡的實時網絡關鍵技術的研究[D].哈爾濱:哈爾濱工程大學,2013.