• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

    2014-07-02 08:43:00張健林錫龍謝江波
    關(guān)鍵詞:枚舉走線端口

    張健,林錫龍,謝江波

    (廣州海格通信集團(tuán)股份有限公司,廣州510663)

    引 言

    串行RapidIO(SRIO)是針對(duì)嵌入式系統(tǒng)內(nèi)部高速互連應(yīng)用而設(shè)計(jì)的,數(shù)據(jù)打包效率高、傳輸時(shí)延小、協(xié)議及流控機(jī)制簡(jiǎn)單、糾錯(cuò)重傳機(jī)制和協(xié)議棧易于用硬件實(shí)現(xiàn),降低了軟件復(fù)雜度,支持多種物理層技術(shù)和傳輸模式,易于擴(kuò)展。SRIO引腳少、成本低,便于器件之間的互連。表1列出10G級(jí)互連技術(shù)的比較。

    通過(guò)比較可以看出,SRIO可以滿足高性能嵌入式系統(tǒng)芯片間及板間互連對(duì)帶寬、成本、靈活性和可靠性越來(lái)越高的要求。本文介紹基于SRIO交換芯片CPS1432的高速處理系統(tǒng),從總體設(shè)計(jì)、硬件設(shè)計(jì)和軟件設(shè)計(jì)3個(gè)方面介紹RapidIO互連技術(shù)方案。

    1 系統(tǒng)設(shè)計(jì)

    RapidIO網(wǎng)絡(luò)主要由終端器件(End Point)和交換器件(Switch)組成。在本方案中終端器件采用P2020型CPU,運(yùn)行嵌入式Linux系統(tǒng),交換器件采用CPS1432,兩者組成星型拓?fù)浣Y(jié)構(gòu)??傮w設(shè)計(jì)方案如圖1所示。

    表1 10G級(jí)互連技術(shù)比較

    圖1 總體設(shè)計(jì)方案

    SRIO物理層支持全雙工傳輸和1x、2x及4x三種連接方式,采用8/10 b編碼,為了提高系統(tǒng)的吞吐量,本方案采用4x方式連接,理論帶寬可達(dá)到10 Gbps。整個(gè)系統(tǒng)的終端器件中有且只有一個(gè)ID為0的主設(shè)備,其他終端器件都是從設(shè)備。在系統(tǒng)初始化過(guò)程中,主設(shè)備對(duì)各個(gè)從設(shè)備進(jìn)行枚舉,并為從設(shè)備分配一個(gè)非0的ID,這些ID類似于以太網(wǎng)中的MAC地址。在枚舉過(guò)程中,通過(guò)發(fā)送維護(hù)包,對(duì)交換器件CPS1432的各個(gè)端口進(jìn)行設(shè)置,建立各個(gè)端口與終端器件的對(duì)應(yīng)關(guān)系,初始化交換芯片各個(gè)端口的路由表。當(dāng)整個(gè)系統(tǒng)枚舉完成后,終端器件發(fā)送包含目的ID的數(shù)據(jù)包,即可通過(guò)CPS1432轉(zhuǎn)發(fā)到目的終端器件的對(duì)應(yīng)端口,從而實(shí)現(xiàn)互連互通。

    2 硬件方案設(shè)計(jì)

    2.1 硬件設(shè)計(jì)

    P2020是飛思卡爾公司的高性能雙核通信處理器,基于45 nm工藝,采用e500 Power Architecture核心,主頻可達(dá)1.2 GHz,對(duì)應(yīng)的單核器件為P2010。兩者均集成了豐富的接口,包括Ser Des、千兆以太網(wǎng)、PCI-Express、RapidIO以及USB等。內(nèi)部4個(gè)Ser Des通道可在2個(gè)SRIO端口、3個(gè)PCI-Express端口以及2個(gè)SGMII端口之間進(jìn)行分配,P2020內(nèi)部功能單元如圖2所示。

    圖2 P2020內(nèi)部功能單元

    P2020內(nèi)部集成了符合RapidIO Interconnect Specification1.2版本規(guī)范的RapidIO控制器,控制器由RapidIO端口和RapidIO消息單元(RMU)組成。P2020的2個(gè)SRIO端口都支持1x或4x的物理鏈路,單條Ser Des鏈路最大支持3.125 Gbps的波特率,4x端口理論峰值帶寬為10 Gbps。消息傳遞單元支持2個(gè)數(shù)據(jù)消息發(fā)送控制器(outbound message controller)、2個(gè)數(shù)據(jù)消息接收控制器(inbound message controller)、1個(gè)門鈴消息發(fā)送控制器(outbound doorbell controller)、1個(gè)門鈴消息接收控制器(inbound doorbell controller)以及1個(gè)端口寫(xiě)接收控制器(inbound port-write controller)。消息傳遞單元支持3種操作模式:直接模式(Direct model)、隊(duì)列模式(Chaining model)和多播模式(Multicast model)。支持硬件的錯(cuò)誤檢查和重發(fā)機(jī)制,減輕了CPU的負(fù)擔(dān)。

    CPS1432是IDT公司的RapidIO交換芯片,基于RapidIO 2.1規(guī)范(向下兼容),共有32路串行通道,可以靈活配置為8個(gè)4x,14個(gè)2x,14個(gè)1x的端口工作方式,端口速率最大支持到6.25 Gbps,芯片內(nèi)部交換帶寬達(dá)到160 Gbps,廣泛地應(yīng)用于板內(nèi)及板間芯片的RapidIO互連。該芯片支持上電配置引腳來(lái)進(jìn)行配置,也可以通過(guò)SRIO、I2C總線或JTAG接口直接操作內(nèi)部寄存器,同時(shí)I2C總線接口支持主模式,可從外部I2C EPROM中直接讀取配置數(shù)據(jù),其接口單元如圖3所示。

    為了便于配置不同的模式,本系統(tǒng)將P2020和CPS1432的配置引腳都引入了FPGA,CPS1432的I2C總線接口連接到板載CPU的I2C總線接口上,由CPU進(jìn)行內(nèi)部寄存器的讀寫(xiě)控制。上電復(fù)位時(shí),通過(guò)P2020的配置引腳cfg_IO_ports[0:3]將4個(gè)Ser Des通道配置為一個(gè)4x的SRIO端口,速率3.125 Gbps,根據(jù)芯片要求,Serdes參考時(shí)鐘應(yīng)選擇125 MHz。通過(guò)CPS1432的配置引腳QCFG[7:0]和SPD[2:0]將32路串行鏈路配置為8個(gè)4x的SRIO端口,速率均為3.125 Gbps。

    圖3 CPS1432接口單元

    2.2 注意事項(xiàng)

    在電路設(shè)計(jì)上,由于SRIO引腳數(shù)量少,互連相對(duì)簡(jiǎn)單。收發(fā)信號(hào)之間采用交流耦合方式,在數(shù)據(jù)接收端串接0.1μF的去耦電容,如圖4所示。電容推薦采用0402封裝,布局上靠近芯片接收端引腳放置,且4個(gè)通道的耦合電容與芯片引腳之間的走線等長(zhǎng)。

    圖4 去耦電容靠近接收端

    在PCB設(shè)計(jì)方面,基于信號(hào)完整性的考慮,需注意以下幾點(diǎn):

    ①對(duì)于常用的FR4板材,要注意疊層和走線的線寬,滿足差分阻抗100Ω;

    ②差分線對(duì)內(nèi)要求嚴(yán)格等長(zhǎng),由于SRIO收發(fā)信號(hào)獨(dú)立,對(duì)于2x或4x的鏈路,收發(fā)各自的差分對(duì)之間也要做等長(zhǎng)處理(本系統(tǒng)要求相差10 mil以內(nèi));

    ③盡量全直線走線,需要彎折的地方,采用圓弧轉(zhuǎn)折;

    ④使用中間層走線,避免頂層和底層,且走線外圍做包地處理;

    ⑤盡量不要超過(guò)3個(gè)過(guò)孔(不包括BGA發(fā)送端的扇出過(guò)孔),信號(hào)換層時(shí),要在換層的過(guò)孔兩側(cè)添加用于回流的地孔。

    圖5是本系統(tǒng)中的CPS1432芯片外圍的局部走線圖。

    圖5 PCB局部走線圖

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

    3 軟件方案設(shè)計(jì)

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

    3.1 Linux下RIO系統(tǒng)

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

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

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

    3.2 端點(diǎn)軟件

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

    3.3 交換器件

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

    3.4 系統(tǒng)使用

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

    結(jié) 語(yǔ)

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

    [1]丁星,陳浩,倪明,等.Linux下RapidIO子系統(tǒng)的分析與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010(5).

    [2]陳劍波.RapidIO總線技術(shù)的研究[J].計(jì)算機(jī)與網(wǎng)絡(luò),2005,47(9).

    [3]宋寶華.Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解[M].北京:人民郵電出版社,2010.

    [4]Sam Fuller.RapidIO嵌入式系統(tǒng)互連[M].王勇,譯.北京:電子工業(yè)出版社,2006.

    [5]Richard Stevens W.TCP/IP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2009.

    猜你喜歡
    枚舉走線端口
    基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
    速讀·上旬(2022年2期)2022-04-10 16:42:14
    一種高效的概率圖上Top-K極大團(tuán)枚舉算法
    一種端口故障的解決方案
    一種大承重集裝袋
    塑料包裝(2019年6期)2020-01-15 07:55:46
    端口阻塞與優(yōu)先級(jí)
    基于太陽(yáng)影子定位枚舉法模型的研究
    淺析PCB中DDR3等長(zhǎng)線的設(shè)計(jì)
    PCB板內(nèi)阻抗測(cè)試需求與技術(shù)
    初識(shí)電腦端口
    電腦迷(2015年6期)2015-05-30 08:52:42
    生成樹(shù)協(xié)議實(shí)例探討
    东乡县| 庆阳市| 新河县| 双城市| 南陵县| 茌平县| 晋中市| 吴旗县| 海门市| 马公市| 龙井市| 达尔| 渝北区| 岳普湖县| 沙坪坝区| 长海县| 库尔勒市| 佛坪县| 呼和浩特市| 濮阳县| 漯河市| 米泉市| 滕州市| 杂多县| 汨罗市| 昌邑市| 阿克苏市| 乳山市| 宝兴县| 无锡市| 海宁市| 长寿区| 日喀则市| 鄂托克前旗| 乌拉特后旗| 贡嘎县| 永年县| 郯城县| 大化| 沛县| 乾安县|