基于反射內(nèi)存的多功能通訊板卡研制
引 言
隨著裝備性能的提高,裝備的控制周期已達到 1 ms 甚至百微秒量級 [1]。因此對虛擬仿真系統(tǒng)中通常采用的反射內(nèi)存網(wǎng)絡(luò)進行數(shù)據(jù)傳輸。虛擬模型之間通過網(wǎng)絡(luò)傳遞數(shù)據(jù),虛擬模型與實裝模型之間通過相應(yīng)的串行接口卡進行通訊,例如 RS 422、1553B 通訊板卡。因此若能直接實現(xiàn)反射內(nèi)存網(wǎng)中數(shù)據(jù)與串行接口之間的直接數(shù)據(jù)傳輸[2],將極大地提高通訊卡的通用性和仿真系統(tǒng)的實時性[3]。
當今市面上常見的反射內(nèi)存網(wǎng)絡(luò)產(chǎn)品無法單獨滿足虛擬仿真系統(tǒng)對網(wǎng)絡(luò)功能的需求,所以基于反射內(nèi)存的多功能通訊模塊的研制對于半實物仿真系統(tǒng)有著十分重要的意義。
1 多功能通訊模塊原理及工作模式
反射內(nèi)存網(wǎng)絡(luò)示意圖如圖 1 所示。多功能通訊板卡組建的反射內(nèi)存網(wǎng)絡(luò)通過光纖連接而成。網(wǎng)上的每臺計算機通過CPCI 插槽插入一塊多功能通訊板卡形成網(wǎng)絡(luò)上的一個節(jié)點。
網(wǎng)絡(luò)上每個節(jié)點的局部內(nèi)存都映射到一個虛擬的全局內(nèi)存,構(gòu)成分布式共享存儲器。用戶對本地節(jié)點內(nèi)存的讀寫相當于對全局內(nèi)存的讀寫。對于本地節(jié)點內(nèi)存的讀寫可以由宿主機或帶有 RS 422 接口的設(shè)備完成。多功能通訊板卡上集成了4 路 RS 422 接口,使帶有 RS 422 的設(shè)備能直接訪問反射內(nèi)存網(wǎng)。
2 總體方案設(shè)計
圖 2 所示為多功能通訊板卡總體框圖。該板卡總體上由 宿主機交互模塊、DDR2 模塊、RS 422 模塊、光纖接口模塊 四部分組成,各個模塊均掛載在 Avalon 總線上,借助該總線 進行數(shù)據(jù)交互。Avalon 交換式總線定義的內(nèi)聯(lián)線策略使得任 何一個 Avalon 總線上的主外設(shè)都可以與任何一個從外設(shè)溝通。
2.1 宿主機交互模塊設(shè)計
宿主機交互模塊負責處理板卡和宿主機的信息交互,實現(xiàn)數(shù)據(jù)解析、數(shù)據(jù)組幀和打包、與Avalon 總線交互等功能。該模塊由CPCI 總線的接口單元、數(shù)據(jù)解析單元和數(shù)據(jù)組幀單元等構(gòu)成。宿主機交互模塊框圖如圖 3 所示。
PLX9054 的工作模式采用C 模式,傳輸方式選擇 DMA模式。
數(shù)據(jù)解析單元通過PCI 總線的地址位來區(qū)分上位機的數(shù)據(jù)種類 [4]。上位機發(fā)送的數(shù)據(jù)種類有經(jīng)由RS 422 接口的數(shù)據(jù)、廣播到反射內(nèi)存網(wǎng)絡(luò)的數(shù)據(jù)、讀寫本地內(nèi)存的數(shù)據(jù) [5]。為了更好地管理數(shù)據(jù),將反射內(nèi)存網(wǎng)絡(luò)中的內(nèi)存劃分為兩大區(qū)域 :地址 0x00000000~0x000FFFF 是 RS 422 數(shù)據(jù), 地址0x0010000~0x8000000 是通用內(nèi)存數(shù)據(jù)。
數(shù)據(jù)組幀加包是為了解決從單一數(shù)據(jù)源發(fā)送數(shù)據(jù)到不同出口而產(chǎn)生的數(shù)據(jù)帶寬不同、協(xié)議不匹配等問題 [6]。為了方便數(shù)據(jù)交互,統(tǒng)一各路數(shù)據(jù)結(jié)構(gòu),根據(jù)目前反射內(nèi)存網(wǎng)絡(luò)沒有形成協(xié)議標準的現(xiàn)狀,設(shè)計其實現(xiàn)機制和數(shù)據(jù)結(jié)構(gòu)如下所示:
(1) 發(fā)送到 RS422接口的數(shù)據(jù)由命令標志位和數(shù)據(jù)位構(gòu)成。其中命令標志位用于區(qū)分數(shù)據(jù)幀和命令幀。命令幀包括波特率配置和字長配置。
(2) 發(fā)送到反射內(nèi)存網(wǎng)絡(luò)的數(shù)據(jù)格式由幀頭標志、節(jié)點號、中斷標志、協(xié)議號標志、包長度組成。其中節(jié)點號表示該數(shù)據(jù)包的源節(jié)點號,協(xié)議號標志表示該數(shù)據(jù)包的數(shù)據(jù)源采用的協(xié)議。幀頭標志位用于區(qū)分幀頭和地址幀、數(shù)據(jù)幀、校驗幀。
(3) 為了提高系統(tǒng)帶寬, 宿主機交互模塊集成了四個Avalon總線主端口,由于每個總線主機均有自己的專用互聯(lián), 總線主機只需搶占共享從機,而非總線本身,因此不會造成總線擁塞。Avalon接口性能很高,可每個時鐘傳輸 1次,所以對上下行數(shù)據(jù)的傳輸速率的影響可忽略不計。
2.2 光纖接口模塊設(shè)計
圖 4 所示為光纖接口模塊。該模塊由光電收發(fā)器、編解碼控制、數(shù)據(jù)仲裁和數(shù)據(jù)解析等功能單元組成。其中,光傳輸模塊采用集成光電轉(zhuǎn)換方案,其支持的最高串行數(shù)據(jù)傳輸率為1.062 5 Gb/s。
各功能單元之間為保持數(shù)據(jù)的完整性,設(shè)計了多個FIFO來緩存接收和發(fā)送數(shù)據(jù)。解決上下接口速率不匹配、跨時鐘 域的問題。
在高速串行收發(fā)器中,內(nèi)置有 8 B/10 B 解碼器可以檢查出單比特錯誤,同時還內(nèi)置有CRC 校驗器,能夠有效發(fā)現(xiàn)錯誤并糾正單比特錯誤。利用這兩種方案能夠?qū)㈠e誤有效反饋給上層進行處理。
2.3 RS422模塊設(shè)計
圖 5 所示為 RS 422 模塊。該模塊主要由UART 模塊、控制模塊和RS 422 接口電路組成。
UART 在Avalon 總線體系里是一個常用的字符型外圍設(shè)備[7],為Altera FPGA上的嵌入式系統(tǒng)和外部設(shè)備提供了串行字符流通信方式。主控制模塊的主要功能單元為UART 控制、地址匹配和數(shù)據(jù)打包等。同時控制模塊內(nèi)嵌 3 個Avalon 主端口和 1 個Avalon 從端口,通過 Avalon 總線與其他模塊進行數(shù)據(jù)交互。
3 主要功能及性能指標測試
測試時搭建由虛擬機和實物設(shè)備構(gòu)成的半實物仿真系統(tǒng)驗證基于反射內(nèi)存的多功能板卡的各項功能及性能。
3.1 反射內(nèi)存網(wǎng)絡(luò)功能測試
測試網(wǎng)絡(luò)采用由三個節(jié)點、光纖互聯(lián)組成的環(huán)狀鏈路, 其中一個網(wǎng)絡(luò)節(jié)點接入RS 422 設(shè)備,測試是否能構(gòu)成共享內(nèi)存網(wǎng)絡(luò)。測試模型如圖 6 所示。
在廣播通訊測試中,節(jié)點 0 計算機作為數(shù)據(jù)源發(fā)送數(shù)據(jù) 包,環(huán)路節(jié)點 1、2 收到數(shù)據(jù)包后執(zhí)行存儲操作,同時按序轉(zhuǎn) 發(fā)數(shù)據(jù)包。當數(shù)據(jù)包回到節(jié)點 0 時,該節(jié)點刪除數(shù)據(jù)包,不 再轉(zhuǎn)發(fā),最后將 3 個節(jié)點的內(nèi)存數(shù)據(jù)讀取比較。本次測試用大 小為 12 字節(jié)的數(shù)據(jù)包進行了長時間連續(xù)測試。實際測試結(jié)果 表明傳輸中的誤碼率低于 10-15。
3.2 RS 422 功能測試
測試 2 模型和測試 1 一致。節(jié)點 3上的 RS 422 設(shè)備作為 數(shù)據(jù)源廣播大小為 12 字節(jié)的數(shù)據(jù)包,最后比較各節(jié)點內(nèi)存數(shù) 據(jù)。每個通道按照三種波特率 9 600 b/s、115.2 Kb/s、1 Mb/s 和字長 8 位、9 位共 6 種組合方式分別測試,設(shè)備收發(fā)的數(shù)據(jù) 和各節(jié)點內(nèi)存區(qū)數(shù)據(jù)完全一致。
3.3 網(wǎng)絡(luò)傳輸速率測試
測試 3 沿用測試 1 的測試模型。宿主機讀寫采用 DMA 方式,測試時,節(jié)點 0 宿主機發(fā)起數(shù)據(jù)寫傳輸,發(fā)起的同時開 啟 RTX 系統(tǒng)提供的 0.1 ms 時鐘,當數(shù)據(jù)通過環(huán)形網(wǎng)絡(luò)更新完 畢時則停止計時,得到數(shù)據(jù)寫速率。每次發(fā)送 100 個數(shù)據(jù)包, 發(fā)送 500 次,有效數(shù)據(jù)總量為 200 000 MB。試驗數(shù)據(jù)如表 1 所列。通過宿主機讀內(nèi)存數(shù)據(jù),每次讀100 個數(shù)據(jù)包,讀500次, 有效數(shù)為 200 000 MB,得到數(shù)據(jù)讀速率。數(shù)據(jù)讀測試如表 2 所列。
在數(shù)據(jù)量較小時,傳輸速率不高,因為大部分時間開銷 都在中斷的傳輸和邏輯判斷中。當發(fā)送數(shù)據(jù)變大時,傳輸速 率較快,并趨于穩(wěn)定。
3.4 傳輸延時測試
傳輸延時包括節(jié)點間延時和節(jié)點內(nèi)延時,測試模型如圖 7所示。相鄰節(jié)點之間完成數(shù)據(jù)發(fā)送接收過程的延時測試,需要依次經(jīng)過發(fā)送節(jié)點發(fā)送單元、光電收發(fā)器、光纖、光電收發(fā)器、接收節(jié)點接收單元,其中光纖長度為 10m。通過 100 次測試單板自收發(fā),可測得節(jié)點與節(jié)點間的時延平均為 244.4ns。節(jié)點內(nèi)部處理相鄰節(jié)點發(fā)送的數(shù)據(jù)并轉(zhuǎn)發(fā)時會造成延時。完成以上一次收發(fā)需要經(jīng)過兩次節(jié)點間時延和一次節(jié)點內(nèi)時延。經(jīng)過 100次測試,得出節(jié)點內(nèi)平均時延為 263.2 ns。
4 結(jié) 語
通過一系列實驗測試證明,基于反射內(nèi)存的多功能通訊板卡設(shè)計合理,滿足高速(帶寬最高為 30 MB/s)、可靠(誤碼
率低于10-15)、可預(yù)測(時延是深亞微秒級)、多功能(支持多模式的RS 422)等要求。目前,該板卡已應(yīng)用在虛擬仿真平臺。需要指出的是,該板卡上還集成了 RS 232、1533B、CAN 等通訊模塊,改動FPGA 程序即可擴展板卡的通訊能力。