<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > CPS1432交換芯片的串行RapidIO互連技術(shù)

CPS1432交換芯片的串行RapidIO互連技術(shù)

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

本系統中的分別處在兩塊板卡上,采用了ERNI公司的ZD高速連接器進(jìn)行板間互連。由于走線(xiàn)經(jīng)過(guò)背板傳輸,長(cháng)度較長(cháng),芯片的發(fā)送端信號需滿(mǎn)足協(xié)議中規定的長(cháng)距離傳輸(Long Run)指標??紤]到信號由芯片傳輸至連接器或通過(guò)背板傳輸引起的衰減,實(shí)際使用中需采用傳輸預加重和接收器均衡的技術(shù),具體參數都可通過(guò)芯片寄存器來(lái)設置和調整。

本文引用地址:http://dyxdggzs.com/article/201609/304015.htm

3 軟件方案設計

本方案中的SRIO邏輯層業(yè)務(wù)采用消息傳遞方式,借助Linux中RIO子系統將SRIO端口虛擬為一個(gè)以太網(wǎng)口,采用類(lèi)似于以太網(wǎng)的傳輸方式,這種方式不要求主設備知道被訪(fǎng)問(wèn)設備的存儲器狀況。

3.1 Linux下RIO系統

本系統中的嵌入式unux版本為3.0.48,內核中RIO子系統已經(jīng)完成RapidIO協(xié)議的解析、封裝、枚舉和規范實(shí)現等工作,子系統總體設計是按照設備驅動(dòng)模型的方式提供的,核心思想是一個(gè)三角關(guān)系:總線(xiàn)、設備和驅動(dòng)。其中總線(xiàn)riobus在文件rio_driver.c中實(shí)現,在配置內核時(shí)如果選中該總線(xiàn),系統運行后該總線(xiàn)即會(huì )存在,總線(xiàn)屏蔽了大量RapidIO技術(shù)細節。

基于類(lèi)似網(wǎng)口的RapidIO驅動(dòng)是在rionet.c文件中提供的,該驅動(dòng)在總線(xiàn)rio_bus上注冊成功后,使用rio_register_driver函數注冊到內核中,而一旦有設備與該驅動(dòng)匹配成功,該驅動(dòng)會(huì )使用register_netde向Linux系統中注冊一個(gè)網(wǎng)口設備。

RIO系統中關(guān)于設備的文件是rio.c、rio_scan.c,其中rio.c完成RapidIO控制器的注冊,rio_scan.c完成枚舉算法、拓撲掃描和交換器件信息處理等工作,并最終調用rio_add_device函數向RIO總線(xiàn)注冊一個(gè)設備。RIO總線(xiàn)中設備和驅動(dòng)的匹配規則是ID匹配,即所注冊的RapidIO控制器ID與系統中RapdidIO驅動(dòng)支持的ID一致,則RIO系統會(huì )自動(dòng)虛擬生成一個(gè)網(wǎng)口設備。

3.2 端點(diǎn)軟件

RIO子系統是Linux內核提供的,RapidIO控制器的設備描述與CPU硬件資源相關(guān),包括中斷、郵箱、門(mén)鈴、端口號、名稱(chēng)等資源信息。端點(diǎn)控制器初始化由內核中飛思卡爾提供的fsl_rio.c文件實(shí)現,主要完成端口和寄存器配置,以及維護事務(wù)窗口、讀寫(xiě)事務(wù)呼入/呼出窗口和呼出門(mén)鈴窗口的配置,然后填充一個(gè)mport數據結構,并最終將其注冊為一個(gè)控制器RIO設備。

3.3 交換器件

在枚舉過(guò)程中采用深度探測算法,即先讀取總端口數M,然后依次從0開(kāi)始(除去自身連接到的端口)進(jìn)行連接狀態(tài)的讀取,一旦發(fā)現有設備連接,即先為設備分配一個(gè)非0的ID,并設置該設備與CPS1432相連的端口路由表,主要是寫(xiě)入CPS1432的全局查找表,該表用于描述ID與端口的對應關(guān)系。系統運行后,對于包含有該設備ID號的數據包,CPS1432即可將其轉發(fā)到對應的端口。

3. 4 系統使用

在uboot中設定傳入內核的參數riohdid,對主設備將其值設定為0,對從設備設定為0xFF。系統完成枚舉過(guò)程后,即可在各端點(diǎn)看到一個(gè)SRIO網(wǎng)口設備,設置同一網(wǎng)段的IP地址,各端點(diǎn)之間可以互相ping通,也可以相互發(fā)送網(wǎng)絡(luò )包,從而實(shí)現互連互通。

結語(yǔ)

本方案實(shí)際使用中可以將每個(gè)端點(diǎn)和交換芯片都各自獨立成一個(gè)板卡,最后插到一個(gè)嵌入式機框中實(shí)現板到板高速互連通信。該方案在某通信設備上得到實(shí)現,運行良好,平均無(wú)故障時(shí)間達到預期要求,驗證了設計的正確性。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 串行RapidIO CPS1432 P2020

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>