Granite River Labs, GRL
陳世豪 Ryan Chen
在USB PD協定中,重置是對協定或其他錯誤情況觸發時的必要回應方式,USB Power Delivery規範中也定義了四種類型的重置,此篇文章將分別介紹各種重置被觸發的原因、特點、觸發條件以及觸發後對待測物與測試的影響,並且也會透過軟體中實際測試的畫面截圖讓大家更清楚整個重置流程與Vbus電壓電流的回應。
USB Power Delivery規範定義的四種重置類型:
• Soft Reset 軟重置,是對協議層的重置
• Data Reset 資料重置,是對資料匯流排和電纜的重置
• Hard Reset 硬重置,是對電源和協議的重置
• Cable Reset 電纜重置(SOP’/SOP’’),是對電纜插頭的重置
Soft Reset(軟重置)
當協定通信以某種方式出錯時,Soft_Reset消息將用於對協定層進行軟重置,來糾正通信時協定層出現的錯誤。協定錯誤通常是指在AMS(注釋1)中出現任何非預期的消息。值得注意的是,軟重置的觸發條件需要考慮以下兩種情況:
- 若協定錯誤發生在可中斷的AMS中,那麼策略引擎不應觸發軟重置,而應將埠狀態返回至PE_SNK_Ready/PE_SRC_Ready(注釋2)狀態,再進行後續的消息交互,若後續收到的是非預期的消息,那麼策略引擎應觸發軟重置。
- 若協定錯誤發生在不可中斷的AMS中,那麼將觸發軟重置用於重新同步策略引擎狀態機制;若此時的協定錯誤發生在電壓轉變時,那麼應觸發硬重置。
軟重置的特點
- 軟重置不會中斷電力傳輸
- 在回應協定錯誤時,無論此時聲明的Rp狀態是SinkTxOk/SinkTxNG(注釋3),都可以在 AMS 期間發送 Soft_Reset 消息
- Soft_Reset 消息應使用特定的資料包起點 SOP* 發送
軟重置對USB Power Delivery的影響
- 實體層:實體層不重置,因為對於實體層而言,軟重置發生在每個傳輸 / 接收的資料包中
- 協議層:重置MessageIDCounter、RetryCounter和協定層狀態
- 策略引擎:通過建立明確的電源協議進行重置
- 當在SPR(標準功率範圍,即≤100W)模式下,Source發送Source_Capabilities
- 當在EPR(擴展功率範圍,即100W<PDP≤240W)模式下,Source發送EPR_Source_Capabilities
- 電源:不改變狀態
如下圖所示的軟重置交互過程中,在Rp聲明狀態為SinkTxOK時,軟重置的發起方為Sink/UFP,此時UFP將其MessageID置0(同時重置其RetryCounter),接收方DFP在回復Accept消息的同時也會將消息欄位中MessageID置0,在完成軟重置後,SPR(標準功率範圍)模式下,Source/DFP會重新廣播Source_Cap,並與Sink/UFP建立明確的電源協議。可以看出在整個軟重置過程中,Vbus的電壓及電流並未發生改變。
圖1: SPR模式下Soft Reset交互流程
Data Reset(資料重置)
埠發出資料重置消息,重置其資料匯流排連接,並退出與其連接埠和電纜插頭中的所有備用模式。對於彼此連接的兩個埠之間,資料重置可以由任意一方發起。
資料重置對USB Power Delivery的影響
- 不應改變埠的供電角色(Source/Sink)或資料角色(DFP/UFP)
- 不應改變已建立的明確的電源協議
- 將退出所有備用模式
- 通過開啟再關閉Vconn的電源重置電纜
- DFP應成為Vconn供電方
- 在資料重置過程完成之前,發送方和接收方均不得發起Vconn交換
資料重置流程概述
- DFP 中斷相應的資料傳輸信號
- 斷開D+/D-信號對[USB 2.0]
- 若此時處於[USB3.2]工作狀態,則應斷開Rx信號對
- 若此時處於[USB4]工作狀態,則應將埠的SBTX調整為低邏輯狀態
- DFP和UFP都應退出所有的備用模式
- 通過開啟再關閉Vconn的電源重置電纜
- 若Vconn供電方為UFP,那麼將按照以下方式執行Vconn迴圈上電
- UFP關閉Vconn並確保在tVconnZero(125ms)時間內,電壓低於vRaReconnect(800mV)
- 當Vconn低於800mV時,UFP應發送PS_RDY消息,注意:即使UFP不是Vconn供電方也需要發送PS_RDY消息
- DFP應等待tVconnReapplied(10~20ms)後再打開Vconn。並且應在tVconnValid(5ms)時間內確保Vconn在vVconnValid(3~5.5V)範圍內:
圖2: Data Reset UFP Vconn 迴圈上電(來源:USB Power Delivery Specification Revision 3.1, Version 1.3) - 若Vconn供電方為DFP,Vconn迴圈上電時序與以上內容相同,唯一的差異在於在整個Data Reset交互中,不需要發送PS_RDY消息,可參考下圖:
圖3: Data Reset DFP VCONN Power Cycle(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
- 最終DFP應作為Vconn供電方,退出Vconn Power Cycle流程
- 若Vconn供電方為UFP,那麼將按照以下方式執行Vconn迴圈上電
- tDataReset(200~250ms)(注釋4)後,DFP應重新連接[USB 2.0] D+/D-信號對;若工作在[USB3.2]/[USB4],則重新應用埠的Rx信號對
- Data Reset過程完成;DFP應發送Data_Reset_Complete消息,兩埠之間重新建立USB資料連接
若Data_Reset消息的發起者在tSenderResponse(24~30ms)內沒有收到Accept消息,發起者將進入ErrorRecovery(錯誤恢復)(注釋5)狀態。
圖4: DFP作為Vconn Source發起Data Reset交互流程(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
圖5: UFP作為Vconn Source發起Data Reset交互流程(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
Hard Reset(硬重置)
硬重置觸發後要求發送方與接收方的電源狀態返回到預設狀態。除此之外,埠合作夥伴各自的協議層也應該按照軟重置方式進行重置。這允許連接的設備處於可以重新建立USB PD通信的狀態。請注意,在硬重置過程中,Vbus 降至 vSafe0V,Sink也不會將此視為斷開連接,因為這是預期行為。
硬重置不會改變此時已經聲明的Rp/Rd狀態。若硬重置之前完成了Data Role Swap(資料角色轉換),那麼硬重置將要求連接的埠還原回初始的資料角色,即DFP對應Source,UFP對應Sink。當支援Vconn的情況下,硬重置應使初始聲明為Source的埠提供Vconn,而作為Sink的埠則關閉Vconn。
硬重置將使得埠合作夥伴和電纜插頭退出EPR(擴展的功率範圍)模式和所有備用模式,通過下圖來說明Vbus,Vconn回應硬重置信號的狀態變化:
圖6: Vbus 和 Vconn回應Hard Reset過程中的變化狀態(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
硬重置流程概述
- 當接收到硬重置信號後,Source埠需保持當前電壓狀態持續tPSHardReset(25~35ms)
- tPSHardReset時間過後
- Vbus電壓降低要求:
- 若當前電壓(Old Voltage)高於vSafe5V(4.75V~5.5V),那麼要求在tSafe5V(275ms)時間內Vbus降低至vSafe5V;並且在tSafe0V(650ms)時間內,Vbus從當前電壓(Old Voltage)降低至vSafe0V(0V~0.8V)
- 若當前電壓在vSafe5V範圍內,那麼要求在tSafe0V(650ms)時間內,Vbus降低至vSafe0V(0V~0.8V)
- Vconn電壓降低要求:
- 要求在tVconnDischarge(230ms)時間內,降低至vVconnDischarge(800mV)
- Vbus電壓降低要求:
- Vbus電壓應保持在vSafe0V持續tSrcRecover(注釋6),此後Source開始向Vbus供電以嘗試重新與Sink建立連接,Vbus應在tSrcTurnOn(275ms)時間內內上升至vSafe5V;Vconn則應滿足相對於Vbus達到vSafe5V的tVconnON(2ms)時間內,上電至vVconnValid(3V~5.5V)
*tVconnDischarge/tVconnOn定義請參考[USB Type-C 2.1 Specification]
在下圖中,可以看到待測設備(DUT)發起硬重置後的電源變化:電源協商中,Sink收到Source發出的Source_Cap後,Source未收到Sink發送出的Request消息時,Source會觸發硬重置機制進行錯誤恢復。
圖7: 在PD Merged測試中觸發硬重置機制的測項日誌(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
Cable Reset(電纜重置)
電纜重置只退出電纜插頭中的所有備用模式。
電纜重置信號的發送方和接收方都應重置各自的協議層,DFP 必須在電纜重置之前提供Vconn,若Vconn已關閉,則DFP應在發出電纜重置信號之前打開Vconn。若發生Vconn交換並且Vconn供電方為UFP,那麼DFP應執行Vconn交換,以便在發送電纜重置信號之前提供Vconn。需要注意的是,只有DFP可以發出電纜重置信號,且 DFP應僅在明確的電源協議交互中發出電纜重置信號。
在下圖中,測試儀器GRL-USB-PD-C2,發起電纜重置信號後,Cable回復的Discover ID ACK消息中,MessageID已置0,即協議層MessageIDCounter已重置,同時也可以看到在Cable Reset過程中電源沒有變化。
圖 8: Emarker Cable在PD測試中響應Cable Reset測試日誌(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
結論
以上簡單介紹了四種重置的行為,大家可以透過文章中的介紹更清楚如何應對測試中發生的錯誤狀況,進而幫助產品設計與後續改善。GRL擁有豐富的USB與USB Power Delivery測試經驗,除了此篇文章外,亦有關於USB Type-C PD角色與歷代規格整理等文章,欲詳細了解請閱讀「USB Type-C Power Delivery 的角色交換功能」、「Power Delivery 的源起與規格」。若有任何不清楚或想深入了解的部分,歡迎與我們聯絡。
注釋
注釋1:AMS(Atomic Message Sequence)原子消息序列,一個固定的消息序列。
注釋2:PE_SNK_Ready State/PE_SRC_Ready State,該狀態下PD Sink/PD Source處於穩定的電源運行狀態,且沒有任何正在進行的消息協商。
注釋3:SinkTxOk/SinkTxNG,碰撞避免,PD3.0中Source可以調整Rp阻值宣稱是否允許Sink主動發起AMS;若Rp值為3A@5V,那麼允許Sink初始化AMS;若Rp值為1.5A@5V,Sink不允許主動發起AMS。
圖9: PD3.0中定義了CC上通信時避免碰撞的Rp值(來源:USB Power Delivery Specification Revision 3.1, Version 1.3)
注釋4:tDataReset時間判定範圍,DFP應該再tDataReset時間內完成資料重置,而對於該計時器的截至時間點判定有以下兩種情況:
- 當DFP發起Data_Reset消息時,截至於回應Accept消息的GoodCRC末尾比特位。
- 當UFP發起Data_Reset消息時,截至於Accept消息末尾比特位元。
注釋5:ErrorRecovery(錯誤恢復)狀態,埠執行斷開並重新連接。當USBType-C埠出現無法通過硬重置恢復錯誤時,將進入ErrorRecovery(錯誤恢復)狀態。
注釋6:tSrcRecover,Source回應硬重置的恢復時間。
- 在SPR 模式 tSrcRecover 0.66~1s。
- 在EPR 模式 tSrcRecover 1.085~1.425s。
參考文獻
- [Universal Serial Bus Type-C Cable and Connector Specification Release 2.1]
- [Universal Serial Bus Power Delivery Specification Rev3.1_Ver1.3]
作者
GRL 上海測試工程師 陳世豪 Ryan Chen
畢業於中國民航大學電腦專業,負責USB-IF Power Delivery、Qualcomm Quick Charge認證測試及電源測試解決方案技術支持。
本文件中規格特性及其說明若有修改恕不另行通知。
發佈日期 2022/05/12 AN-220512-TW