Granite River Labs USB 3.2 Gen1 Loopback Mode LTSSM Link Layer

熟稔資料連結層訓練與迴環模式 USB 3.2 Gen1測試輕鬆過關

2022-12-09
通用序列匯流排(USB)3.2的迴環模式(Loopback Mode)是USB 3.2資料連結層(Link Layer)中的一種模式,主要用於USB 3.2主機或設備的接收端位元錯誤率(BER)測試。但在實際測試中,待測物並不是每次都能成功進入迴環模式,因此讓待測物順利進入迴環模式變成USB 3.2接收端測試的關鍵。

本文將以USB 3.2 Gen1的工作模式來說明USB 3.2 Gen1測試中,儀器如何讓待測物進入迴環模式。

資料連結層訓練及LTSSM

首先說明鏈路訓練狀態機(Link Training and Status State Machine, LTSSM)的工作狀態與連接狀態。

工作狀態

鏈路訓練狀態機(LTSSM)主要用於控制鏈路的連結狀態和鏈路的電源管理,包括U0~U3四種工作狀態。

U0狀態表示超高速連結處於允許狀態,資料包正在發送或資料連結處於空閒狀態;U1表示低功耗資料連結狀態,此時沒有資料包發送,超高速資料連結處於非允許狀態以節省功耗;U2也是一種低功耗狀態(可進一步節省功耗,但是如果退出該狀態則需要更長的等待時間);而U3為資料連結中止,設備呈現掛起的狀態(可進一步節省功耗)。

當主機正常辨識到USB 3.2 Gen1設備,在操作主機進入睡眠或者重啟動作的過程中,即可抓取到U0~U3的不同狀態(圖1)。

圖1 狀態U0~U3(截自LeCroy USB3.2協議分析)

連接狀態

USB 3.2 Revision 1.0規範中,可以看到鏈路訓練狀態機流程圖(圖2)中有四種連接狀態,分別為RX.Detect、Polling、Recovery以及Host Reset,以下簡單介紹這四種連接狀態。

圖2 LTSSM鏈路訓練狀態機流程圖

.Rx.Detect

表示當連結接電後,主機和設備能夠互相辨識到雙方的存在,一旦辨識到,雙方將開始進入初始化訓練程式。

.Polling

表示主機和設備在訓練初始化發送端和接收端進行同步,準備進行資料包的發送。

.Recovery

主要出現在當前連結發現當前系統要從低功耗狀態切換出來,當前沒有工作處於U0狀態,而需要重新進行訓練和配置的時候進行連結恢復。

.Host Reset

表示連結允許下行埠重新設置上行埠。

圖2中還有另外兩個連接狀態Loopback和Compliance Mode,引進用於位元錯誤率測試以及發送端標準測試;其他兩種狀態為SS.Inactive和SS.Disabled,分別為連結出現錯誤而處於不可操作的狀態,以及連結工作在非超高速模式且可能處於USB 2.0模式的狀態。從圖中還可以看出,從連結上電到正常工作需要經歷Rx.Detect、Polling、U0三個階段。其中,Polling過程會對連結上的終端設備進行相關初始化設置,從Rx.Detect到U0的過程需要經歷的步驟如圖3所示。

圖3 Rx.Detect到U0副程式步驟
資料來源:Granite River Labs

在Rx.Detect階段,連結上的主機或設備開始識別遠端是否有終端,如果有終端,則連結上的終端均開始發送特定規格的Polling.LFPS碼(低頻週期突發訊號,週期在20奈秒到100毫秒之間)。LFPS訊號是一個非常關鍵的訊號,透過不同特徵的LFPS訊號,可以實現主機或設備在安裝不同的狀態之間進行切換,不同特徵的LFPS訊號主要表現為時序上的差異,如tBurst和tRepeat參數。不同要求的LFPS訊號參數,如圖4所示。 經過特定時間的Polling.LFPS後,首先進入Polling.RxEQ的埠開始發送設置好的TSEQ碼進行接收端的均衡器設置,接著再藉由TS1/TS2(Training Sequence,訓練碼)進行其他相關參數的設置,最後透過發送Idle碼進行使用,完成整個連結的初始化,進入U0工作狀態。 圖5為LeCroy USB 3.2分析儀對連結初始化過程的分析結果,可從該圖獲得連結初始化過程中詳細的訓練碼序列及時序關係。

圖4 LFPS訊號定義
資料來源:USB3規範
圖5 連接初始化過程

接收機位元錯誤率測試

當需要對連結上的主機或設備進行位元錯誤率測試時,待測物必須進入圖6所示的迴環模式(Loopback Mode)。

圖6 Loopback Training

根據USB 3.2規範,如果需要進入迴環模式,應該有一個Loopback Master和一個Loopback Slave,Loopback Master為請求Loopback的埠,Loopback Slave埠則會傳送從Loopback Master處接收到的符號。Loopback Master須保持進入U0的初始化順序不變,欲達此目的,僅須將訓練碼TS2第五個Symbol的Bit 2設置為迴環模式,如圖7所示。

圖7 Gen1/Gen2 Link Configuration

如何進入迴環模式

進入迴環模式最常見的方法是透過訊號源或數位碼型產生器作為Loopback Master,發送特定碼型序列給Loopback Slave,強制其進入迴環模式,期間Loopback Master應發送必要的SKPs有效8b/10b資料,Loopback Slave應該重傳接收到的10位元符號,或在必要時進行通道訊號極性翻轉(Lane Polarity Inversion),以及適時插入或去除SKP有序集。圖8為使用安立知(Anritsu)MX183000A的USB Link Training進行Loopback訓練時發送的數位碼型產生器和參數設置。

圖8 LTSSM Setting via Anristu MX183000A

成功進入到迴環模式後,USB Link Training介面應該顯示如圖9,連結狀態處於Loopback.Active,LTSSM狀態機所列印的具體訓練日誌如圖10所示。

圖9 USB Link Training via Anristu MX183000A
圖10 LTSSM訓練日誌

結語

以上介紹了USB 3.2 Gen1工作模式、連結初始化過程、鏈路訓練狀態機工作流程、LFPS訊號定義和Loopback配置。迴環模式是USB認證測試中很重要的一環,也是容易疏忽導致產品無法一次通過測試的原因,因此希望透過本文的說明,能讓產業相關人士更了解Loopback的作動與方法,產品在實際進行接收端測試時可以更順利,規避相關問題。

(本文由Granite River Labs提供)

(針對USB認證測試,如欲瞭解更多,請參考Granite River Labs文章USB4 技術剖析USB認證測試流程與測試項目)

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!