CPS1432交換芯片的串行RapidIO互連技術(shù)
本系統中的P2020和CPS1432分別處在兩塊板卡上,采用了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.htm3 軟件方案設計
本方案中的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ò)程中采用深度探測算法,即先讀取CPS1432總端口數M,然后依次從0開(kāi)始(除去自身連接到CPS1432的端口)進(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í)間達到預期要求,驗證了設計的正確性。
評論