技術文章 | Granite River Labs | 台灣

如何順利通過USB 3.2 Gen1接收端測試?資料連結層訓練及迴環模式是關鍵 | GraniteRiverLabs Taiwan

作者:GRL Team | Aug 10, 2022 6:20:27 AM

Granite River Labs, GRL
陳海 Sea Chen

 

USB 3.2 Gen1的迴環模式(Loopback mode)是USB 3.2 Gen1資料連結層(Link Layer)中的一種模式,主要用於USB 3.2主機(Host)或設備(Device)的接收端誤碼率測試。

在實際測試中,如何讓待測物順利進入迴環模式是USB 3.2 Gen1接收端測試(Receiver Test)是否能順利通過的關鍵,因此本文將為大家介紹USB 3.2 Gen1的工作模式,並說明在USB 3.2 Gen1測試中,測試儀器如何讓待測物進入迴環模式。

 

USB 3.2的資料連結層訓練及鏈路訓練狀態機(LTSSM)

1. 工作狀態

LTSSM的全名為Link Training and Status State Machine,主要用於控制鏈路的連結狀態和鏈路的電源管理。包括U0-U3四種工作狀態:

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

當主機(Host)正常辨識到USB 3.2設備,然後操作主機進入睡眠或者重啟動作的過程中,即可抓取到以下U0-U3的不同狀態。(下圖截至LeCroy USB 3.2協議分析)

圖1: LeCroy USB 3.2協議分析 – 狀態U0-U3

 

2. 連接狀態

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

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

  • Rx.Detect:表示當連結接電後,主機和設備能夠互相辨識到雙方的存在,一但辨識到,雙方將開始進入初始化訓練程式。
  • Polling(輪詢):表示主機和設備在訓練初始化發送端和接收端以及進行同步,準備進行資料包的發送。
  • Recovery(資料恢復):主要是當前連結發現當前系統要從低功耗狀態切換出來或者當前沒有用工作在U0狀態,而需要重新進行訓練和配置的時候進行恢復連結。
  • Host Reset(重置):表示連結允許下行埠重新設置上行埠。

圖二中還有另外兩個連接狀態,Loopback和Compliance Mode,被引進來用於誤碼率測試以及發送端標準測試;其它兩種狀態為SS.Inactive和SS.Disabled,分別為連結出現錯誤而處於不可操作的狀態、以及連結工作在非超高速模式且可能處於USB 2.0模式的狀態;從圖中還可以看出,從連結上電到正常工作(這狀態類似於我們將平時用的USB 3.2隨身碟,從插入筆記型電腦到能夠正常開始讀取資料的過程)需要經歷三個階段:Rx.Detect、Polling、U0。其中Polling過程會對連結上的終端設備進行相關初始化設置,從Rx.Detect到U0的過程需要經歷的步驟如下圖:

圖3: Rx.Detect到U0副程式步驟

 

在Rx.Detect階段,連結上的主機或設備開始識別遠端是否有終端,如果有終端,則連結上的終端均開始發送特定規格的Polling.LFPS碼(低頻週期突發訊號,週期在20ns到100ms之間),LFPS信號是一個非常關鍵的訊號,通過不同特徵的LFPS訊號可以實現主機或設備在安裝不同的狀態之間進行切換,不同特徵的LFPS信號主要表現為時序上的不同,如tBurst和tRepeat參數。不同要求的LFPS訊號參數如圖4所示(來源 :
USB3規範)。

圖4: LFPS訊號定義

 

經過特定時間的Polling.LFPS後,首先進入Polling.RxEQ的埠開始發送設置好的TSEQ碼進行接收端的均衡器設置,然後再藉由TS1/TS2(Training Sequence,訓練碼)進行其它相關參數的設置,最後透過發送Idle碼進行使用,完成整個連結的初始化,進入U0工作狀態。圖五為LeCroy USB 3.2分析儀對連結初始化過程的分析結果,我們可從該圖獲得連結初始化過程中詳細的訓練碼序列及時序關係。

圖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的Bit2設置為Loopback模式即可,如圖7所示:

圖7: Gen1/Gen2 Link Configuration

 

如何進入迴環模式

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

圖8: LTSSM Setting via Anristu MX183000A

 

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

圖9: USB Link Training via Anristu MX183000A

圖10: LTSSM訓練日誌

 

結論

本文介紹了USB 3.2 Gen1工作模式、連結初始化過程、鏈路訓練狀態機(LTSSM)工作流程、LFPS訊號定義和Loopback配置,並實際使用LeCroy USB 3.2協議分析儀查看連結狀態,以及安立知LTSSM的具體配置和MX18300A USB Link Training成功進入迴環模式的狀態。Loopback模式是USB認證測試中很重要的一環,因此作者希望各位讀者可以透過本篇文章更了解Loopback的作動與方法,讓您的產品在實際進行接收端測試時可以更順利,規避相關問題。

 

參考文獻

  • USB-IF, Universal Serial Bus USB3.2 Specification, Revision 1.1, June 2022

作者
GRL上海 測試工程師 陳海 Sea Chen,

擁有7年的測試經驗,目前主要負責USB2、USB3相關技術的產品認證測試,亦熟悉PCIE,SATA等介面測試。

 

本文件中規格特性及其說明若有修改恕不另行通知。                         

發佈日期 2022/8/10 AN-220810-TW