《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > SPI-4.2總線應用和調試經驗談
SPI-4.2總線應用和調試經驗談
單片機與嵌入式系統(tǒng)
王 江 上海貝爾股份有限公司
摘要: SPI-4.2總線(System Packet Interface,系統(tǒng)間數(shù)據(jù)包接口)是一種速度高達10 Gb/s的芯片間互連總線,主要應用于ATM信元傳輸、POS(Packet Over SONET/SDH,基于SONET/SDH的包傳輸)和10 Gb/s以太網(wǎng)等高端場合。
Abstract:
Key words :

引言
    SPI-4.2總線(System Packet Interface,系統(tǒng)間數(shù)據(jù)包接口)是一種速度高達10 Gb/s的芯片間互連總線,主要應用于ATM信元傳輸、POS(Packet Over SONET/SDH,基于SONET/SDH的包傳輸)和10 Gb/s以太網(wǎng)等高端場合。特別在通信領域,很多高端處理器和網(wǎng)絡處理器,如Intel公司的IXP2800、Cavium公司的多內核處理器CN58xx系列、NetLogic公司的XLR732、Broadcom的BCM1480,幾乎都集成了SPI-4.2接口,以提高芯片的吞吐能力,適應通信產業(yè)朝著LTE(長期演進)發(fā)展的需求。還有眾多的物理層芯片,例如Cortina公司的CS1331,可以將SPI-4.2總線轉換成8個千兆以太網(wǎng)接口。SPI-4.2總線之所以被眾多的高端芯片所采用,與其高速、靈活、可靠的特性是密不可分的。

1 SPI-4.2總線基本原理
    SPI-4.2總線是一種芯片間的互連總線,連接芯片的鏈路層和物理層模塊。其工作時鐘是源同步雙邊沿觸發(fā)時鐘,至少為311 MHz。圖1是使用SPI-4.2總線連接兩個芯片的示意圖。可見,SPI-4.2總線的信號在發(fā)送和接收方向完全對稱而又互相獨立,數(shù)據(jù)鏈路和狀態(tài)鏈路分開,并且其時鐘也是完全分開的。因此,該總線不僅適合于雙向通道,而且適合于只收不發(fā)或者只發(fā)不收的單向通道。

a.jpg


    SPI-4.2總線具有以下特點:
    ①點對點互連,收發(fā)數(shù)據(jù)鏈路寬度為16位。
    ②發(fā)送和接收模塊的信號各分為兩組,即數(shù)據(jù)信號和狀態(tài)信號,分別對應數(shù)據(jù)鏈路和狀態(tài)鏈路,每個鏈路具有自己的時鐘。數(shù)據(jù)鏈路發(fā)送和接收數(shù)據(jù),狀態(tài)鏈路傳輸相應鏈路的狀態(tài)信息。
    ③數(shù)據(jù)鏈路包含DCLK、DAT[15:0]和CTL三種LVDS(低壓差分傳輸)信號。前面加“T”表示信號屬于發(fā)送模塊,加“R”表示信號屬于接收模塊。以發(fā)送模塊為例,TDCLK是雙邊沿觸發(fā)時鐘,TCTL是控制信號,TDAT[15:0]承載了數(shù)據(jù)和控制信息。當TCTL為高電平時,TDAT[15:0]傳送的是數(shù)據(jù)包;當TCTL為低電平時,TDAT[15:0]傳送的是控制包。數(shù)據(jù)采用DIP~4校驗交織碼。
    ④狀態(tài)鏈路包括SCLK時鐘信號和STAT[1:0]狀態(tài)信號,信號類型是LVTTL或LVDS。SPI~4.2發(fā)送時序如圖2所示。如果選擇LVTTL,則SC-LK時鐘頻率是數(shù)據(jù)鏈路時鐘速率的1/4。如果選擇LVDS,則SCLK時鐘頻率和數(shù)據(jù)鏈路時鐘頻率相同。下文中均以LVDS為例進行闡述。狀態(tài)鏈路主要用于流控。

b.jpg


    ⑤接收和發(fā)送模塊都含有一個FIFO隊列,用于緩存數(shù)據(jù),隊列長度由芯片設計而定。隊列的狀態(tài)信息通過狀態(tài)鏈路周期性地發(fā)送,接收模塊和發(fā)送模塊的狀態(tài)信息是獨立的。狀態(tài)信息附加了DIP-2交織校驗碼,以提高傳輸可靠性。


    除了數(shù)據(jù)包中最后一段不滿16字節(jié)的數(shù)據(jù)(EOP)之外,SPI-4.2總線的數(shù)據(jù)實行突發(fā)傳輸,以16字節(jié)為單位(稱為一個數(shù)據(jù)塊),每次傳輸多個數(shù)據(jù)塊。因為數(shù)據(jù)寬度是16位,所以一次突發(fā)傳輸至少需要4個時鐘周期。數(shù)據(jù)的高地址位字節(jié)先發(fā)送(MSB),低地址位字節(jié)后發(fā)送,數(shù)據(jù)塊傳輸過程中不會被中斷。每次突發(fā)傳輸?shù)拈g隔期間傳送控制包或者訓練序列。圖2中,TDAT表示數(shù)據(jù)塊,TCTRL表示控制塊。控制包長度為16位,包含了前次傳輸和下次傳輸?shù)臓顟B(tài)信息:包開始標志、包結束標志、邏輯端口地址和DIP-4交織校驗碼等。數(shù)據(jù)鏈路遵循有限狀態(tài)機進行工作,狀態(tài)包括5種:控制包傳輸、數(shù)據(jù)包傳輸、空閑包傳輸、訓練序列傳輸以及訓練序列控制。
    因為狀態(tài)鏈路的寬度是2位,所以每次突發(fā)傳輸至少傳輸16位數(shù)據(jù)(4個時鐘周期)。反映FIFO隊列的狀態(tài)信息有3種:飽(Satisfied)、餓(Hungry)、極餓(Starving),分別對應二進制數(shù)字10、01和00。11表示鏈路處于失步狀態(tài),正在同步過程中。當狀態(tài)是“飽”時,說明隊列幾乎滿了,只接收當前正在傳送的數(shù)據(jù)包,其他數(shù)據(jù)包只有等狀態(tài)更新后才能接收。當狀態(tài)是“餓”時,可以接收最大MaxBurst2個數(shù)據(jù)塊。當狀態(tài)是“極餓”時,說明隊列幾乎空了,可以接收最大MaxBurst1個數(shù)據(jù)塊。MaxBurst1和MaxBurst2是SPI-4.2總線初始化時設定的參數(shù),MaxBurst1不得小于MaxBurst2。

2 SPI-4.2總線的初始化和同步
    SPI-4.2總線初始化時必須設定一些基本參數(shù),如表1所列。

c.jpg


    SPI-4.2總線協(xié)議定義了一個叫“日歷”的數(shù)據(jù)結構CALENDAR[i](i=1,…,CALENDAR_LEN)。CALENDAR_LEN(日歷長度)參數(shù)規(guī)定了邏輯端口(或稱為虛擬通道)的數(shù)目,該數(shù)值不能小于實際的邏輯端口數(shù)目。例如,如果SPI-4.2總線用于10 Gb/s以太網(wǎng)口,那么日歷長度是1(即CALENDAR_LEN=1);如果SPI-4.2總線用于10個1 Gb/s以太網(wǎng)口,那么日歷長度是10(CALENDAR_LEN=10),CALENDAR[i]=1,2,…,10,代表了10個以太網(wǎng)端口。CALENDAR[i]中承載的數(shù)據(jù)被周而復始地依次傳輸,重復次數(shù)是CALENDAR_M次。圖3為日歷長度和重復次數(shù)都是4的數(shù)據(jù)傳輸示意圖。SPI-4.2總線被初始化時,必須確保接口兩端的CALENDAR_LEN和CALENDAR_M分別相等。從這個角度看,SPI-4.2是一種時分復用的總線:總帶寬是固定的,“日歷”數(shù)據(jù)結構決定了帶寬和邏輯端口的分配。
    當SPI-4.2正常工作時,數(shù)據(jù)和狀態(tài)鏈路會不定期地發(fā)送訓練序列。在數(shù)據(jù)鏈路,訓練序列至少應該在DATA_MAX_T個時鐘周期內發(fā)送一次。在狀態(tài)鏈路,訓練序列至少應該在FIFO_MAX_T個時鐘周期內發(fā)送一次。設置DATA_MAX_T或FIFO_MAX_T為0將取消各自鏈路的訓練序列,一般情況下不推薦這種設置。
    圖4以XLR732為參照描述了SPI-4.2總線的收發(fā)同步過程。啟動之后,在發(fā)送方向,發(fā)送模塊(TX)通過數(shù)據(jù)鏈路發(fā)送連續(xù)的訓練序列,對端的接收模塊成功收到訓練序列后,會設置本端的接收同步標志;然后通過狀態(tài)鏈路發(fā)送訓練序列給對端,一旦發(fā)送模塊成功接收到訓練序列后,就設置本端的發(fā)送同步標志。

d.jpg

 


    在接收方,接收模塊(RX)在數(shù)據(jù)鏈路成功接收到對端發(fā)送的訓練序列后,會設置本端的接收同步標志;然后通過狀態(tài)鏈路發(fā)送訓練序列,一旦發(fā)送模塊成功接收到訓練序列后,就設置本端的發(fā)送同步標志。
    在同步過程中,訓練序列由指定的連續(xù)的DIP-4碼字組成。發(fā)送模塊必須連續(xù)發(fā)送訓練序列,直到本端的狀態(tài)鏈路收到有效信息。同時,接收模塊忽視所有接收到的數(shù)據(jù),直到觀察到訓練序列,獲得數(shù)據(jù)同步。一旦數(shù)據(jù)鏈路同步之后,F(xiàn)IFO隊列狀態(tài)信息就開始傳送。如果發(fā)送
方接收到有效的狀態(tài)信息,它就可以開始進行數(shù)據(jù)突發(fā)傳輸。
    如果在工作過程中,由于某些原因(例如一端器件掉電或重啟)導致總線失步,那么為了再次獲得同步,雙方需要按照上述過程發(fā)送連續(xù)的訓練序列,直到建立同步為止。

3 SPI-4.2總線接口的調試
    SPI-4.2總線接口的調試包括兩個重要步驟:鏈路的同步和數(shù)據(jù)的正常收發(fā)。
    在調試鏈路同步時,首先必須查看總線兩端的初始化參數(shù)配置。因為SPI-4.2總線協(xié)議是一個對等端數(shù)據(jù)傳輸協(xié)議,所以大部分參數(shù)需要雙方的匹配和協(xié)商,特別是接收方和發(fā)送方的CALENDAR_LEN和CALENDAR_M參數(shù)。
    如何查看同步呢?芯片通常會提供一個狀態(tài)寄存器來反映總線的同步。“接收同步標志”只能說明在數(shù)據(jù)鏈路上成功接收到對端的訓練序列,但不能保證接收的狀態(tài)鏈路是正常的,如果需要確認可查看對端的“發(fā)送同步標志”。在收發(fā)雙向通道應用中,只有兩端的“接收同步標志”和“發(fā)送同步標志”都置位了,總線才算同步。此時,可以確認總線兩端的物理連接是正確的,握手成功。
    如果不能同步,就必須檢查兩端的“接收同步標志”和“發(fā)送同步標志”,判斷是哪一端出了問題。檢查是否有DIP4和DIP2錯誤,如果有此類錯誤,說明鏈路上信號質量可能不佳,可以用示波器測量信號波形。如果信號質量確實不好,可以通過提高信號驅動能力或者調整硬件匹配阻抗來優(yōu)化。如果兩端的接收和發(fā)送都沒有同步,就必須測量芯片的電壓、工作頻率、重啟等信號。
    如果兩端的“接收同步標志”和“發(fā)送同步標志”都已經置位,說明雙方的接收和發(fā)送都同步,可以正常收發(fā)數(shù)據(jù)了。在大流量數(shù)據(jù)傳輸過程中,最相關的是FIFO隊列的參數(shù)配置,配置不當會導致錯包或丟包。以NetLogic公司的XLR732網(wǎng)絡處理器為例,SPI-4.2總線的發(fā)送模塊的所有邏輯端口共享一個FIFO隊列,寬度為16字節(jié),長度為128;接收模塊的所有邏輯端口共享一個FIFO隊列,寬度為16字節(jié),長度為512。每個邏輯端口所占用的隊列地址和大小都可以通過寄存器配置。
    假如某個端口接收端隊列的長度是48,MaxBurst1是12,MaxBurst2是8。那么當該模塊接收數(shù)據(jù)時,如果由于某些原因(例如軟件來不及處理),接收隊列只剩下12個空位,也就是接收隊列已經有48-12=36個空位被占用時,它將通過狀態(tài)鏈路向對端發(fā)送“餓”的狀態(tài)信號(反壓信號)。對端收到該信號后實施流控策略,根據(jù)本端發(fā)送端的MaxBurst1設置值發(fā)送數(shù)據(jù),該值表示接收到“餓”狀態(tài)信號后最多還可以發(fā)送的數(shù)據(jù)塊數(shù)目。所以接收端的MaxBurst1的值一定要大于對端發(fā)送端的MaxBurst1,并且要留出一定的余量,因為數(shù)據(jù)在鏈路上的傳輸也是需要時間的。同理,接收端的MaxBurst2要大于對端發(fā)送端的MaxBurst2。值得注意的是,流控是基于邏輯端口的,而不是整條鏈路。
    為保證不發(fā)生接收端FIFO隊列溢出等問題,盡量將接收端的MaxBurst1和MaxBurst2設置大一些,只要小于FIFO入口總數(shù)就可以,而發(fā)送端MaxBurst1和MaxBurst2的設置不要超過本端接收能力。
    如果出現(xiàn)EOP(結束包)和SOP(起始包)錯誤或缺失,或者其他錯包(例如包長變短、幀校驗錯誤等),但沒有DIP4錯誤,該怎么辦?這類問題一般出現(xiàn)在FIFO隊列設置上,尤其是接收端的FIFO隊列可能溢出,從而丟失了某些數(shù)據(jù)塊,可以通過以下3種方法來檢測和解決:
    ①通過查看接收端FIFO溢出標志來判斷FIFO隊列是否溢出;
    ②通過調整接收端的MaxBurst1和MaxBurst2來防止FIFO隊列溢出;
    ③如果方法②的調整足夠大,還有此問題,可以查看對端是否收到反壓信號,以及對端的狀態(tài)等。
    為了方便,通常將發(fā)送端的MaxBurst1和MaxBurst2設置為相同數(shù)值,將接收端的MaxBurst1和MaxBurst2也設置成相同數(shù)值。

結語
    隨著處理器的速度越來越快,處理器集成的內核越來越多,處理器與外圍器件之間,處理器之間,以及外圍器件之間的連接速度逐漸成為制約平臺性能的瓶頸。許多芯片同時集成了多個總線接口,例如XLR732同時擁有SPI-4.2、HT、以太網(wǎng)3種總線接口。SPI-4.2總線在與其
他總線的競爭中體現(xiàn)出了強大的生命力,希望本文所介紹的經驗對正在應用或計劃應用SPI-4.2總線的同行有所幫助。

此內容為AET網(wǎng)站原創(chuàng),未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品国产亚洲5555| 国产精品第一区| 亚洲综合色婷婷| 亚洲毛片播放| 久久av一区| 欧美一区免费| 亚洲欧洲av一区二区三区久久| 亚洲婷婷在线| 亚洲少妇在线| 一区二区日韩免费看| 亚洲麻豆av| 亚洲美女黄网| 日韩视频中文| 日韩亚洲视频在线| 一区二区三区久久精品| 亚洲最新视频在线| 一区二区三区四区蜜桃| 亚洲视频一区二区| 亚洲无限av看| 亚洲女人天堂成人av在线| 午夜精品视频在线观看| 亚洲女与黑人做爰| 性欧美18~19sex高清播放| 欧美一区成人| 亚洲风情亚aⅴ在线发布| 亚洲欧洲久久| 夜夜嗨av一区二区三区中文字幕| 99国产精品视频免费观看| 夜夜嗨av一区二区三区网站四季av| 亚洲作爱视频| 亚洲午夜av在线| 午夜综合激情| 久久久久久亚洲精品不卡4k岛国| 午夜精品在线视频| 久久九九国产精品| 欧美成人视屏| 欧美日韩情趣电影| 国产精品嫩草久久久久| 国产欧美精品xxxx另类| 激情亚洲成人| 亚洲精品老司机| 亚洲一区二区在线看| 欧美一区二区日韩| 亚洲精品美女在线观看| 亚洲视频在线观看三级| 午夜精品久久久| 久久久久国产成人精品亚洲午夜| 牛牛国产精品| 欧美日韩精品在线视频| 国产乱码精品一区二区三区五月婷| 国产一区激情| 亚洲韩国一区二区三区| 亚洲午夜激情| 亚洲黄色免费| 亚洲永久在线| 欧美 日韩 国产在线 | 欧美黄色一区二区| 国产精品劲爆视频| 精品51国产黑色丝袜高跟鞋| 亚洲乱码国产乱码精品精98午夜 | 欧美激情二区三区| 国产精一区二区三区| 尤物yw午夜国产精品视频| 999亚洲国产精| 欧美一区二区三区在线| 亚洲开发第一视频在线播放| 午夜精品久久久久久99热| 蜜桃精品久久久久久久免费影院| 欧美日韩另类视频| 激情伊人五月天久久综合| 在线视频欧美日韩| 亚洲国产一区二区在线| 亚洲欧美视频| 欧美连裤袜在线视频| 国产一区二区三区免费在线观看 | 一本色道久久综合亚洲精品婷婷 | 香蕉久久国产| 欧美国产日韩一区二区三区| 国产精品一区二区久久国产| 亚洲国产欧美不卡在线观看| 欧美亚洲系列| 亚洲尤物视频在线| 欧美激情综合色综合啪啪| 国产一区二区三区最好精华液| 99天天综合性| 亚洲欧洲精品天堂一级| 久久久久国产精品人| 国产精品一区二区你懂的| 日韩视频免费在线观看| 91久久亚洲| 久久狠狠婷婷| 国产精品视频网站| 99亚洲伊人久久精品影院红桃| 亚洲激情成人| 久久精品综合| 国产精品一区=区| 一本色道久久综合亚洲二区三区| 亚洲精品社区| 欧美不卡三区| 影音先锋亚洲一区| 欧美在线观看一区二区| 性色一区二区三区| 国产精品国码视频| aa日韩免费精品视频一| 夜夜嗨av一区二区三区网站四季av| 欧美成ee人免费视频| 好吊色欧美一区二区三区四区| 亚洲一区二区三区高清不卡| 中日韩在线视频| 欧美日韩国产探花| 亚洲精品国产精品国产自| 亚洲黄色毛片| 男男成人高潮片免费网站| 禁久久精品乱码| 欧美在线视频日韩| 久久九九有精品国产23| 国产亚洲一区在线| 欧美亚洲三级| 久久久久久亚洲综合影院红桃| 国产精品视频久久久| 在线一区二区三区做爰视频网站| 亚洲私拍自拍| 国产精品hd| 亚洲午夜高清视频| 欧美一二三区精品| 国产欧美一区二区在线观看| 亚洲综合99| 久久精品国产99精品国产亚洲性色 | 狠狠色狠狠色综合人人| 久久本道综合色狠狠五月| 久久久国产精品一区二区三区| 国产午夜精品理论片a级大结局| 午夜性色一区二区三区免费视频| 羞羞答答国产精品www一本| 国产精品嫩草99av在线| 午夜精品久久久久久久| 久久久久久网| 亚洲国产美女精品久久久久∴| 亚洲人成人77777线观看| 欧美精品色综合| 日韩视频一区| 先锋a资源在线看亚洲| 国产视频在线观看一区| 亚洲第一精品夜夜躁人人爽 | 国产亚洲欧美一区| 亚洲第一精品夜夜躁人人躁| 欧美xart系列高清| 99精品国产在热久久| 午夜影院日韩| 韩日精品视频| 一本到12不卡视频在线dvd| 国产精品sss| 亚洲欧美怡红院| 久久综合色婷婷| 日韩视频免费看| 欧美一区二区三区久久精品茉莉花| 国产日产欧产精品推荐色 | 久久久综合激的五月天| 亚洲国产二区| 亚洲专区一区| 激情综合激情| 日韩一区二区精品葵司在线| 国产精品大全| 亚洲高清免费在线| 欧美日韩在线另类| 欧美专区亚洲专区| 欧美日韩国产在线播放网站| 亚洲性视频网址| 久久夜色精品一区| 99人久久精品视频最新地址| 久久精品九九| 亚洲精品乱码久久久久久黑人| 欧美一区二区三区电影在线观看| 伊人久久亚洲影院| 亚洲一区二区三区高清 | 亚洲高清毛片| 亚洲摸下面视频| 亚洲大片免费看| 亚洲一区欧美激情| 国内成人精品一区| 亚洲网站在线观看| 在线欧美影院| 欧美一区在线视频| 亚洲精品看片| 久久久91精品国产一区二区三区| 亚洲日本欧美天堂| 久久亚洲免费| 亚洲网站视频| 欧美精品123区| 久久精品人人爽| 国产精品家庭影院| 亚洲乱码国产乱码精品精| 国产伦精品一区二区| 这里只有精品视频| 在线观看日韩精品| 久久久99精品免费观看不卡| 在线亚洲精品| 免费成人激情视频| 久久激情五月丁香伊人| 国产精品美女在线|