光纖反射內存網(wǎng)關鍵技術
1)高實時性低開銷網(wǎng)絡通訊協(xié)議的設計與實現(xiàn)
目前主流公開的網(wǎng)絡協(xié)議,如以太網(wǎng)所使用的TCP/IP協(xié)議雖然功能完備、運行穩(wěn)定,但其傳輸機制和服務方式都比較復雜冗余,實時性較差,不適合于多實時性有較高要求的領域。
光纖反射內存網(wǎng)通訊協(xié)議要在保證高實時性和穩(wěn)定性前提下,降低協(xié)議的復雜度。在保證網(wǎng)絡基本服務和傳輸穩(wěn)定性的前提下,盡量提高系統(tǒng)的傳輸性能、實時性及相應速度。同時要有完整的錯誤處理機制,在錯誤發(fā)生的情況下保證錯誤不蔓延,有良好的自愈能力。
2)邊收邊轉的數(shù)據(jù)轉發(fā)模式實現(xiàn)低延時數(shù)據(jù)轉發(fā)
在協(xié)議控制器設計上采用RFMMA(ReflectiveMemory Multiple Access)基于反射內存的多模式存取技術,支持數(shù)據(jù)、IO、命令、中斷等多種數(shù)據(jù)傳輸模式。
在協(xié)議實現(xiàn)上,即協(xié)議控制器的設計上,要采取低延時的數(shù)據(jù)轉發(fā)策略,將轉發(fā)延遲控制在1us以內,這個對協(xié)議控制器實現(xiàn)提出了很高的挑戰(zhàn)。主要采用此一下方法:1)采用邊收邊轉發(fā)的數(shù)據(jù)傳輸模式,不采用存儲轉發(fā)模式,減小數(shù)據(jù)在單個節(jié)點上的轉發(fā)延遲,提高系統(tǒng)實時性。2)在協(xié)議設計時,優(yōu)化設計,壓縮信息頭的長度,并將重要信息都放在信息頭前面,以方便轉發(fā)時進行快速判斷。3)設計了完備的數(shù)據(jù)幀回收機制,通過節(jié)點ID、傳輸計數(shù)器等方式保證了廢數(shù)據(jù)幀的可靠回收。同時,采用CRC校驗碼校驗數(shù)據(jù)的正確性。
一般的網(wǎng)絡接口設備在轉發(fā)數(shù)據(jù)是都采用存儲轉發(fā)的方式,轉發(fā)延遲過大,導致整個系統(tǒng)的延時加大,實時性降低。采用即時收/轉(邊收邊轉發(fā))模式,在接收數(shù)據(jù)的同時完成處理和轉發(fā),代替常用的存儲轉發(fā)模式,只需4個時鐘周期便可完成判斷&轉發(fā),典型數(shù)據(jù)幀是(長度256Byte)轉發(fā)延遲比存儲轉發(fā)縮短了30倍以上。實測延時小于0.6us。
3)光纖HUB的換網(wǎng)動態(tài)重構及數(shù)據(jù)監(jiān)測技術
利用高速開關陣列及FPGA集成的高速收發(fā)器,構建一個開關陣列,通過開關陣列的切換,形成內外雙環(huán)的數(shù)據(jù)傳輸通路,是光纖網(wǎng)絡數(shù)據(jù)在邏輯上形成一個環(huán)形傳輸方式,并通過FPGA收發(fā)器實時采集數(shù)據(jù)實現(xiàn)網(wǎng)絡狀態(tài)的監(jiān)控及故障節(jié)點的自診斷自隔離。
4)高速電路設計及仿真驗證技術
光纖反射內存網(wǎng)絡波特率2.5Gbps,電信號的這個數(shù)據(jù)通訊速率下傳輸,屬于高速電路設計。為保證數(shù)據(jù)可靠傳輸、保證系統(tǒng)的電磁兼容性、信號完整性,對電路板PCB設計提出了較高的要求。為保證設計質量,采用了Cadence公司的SigXplorer軟件進行電路仿真,對仿真結果進行多輪迭代來改進設計。
反射內存網(wǎng)中的每個反射內存節(jié)點(任何5565反射內存卡)以菊花鏈的形式用光纖線互聯(lián)。**塊卡的發(fā)送必須連接到第二塊卡的接收端,第二塊卡的發(fā)送端連接到第三塊卡的接收端,以此類推,直到再連接到**塊卡的接收端完成一個完整的環(huán)形連接。也可以將所有節(jié)點連接到一個或多個ACC-5595反射內存HUB,每個節(jié)點的接收和發(fā)送都必須連接,如果沒有檢測到光信號或失去同步反射內存卡RFM-5565將不會發(fā)送數(shù)據(jù)包(例如光纖線已損壞)。反射內存網(wǎng)中每個節(jié)點的節(jié)點號必須唯一,節(jié)點號通過板上的撥碼開關S2進行設置,任何兩個節(jié)點不能有設置成同一個節(jié)點號,每個板卡的節(jié)點號可以在通過NODEID進行讀取顯示,節(jié)點號的順序并不重要。
主系統(tǒng)對反射內存卡的板載SDRAM的寫操作后,反射內內卡的硬件檢測電路將自動發(fā)起一個整個反射內存網(wǎng)的數(shù)據(jù)傳輸動作。這個寫操作可以是一個簡單的PIO寫或是一個DMA周期。
當產生一個對SDRAM的寫操作時,RFM-5565反射內存卡自動將數(shù)據(jù)和其它相關的信息寫入到發(fā)送緩沖器中(其它相關信息包括節(jié)點號,數(shù)據(jù)地址等信息),在發(fā)送緩沖器中,發(fā)送電路檢測數(shù)據(jù),并且將數(shù)據(jù)變成一個4到64字節(jié)長度可變的數(shù)據(jù)包。通過光纖接口發(fā)送到下一個板卡的接收端口。
接收電路檢查數(shù)據(jù)包是否有錯誤,當無錯誤發(fā)生時數(shù)據(jù)被接收。接收電路解開數(shù)據(jù)包并且將數(shù)據(jù)存儲到板載的接收緩沖器。在接收緩沖器中,另一個電路將數(shù)據(jù)寫入到本地的SDRAM的和源節(jié)點相同的地址中。同時,該電路將數(shù)據(jù)同時發(fā)送到發(fā)送FIFO中,重復這個處理過程直到這個數(shù)據(jù)返回到源節(jié)點的接收端,在源節(jié)點中,接收電路檢測到數(shù)據(jù)包的NODEID和源節(jié)點的NODEID相同,因此將數(shù)據(jù)包從網(wǎng)絡中移除,這樣所有的節(jié)點數(shù)據(jù)都被更新了。