《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > SPI4.2總線應用和調試經驗談
SPI4.2總線應用和調試經驗談
摘要: SPI4.2總線(System Packet Interface,系統間數據包接口)是一種速度高達10 Gb/s的芯片間互連總線,主要應用于ATM信元傳輸、POS(Packet Over SONET/SDH,基于SONET/SDH的包傳輸)和10 Gb/s以太網等高端場合。
Abstract:
Key words :

     引言

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

  1  SPI4.2總線基本原理

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

SPI4.2連接示意圖

圖1  SPI4.2連接示意圖

  SPI4.2總線具有以下特點:

 ?、?點對點互連,收發數據鏈路寬度為16位。

 ?、?發送和接收模塊的信號各分為兩組,即數據信號和狀態信號,分別對應數據鏈路和狀態鏈路,每個鏈路具有自己的時鐘。數據鏈路發送和接收數據,狀態鏈路傳輸相應鏈路的狀態信息。

 ?、?數據鏈路包含DCLK、DAT[15:0]和CTL三種LVDS(低壓差分傳輸)信號。前面加“T”表示信號屬于發送模塊,加“R”表示信號屬于接收模塊。以發送模塊為例,TDCLK是雙邊沿觸發時鐘,TCTL是控制信號,TDAT[15:0]承載了數據和控制信息。當TCTL為高電平時,TDAT[15:0]傳送的是數據包;當TCTL為低電平時,TDAT[15:0]傳送的是控制包。數據采用DIP4校驗交織碼。

 ?、?狀態鏈路包括SCLK時鐘信號和STAT[1:0]狀態信號,信號類型是LVTTL或LVDS。SPI4.2 發送時序如圖2所示。如果選擇LVTTL,則SCLK時鐘頻率是數據鏈路時鐘速率的1/4。如果選擇LVDS,則SCLK時鐘頻率和數據鏈路時鐘頻率相同。下文中均以LVDS為例進行闡述。狀態鏈路主要用于流控。

 ?、?接收和發送模塊都含有一個FIFO隊列,用于緩存數據,隊列長度由芯片設計而定。隊列的狀態信息通過狀態鏈路周期性地發送,接收模塊和發送模塊的狀態信息是獨立的。狀態信息附加了DIP2交織校驗碼,以提高傳輸可靠性。

SPI4.2 發送時序

圖2  SPI4.2 發送時序

  除了數據包中最后一段不滿16字節的數據(EOP)之外,SPI4.2總線的數據實行突發傳輸,以16字節為單位(稱為一個數據塊),每次傳輸多個數據塊。因為數據寬度是16位,所以一次突發傳輸至少需要4個時鐘周期。數據的高地址位字節先發送(MSB),低地址位字節后發送,數據塊傳輸過程中不會被中斷。每次突發傳輸的間隔期間傳送控制包或者訓練序列。圖2中,TDAT表示數據塊,TCTRL表示控制塊??刂瓢L度為16位,包含了前次傳輸和下次傳輸的狀態信息:包開始標志、包結束標志、邏輯端口地址和DIP4交織校驗碼等。數據鏈路遵循有限狀態機進行工作,狀態包括5種:控制包傳輸、數據包傳輸、空閑包傳輸、訓練序列傳輸以及訓練序列控制[1]。

  因為狀態鏈路的寬度是2位,所以每次突發傳輸至少傳輸16位數據(4個時鐘周期)。反映FIFO隊列的狀態信息有3種:飽(Satisfied)、餓(Hungry)、極餓(Starving),分別對應二進制數字10、01和00。11表示鏈路處于失步狀態,正在同步過程中。當狀態是“飽”時,說明隊列幾乎滿了,只接收當前正在傳送的數據包,其他數據包只有等狀態更新后才能接收。當狀態是“餓”時,可以接收最大MaxBurst2個數據塊。當狀態是“極餓”時,說明隊列幾乎空了,可以接收最大MaxBurst1個數據塊。MaxBurst1和MaxBurst2是SPI4.2總線初始化時設定的參數,MaxBurst1不得小于MaxBurst2。

  2  SPI4.2總線的初始化和同步

  SPI4.2總線初始化時必須設定一些基本參數,如表1所列。

  SPI4.2總線協議定義了一個叫“日歷”的數據結構CALENDAR[i](i=1,…,CALENDAR_LEN)。CALENDAR_LEN(日歷長度)參數規定了邏輯端口(或稱為虛擬通道)的數目,該數值不能小于實際的邏輯端口數目。例如,如果SPI4.2總線用于10 Gb/s以太網口,那么日歷長度是1(即CALENDAR_LEN = 1);如果SPI4.2總線用于10個1 Gb/s以太網口,那么日歷長度是10(CALENDAR_LEN = 10),CALENDAR[i] = 1,2,…,10,代表了10個以太網端口。CALENDAR[i]中承載的數據被周而復始地依次傳輸,重復次數是CALENDAR_M次。圖3為日歷長度和重復次數都是4的數據傳輸示意圖。SPI4.2總線被初始化時,必須確保接口兩端的CALENDAR_LEN和CALENDAR_M分別相等。從這個角度看,SPI4.2是一種時分復用的總線:總帶寬是固定的,“日歷”數據結構決定了帶寬和邏輯端口的分配。

  當SPI4.2正常工作時,數據和狀態鏈路會不定期地發送訓練序列。在數據鏈路,訓練序列至少應該在DATA_MAX_T個時鐘周期內發送一次。在狀態鏈路,訓練序列至少應該在FIFO_MAX_T個時鐘周期內發送一次。設置DATA_MAX_T或FIFO_MAX_T為0將取消各自鏈路的訓練序列,一般情況下不推薦這種設置。

  圖4以XLR732為參照描述了SPI4.2總線的收發同步過程。啟動之后,在發送方向,發送模塊(TX)通過數據鏈路發送連續的訓練序列,對端的接收模塊成功收到訓練序列后,會設置本端的接收同步標志;然后通過狀態鏈路發送訓練序列給對端,一旦發送模塊成功接收到訓練序列后,就設置本端的發送同步標志。

  在接收方,接收模塊(RX)在數據鏈路成功接收到對端發送的訓練序列后,會設置本端的接收同步標志;然后通過狀態鏈路發送訓練序列,一旦發送模塊成功接收到訓練序列后,就設置本端的發送同步標志。在同步過程中,訓練序列由指定的連續的DIP4碼字組成。發送模塊必須連續發送訓練序列,直到本端的狀態鏈路收到有效信息。同時,接收模塊忽視所有接收到的數據,直到觀察到訓練序列,獲得數據同步。一旦數據鏈路同步之后, FIFO隊列狀態信息就開始傳送。

  如果發送方接收到有效的狀態信息,它就可以開始進行數據突發傳輸。如果在工作過程中,由于某些原因(例如一端器件掉電或重啟)導致總線失步,那么為了再次獲得同步,雙方需要按照上述過程發送連續的訓練序列,直到建立同步為止。

表1  SPI4.2初始化基本參數

SPI4.2初始化基本參數
日歷長度和重復次數都為4的數據傳輸示意圖

圖3  日歷長度和重復次數都為4的數據傳輸示意圖

 收發同步過程示意圖

圖4  收發同步過程示意圖

  3  SPI4.2總線接口的調試

  SPI4.2總線接口的調試包括兩個重要步驟:鏈路的同步和數據的正常收發。

  在調試鏈路同步時,首先必須查看總線兩端的初始化參數配置。因為SPI4.2 總線協議是一個對等端數據傳輸協議,所以大部分參數需要雙方的匹配和協商,特別是接收方和發送方的CALENDAR_LEN和CALENDAR_M參數。

  如何查看同步呢?芯片通常會提供一個狀態寄存器來反映總線的同步。“接收同步標志”只能說明在數據鏈路上成功接收到對端的訓練序列,但不能保證接收的狀態鏈路是正常的,如果需要確認可查看對端的“發送同步標志”。在收發雙向通道應用中,只有兩端的“接收同步標志”和“發送同步標志”都置位了,總線才算同步。此時,可以確認總線兩端的物理連接是正確的,握手成功。

  如果不能同步,就必須檢查兩端的“接收同步標志”和“發送同步標志”,判斷是哪一端出了問題。檢查是否有DIP4和DIP2錯誤,如果有此類錯誤,說明鏈路上信號質量可能不佳,可以用示波器測量信號波形。如果信號質量確實不好,可以通過提高信號驅動能力或者調整硬件匹配阻抗來優化。

  如果兩端的接收和發送都沒有同步,就必須測量芯片的電壓、工作頻率、重啟等信號。如果兩端的“接收同步標志”和“發送同步標志”都已經置位,說明雙方的接收和發送都同步,可以正常收發數據了。在大流量數據傳輸過程中,最相關的是FIFO隊列的參數配置,配置不當會導致錯包或丟包。以NetLogic公司的XLR732網絡處理器為例[2],SPI4.2總線的發送模塊的所有邏輯端口共享一個FIFO隊列,寬度為16字節,長度為128;接收模塊的所有邏輯端口共享一個FIFO隊列,寬度為16字節,長度為512。每個邏輯端口所占用的隊列地址和大小都可以通過寄存器配置。

  假如某個端口接收端隊列的長度是48,MaxBurst1是12,MaxBurst2是8。那么當該模塊接收數據時,如果由于某些原因(例如軟件來不及處理),接收隊列只剩下12個空位,也就是接收隊列已經有48-12=36個空位被占用時,它將通過狀態鏈路向對端發送“餓”的狀態信號(反壓信號)。對端收到該信號后實施流控策略,根據本端發送端的MaxBurst1設置值發送數據,該值表示接收到“餓”狀態信號后最多還可以發送的數據塊數目。所以接收端的MaxBurst1 的值一定要大于對端發送端的MaxBurst1,并且要留出一定的余量,因為數據在鏈路上的傳輸也是需要時間的。同理,接收端的MaxBurst2要大于對端發送端的MaxBurst2。值得注意的是,流控是基于邏輯端口的,而不是整條鏈路。

  為保證不發生接收端FIFO隊列溢出等問題,盡量將接收端的MaxBurst1和MaxBurst2設置大一些, 只要小于FIFO入口總數就可以,而發送端MaxBurst1和MaxBurst2的 設置不要超過本端接收能力。

  如果出現EOP(結束包)和SOP(起始包)錯誤或缺失,或者其他錯包(例如包長變短、幀校驗錯誤等),但沒有DIP4 錯誤,該怎么辦?這類問題一般出現在FIFO隊列設置上,尤其是接收端的FIFO隊列可能溢出,從而丟失了某些數據塊,可以通過以下3種方法來檢測和解決:

  ① 通過查看接收端FIFO溢出標志來判斷FIFO隊列是否溢出;

 ?、?通過調整接收端的MaxBurst1和MaxBurst2來防止FIFO隊列溢出;

 ?、?如果方法②的調整足夠大,還有此問題,可以查看對端是否收到反壓信號,以及對端的狀態等。

  為了方便,通常將發送端的MaxBurst1和MaxBurst2設置為相同數值,將接收端的MaxBurst1和MaxBurst2也設置成相同數值。

  結語

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

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美激情中文字幕一区二区| 亚洲精品黄网在线观看| 欧美电影免费观看高清完整版| 在线成人小视频| 久久夜色精品亚洲噜噜国产mv| 1000部精品久久久久久久久| 久久一区二区三区av| 欧美视频中文在线看| 美女国内精品自产拍在线播放| 亚洲一区二区三区成人在线视频精品| 亚洲精品一二区| 国产欧美1区2区3区| 免费视频一区| 午夜影视日本亚洲欧洲精品| 国内久久婷婷综合| 国产日韩欧美亚洲一区| 欧美激情久久久久| 亚洲一区二区欧美日韩| 国产精品人人爽人人做我的可爱| 欧美成年视频| 久久久久一本一区二区青青蜜月| 亚洲欧洲精品成人久久奇米网| 国内精品视频666| av成人免费| 午夜亚洲精品| 在线观看亚洲| 欧美承认网站| 欧美日韩一区二区三区免费| 你懂的视频一区二区| 欧美凹凸一区二区三区视频| 亚洲午夜三级在线| 中文欧美字幕免费| 日韩午夜剧场| 亚洲第一狼人社区| 国产精品久久久久国产精品日日| 欧美经典一区二区| 亚洲大胆视频| 欧美日韩在线视频一区二区| 国产日韩一级二级三级| 精品999网站| 欧美日韩视频在线观看一区二区三区| 亚洲人成精品久久久久| 久久免费视频在线观看| 国产日韩av一区二区| 久久综合综合久久综合| 最新日韩av| 国产一区二区三区成人欧美日韩在线观看| 欧美日韩国产成人高清视频| 欧美日韩一二三四五区| 亚洲国产欧洲综合997久久| 国产欧美一区二区视频| 欧美午夜电影一区| 国产日产精品一区二区三区四区的观看方式| 欧美日韩在线一区二区三区| 久久精品国产99国产精品澳门| 国产精品欧美一区二区三区奶水| 欧美一区二区三区精品电影| 久久久久国产精品一区三寸| 91久久国产综合久久| 欧美日韩国产在线观看| 悠悠资源网久久精品| av72成人在线| 国产亚洲一区二区三区在线观看| 欧美在线免费观看| 亚洲网站在线观看| 欧美亚洲尤物久久| 禁久久精品乱码| 一区二区免费在线观看| 国产精品成人午夜| 欧美a级一区二区| 国产精品入口夜色视频大尺度| 国产精品人人爽人人做我的可爱| 亚洲国产精品一区二区三区| 樱桃成人精品视频在线播放| 亚洲精华国产欧美| 国产精品理论片| 国外成人在线视频| 亚洲一区二区三区免费在线观看| 久久夜色精品国产噜噜av| 亚洲国产精品悠悠久久琪琪| 国产精品视频午夜| 亚洲观看高清完整版在线观看| 尤物网精品视频| 亚洲精品裸体| 国产精品av免费在线观看| 可以免费看不卡的av网站| 亚洲一级在线| 香蕉乱码成人久久天堂爱免费| 欧美精选午夜久久久乱码6080| 亚洲精品一区二区三区蜜桃久| 国产精品久久久久秋霞鲁丝| 亚洲欧美在线另类| 欧美成年人网| 欧美国产日韩一二三区| 欧美mv日韩mv国产网站app| 国产区二精品视| 欧美视频一区二区三区在线观看| 在线观看视频一区二区| 国产一区二区欧美| 亚洲欧洲日本国产| 国产精品国产三级国产aⅴ浪潮| 久久噜噜噜精品国产亚洲综合| 欧美日韩一区在线观看视频| 国自产拍偷拍福利精品免费一| 久久久久久久久久久一区| 欧美一区二区三区在线观看| 亚洲天堂久久| 在线精品视频在线观看高清| 91久久精品国产91久久| 国产偷国产偷亚洲高清97cao| 国产在线一区二区三区四区| 欧美国产日韩一区二区三区| 欧美一区二区| 亚洲视频1区2区| 国产欧美日韩综合| 国产欧美一区二区三区另类精品| 久久久一本精品99久久精品66| 国产精品丝袜91| 国产精品日韩欧美一区二区三区| 一个人看的www久久| 激情亚洲成人| 欧美一区二区三区啪啪| 欧美色欧美亚洲另类七区| 欧美日韩视频在线观看一区二区三区| 国产精品国产三级国产a| 欧美人在线观看| 亚洲欧美精品suv| 久久久欧美精品| 男人的天堂亚洲在线| 99re亚洲国产精品| 久久一日本道色综合久久| 久久久精品2019中文字幕神马| 国产精品综合视频| 国产精品海角社区在线观看| 国产精品高清在线观看| 午夜精品福利电影| 欧美精选午夜久久久乱码6080| 久久免费观看视频| 午夜精品久久久久久久久久久久久| 欧美体内she精视频在线观看| 欧美精品在线一区二区| 久久大逼视频| 美女精品视频一区| 亚洲欧美精品一区| 国产精品一区二区男女羞羞无遮挡| 久久九九热re6这里有精品| 国外成人网址| 久久福利资源站| 久久久久青草大香线综合精品| 欧美日韩在线视频观看| 久久欧美中文字幕| 欧美在线高清视频| 国产日韩一级二级三级| 欧美日韩日日夜夜| 精品成人一区二区三区| 国内一区二区三区| 久久午夜电影网| 亚洲精品久久久蜜桃| 亚洲欧美视频一区二区三区| 欧美第一黄色网| 欧美日韩国产影片| 黄网站免费久久| 欧美视频中文在线看| 亚洲国产欧美另类丝袜| 国产一区二区你懂的| 亚洲人成艺术| 欧美日韩精品| 亚洲精品乱码久久久久久日本蜜臀| 欧美本精品男人aⅴ天堂| 久久狠狠久久综合桃花| 性久久久久久久| 狠久久av成人天堂| 亚洲专区在线视频| 老司机免费视频久久| 久久久综合激的五月天| 日韩一级视频免费观看在线| 欧美成人有码| 久久精品欧美日韩精品| 久久天天躁狠狠躁夜夜av| 免费在线观看精品| 欧美三日本三级少妇三99| 另类人畜视频在线| 久久久久国产精品麻豆ai换脸| 久久久噜噜噜久久狠狠50岁| 亚洲免费成人av电影| 黄色工厂这里只有精品| 国产区日韩欧美| 欧美三级韩国三级日本三斤| 国产精品乱码一区二区三区| 在线观看欧美黄色| 在线日本高清免费不卡| 欧美精品日韩一本| 蜜臀91精品一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 国产精品性做久久久久久| 国产欧美一区二区精品忘忧草| 欧美理论大片| 在线成人av.com| 久久久久成人精品免费播放动漫| 欧美日韩你懂的| 国产一区 二区 三区一级| 中文精品视频一区二区在线观看| 欧美精品综合| 欧美在线一区二区| 国内精品免费在线观看| 有码中文亚洲精品| 亚洲精品色婷婷福利天堂| 久久精品二区| 午夜久久福利| 久久久噜噜噜久噜久久| 在线视频日韩精品| 国产亚洲精品久久久久婷婷瑜伽| 国内在线观看一区二区三区| 久久日韩精品| 亚洲视频高清| 国产精品欧美一区二区三区奶水| 欧美日韩一区二区视频在线| 欧美午夜www高清视频| 一本一本久久a久久精品综合麻豆| 亚洲国产人成综合网站| 国产精品一区二区在线观看不卡| 欧美日韩一二三区| 亚洲一区二区在| 美女啪啪无遮挡免费久久网站| 久热综合在线亚洲精品| 久久综合狠狠综合久久综青草| 国产欧美一区二区三区沐欲| 欧美高清免费| 国产亚洲一二三区| 亚洲一区综合| 欧美激情一区二区三区在线| 国产亚洲精久久久久久| 欧美一区二区三区在线观看| 欧美在线啊v| 欧美性猛交xxxx乱大交退制版| 国产精品va在线| 亚洲国产aⅴ天堂久久| 欧美精品在线观看91| 中文有码久久| 久久久精品一区二区三区| 欧美在线一二三| 亚洲乱码视频| 一区二区91| 国产精品夜色7777狼人| 亚洲七七久久综合桃花剧情介绍| 91久久精品国产91性色tv| 欧美日韩一区二区在线| 亚洲大片av| 蜜臀久久99精品久久久画质超高清| 亚洲一区区二区| 亚洲国产一区在线| av成人天堂| 亚洲欧美影院| 久久久亚洲国产美女国产盗摄| 日韩视频精品在线| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩免费在线视频| 久久精品国产精品亚洲精品| 亚洲黄色影片| 国产精品扒开腿做爽爽爽视频| 久久久水蜜桃av免费网站| 久久激情综合| 久久久久久久一区| 国产精品视频你懂的| 国产精品资源在线观看| 久久久久成人精品免费播放动漫| 一区二区三区在线免费观看| 麻豆精品在线播放| 亚洲一区二区三区精品视频| 欧美a级片网站| 永久免费视频成人| 欧美激情一区二区三区高清视频| 国产一区免费视频| 亚洲第一页在线| 欧美日韩性视频在线| 久久久久九九九九| 美玉足脚交一区二区三区图片| 国产欧美日韩免费看aⅴ视频| 亚洲小说欧美另类婷婷| 在线视频国产日韩| 欧美日韩在线三区| 国产日韩在线看片| 国产精品毛片| 欧美日韩国产首页| 国产精品久久激情| 国产精品v欧美精品v日本精品动漫| 欧美日韩一区二区三区四区在线观看| 国产婷婷97碰碰久久人人蜜臀| 亚洲第一综合天堂另类专| 亚洲免费大片| 欧美高清你懂得| 国产精品男人爽免费视频1| 欧美多人爱爱视频网站| 免费成人高清| 六月婷婷一区| 午夜视频精品| 国产网站欧美日韩免费精品在线观看| 韩国av一区二区三区| 欧美在线资源| 国产午夜精品理论片a级探花| 国产精品sss| 国产资源精品在线观看| 美国十次了思思久久精品导航| 欧美激情视频给我| 欧美一区二区三区免费视频| 一区二区三区偷拍| 欧美久久成人| 免费久久99精品国产| 国产一二三精品| 一区二区高清在线观看| 欧美大学生性色视频| 欧美图区在线视频| 久久精品91久久久久久再现| 国产精品日韩高清| 久久精品欧美日韩| 亚洲激情在线播放| 国产综合欧美在线看| 欧美视频在线免费看| 欧美日韩另类视频| 欧美日韩免费观看一区=区三区| 最近看过的日韩成人| 伊人成人在线视频| 亚洲美女色禁图| 久久久国产一区二区三区| 国产一区日韩二区欧美三区| 国产美女诱惑一区二区| 一区三区视频| 亚洲大胆人体在线|