新聞中心

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

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

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

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

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

        3 軟件方案設(shè)計

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

        3.1 Linux下RIO系統(tǒng)

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

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

        RIO系統(tǒng)中關(guān)于設(shè)備的文件是rio.c、rio_scan.c,其中rio.c完成RapidIO控制器的注冊,rio_scan.c完成枚舉算法、拓?fù)鋻呙韬徒粨Q器件信息處理等工作,并最終調(diào)用rio_add_device函數(shù)向RIO總線注冊一個設(shè)備。RIO總線中設(shè)備和驅(qū)動的匹配規(guī)則是ID匹配,即所注冊的RapidIO控制器ID與系統(tǒng)中RapdidIO驅(qū)動支持的ID一致,則RIO系統(tǒng)會自動虛擬生成一個網(wǎng)口設(shè)備。

        3.2 端點軟件

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

        3.3 交換器件

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

        3. 4 系統(tǒng)使用

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

        結(jié)語

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


        上一頁 1 2 下一頁

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

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 十堰市| 肇源县| 绥德县| 古浪县| 尚义县| 德昌县| 梨树县| 六枝特区| 阜平县| 施秉县| 城市| 兴宁市| 银川市| 曲水县| 米泉市| 萨嘎县| 雷州市| 台前县| 临邑县| 石城县| 中阳县| 刚察县| 金昌市| 惠来县| 绩溪县| 香港 | 滦平县| 郴州市| 武城县| 霍城县| 岳阳县| 云林县| 原阳县| 冀州市| 武陟县| 龙山县| 比如县| 扎囊县| 日土县| 精河县| 沁水县|