新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于RapidIO的雙主機節點嵌入式系統互聯設計

        基于RapidIO的雙主機節點嵌入式系統互聯設計

        作者: 時間:2016-09-12 來源:網絡 收藏

        (2)STATUS rioMapInb(UINT32 lstart,UINT32rstart,UINT32 size,UINT32 flags)rioMapInb映射大小為size的本地地址lstart到空間地址rstart;

        本文引用地址:http://www.104case.com/article/201609/305086.htm

        (3)STATUS rioMapOutb4(UINT32 lstart,UINT32rstart,UINT32 size,UINT32 tid0,UINT32 tid1,UINT32tid2,UINT32 tid3,UINT32 flags)

        rioMapOutb一次只能映射一個外部節點的內存空間,為了提升軟件效率,使用rioMapOutb4接口一次性對4個外部節點進行映射。

        2.3 網絡通信

        的網絡通信主要有消息、門鈴、Nread和Nwrite等方式。軟件中使用的函數接口如下:

        (1)void rioSendMsg(BYTE localPort,BYTEmailBox,BYTE dstID,BYTE*msgPtr,WORD len)rioSendMsg函數接口用來在兩個處理部件之間發送消息,loealPort為本地端口號,mailBox為郵箱號,dstID為目標RapidIO ID號,msgPtr為消息內容數組指針,len為消息長度。

        (2)void rioSendDoorbell(BYTE localport,BYTEdstPortID,WORD data)rioSendDoorbell函數接口發送門鈴信息,門鈴信息一般用于處理器間的中斷。Localport為端口號,dstPortID為目標端口號,data為16位門鈴信息。

        (3)DWORD rioDmaNread(BYTE chan,DWORDlocaladr,DWORD rioaddr,DWORD bytecnt)應用程序調用rioDmaNread接口進行Nread操作,rioDmaNread接口調用DMA控制器直接從RapidIO空間讀取數據塊到本地內存空間。

        (4)DWORD rioDmaNwrite(BYTE chan,DWORDlocaladdr,DWORD rioaddr,DWORD bytecnt)應用程序調用rioDmaNwrite接口進行Nwrite操作,rioDmaNwrite接口調用DMA控制器直接將本地內存空間的數據塊寫到RapidIO空間上。

        (5)DWORD rioDmaTransfer(BYTE ehan,DWORDsouraddr,DWORD desaddr,DWORD datasize,DWORDphyNextDescPtr)rioDmaTransfer接口實現DMA傳輸功能,該接口使用了DMA中斷功能,有阻塞,當DMA沒有完成時不會退出。

        2.4 Rapidio網絡故障恢復

        在實際應用中,RapidIO網絡上的節點可能出現故障,需進行重啟操作。重啟后的節點,其硬件配置均回到最初狀態,RapidIO部分功能(節點ID等)需要進行重新初始化,因此需進行RapidIO網絡的故障恢復。

        RapidIO網絡的故障恢復具有以下3種基礎形式:

        (1)普通節點的故障恢復。主節點或從節點進行一次RapidIO網絡的初始化即可恢復普通節點的RapidIO網絡故障。

        (2)從節點的故障恢復。需要主節點進行一次RapidIO網絡的初始化。

        (3)主節點的故障恢復。主節點自動恢復后從節點進行一次RapidIO網絡的初始化。

        在某些情況下,由于芯片上RapidIO控制器的問題,主節點無法進行自身的自動恢復。因此,在故障恢復的第3種基礎形式中,僅能使用從節點進行一次RapidIO網絡的初始化這種方式恢復主節點的故障。在這種情況下,主節點和從節點之間需要具有通信機制,使得主節點能夠將其發生故障的事件通知給從節點,從而觸發從節點進行一次RapidIO網絡的初始化,完成主節點的故障恢復。主節點和從節點之間需要具有通信機制,由于主節點和從節點同屬于一塊板卡,且之間具有互相的中斷觸發功能,因此使用中斷觸發方式完成主節點和從節點之間的故障通知。

        3 系統驗證

        完成系統和驅動軟件的設計后,在具體應用環境中對系統的功能和性能進行驗證。

        3.1 功能驗證

        系統采用主從方式初始化,系統上電后,兩個CPU各自調用初始化函數進行系統初始化,先運行的CPU自動設置為主節點,后運行的CPU和網絡上的其他設備為從節點,主節點通過網絡枚舉發現系統中的其他從節點,從而完成網絡配置。系統驗證了如下功能:

        (1)RapidIO網絡動態接入和故障恢復功能,RapidIO網絡能夠動態接入其他網絡節點并且完成對新接入節點的網絡配置,同時系統具備故障恢復功能。

        (2)傳輸1.25 Gbit·s-1、25 Gbit·s-1、3.125Gbit·s-1,3種速率時的高速RapidIO信號,3種工作速度可通過軟件動態配置。

        3.2 性能驗證

        為了驗證網絡傳輸性能,選取RapidIO網絡中的兩個主機節點進行通信功能測試。RapidIO端口工作在4x模式下,速率為3.125Gbit·s-1,測試傳輸不同大小的包時Nread和Nwrite的傳輸帶寬,實際的傳輸帶寬如表1所示。

        基于RapidIO的雙主機節點嵌入式系統互聯設計

        從表中可看出,RapidIO實際的傳輸速率和理論傳輸速率之間有一定的差距。當單包數據為128 Byte時,數據傳輸速率比較低。隨著包的大小增加,傳輸速率也在增加,但是速率增長趨勢變緩。當單包數據為4kB時,RapidIO的傳輸速率是最高的,此時NWRITE的傳輸帶寬為720.5 Mbit·s-1,NREAD的傳輸帶寬為716.8/Mbit·s-1。

        4 結束語

        RapidIO是一種高效、穩定、低成本的總線,為新一代高性能嵌入式提供了良好的解決方案。本文介紹了一種基于RapidIO的具有雙主機節點的嵌入式設計與實現方案,系統中兩塊PowerPC主控制器采用主從方式工作,并通過交換機連接外部的其他系統,該設計性能穩定可靠,能夠滿足并行分布式系統的高速數據傳輸需求,具有廣泛的應用前景。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 莫力| 田东县| 增城市| 壶关县| 岳西县| 洱源县| 常宁市| 同仁县| 元氏县| 社旗县| 黔西县| 左贡县| 高阳县| 磴口县| 宿迁市| 瓦房店市| 临湘市| 乐安县| 宿松县| 中阳县| 阿图什市| 永安市| 隆尧县| 景宁| 建瓯市| 焉耆| 偏关县| 麦盖提县| 紫金县| 海伦市| 西宁市| 屏南县| 萨迦县| 和龙市| 化隆| 友谊县| 灌阳县| 留坝县| 磐石市| 克东县| 阳曲县|