USB PD規范 第二章濃縮了USB PD規范的精華,走馬觀花地講了USB PD協議的工作原理。
假設你已經接觸過USB PD協議,有一些基本的了解和相關知識,請先閱讀本章,淺淺地嘗一嘗,試著找找感覺再決定要不要更加深入地了解和學習。
2.6 操作概述
USB PD 端口中供電的一方是 SRC,受電的一方為 SNK。在端口間,每個 PD連接中只有一個是 SRC,一個是 SNK。默認連接上的 SRC 端(提供上拉電阻)也是 DFP,也是 VCONN SRC。同時連接上的 SNK 端(提供下拉電阻)也是UFP,不是 VCONN SRC。
SRC/SNK,DFP/UFP,VCONN SRC 的模式都可以通過 PD Message 進行轉換。同時支持 SRC 和 SNK 的端口叫做 DRP,同時支持 DFP 和 UFP 的端口叫做 DRD。
下面的部分描述的是高等級的工作來承擔 DFP,UFP,SRC,SNK 的角色。這些部分不會描述不被允許的工作狀態;但如果一種特定的行為沒有描述到,那就很可能沒有被這個標準所支持。
PD 如何在一個 PD USB 設備上繪制自己狀態的詳情請看 9.1.1 章。
2.6.1 SRC Operation
SRC 工作狀態的不同取決于連接狀態:
1. 對一個 SRC_Only 的端口來說,SRC 會檢測 SNK 有無連接上。
2. 對 DRP 端口來說會切換使其變成 SRC 以完成和 SNK 的連接。
3. 在 SRC 端設置 VBUS 到 vSafe5V。
- 在 PD 連接之前(沒有 PD 的連接或者 PD 協商還沒建立)
1. 在發 SRC_CAP 之前,SRC 可以檢測連接上的 Cable 的類型,然后根據檢測到的 Cable 的類型來改變它的通告能力。
(1)SRC 會嘗試用 SOP’的 Message 與 Cable Plug 進行通訊。如果Cable Plug 響應,則開始與其通訊。
(2)默認的 USB Type-C 的線纜支持的電流是 3A,但我們可以通過發SOP’的 Message 來獲得這根線纜的能力。
2. SRC 會定期的在每個 tTypeCSendSourceCap 時間內通過向對端發送SRC_CAP 來通告自己的供電能力。
- 在 PD 連接的階段(PD 連接還沒完成或沒有建立明確的契約關系)
1. 有下面兩種中的一種說明檢測到存在的對面端口具有 PD 功能。
(1)SRC 收到了對端響應 SRC_CAP 而發出的 GoodCRC。
(2)SRC 收到了 Hard Reset 信號(此時對端沒能收到 SRC 發出的 SRC-CAP)。
- 建立契約關系(PD 連接但在 PRS 或 FRS 之后的契約關系還沒建立)
1. SRC 從 SNK 那邊收到 Request Message,然后用 Accept 來響應 SRC發出的 Request。如果是一個合法,有效的 Request,當準備好供電給SNK 協商好的 Power 之后,SRC 會發出 PS_RDY Message,這個時候顯性契約就建立了。
2. DFP 不會生成 SOP’或 SOP ”的包,也不需要檢測 SOP’/SOP”包,就算檢測到也會將其丟掉。
- 在 PD 連接過程中 (建立了顯性契約關系狀態到 PE_SRC_Ready 狀態)
1. SRC 會處理和響應(如果需要的話)所有收到的包,無論何時,當它本地策略需要的時候會發送恰當的包。
(1)無論何時供電的能力改變了,SRC 會通過發 SRC_CAP 來通知 SNK。
(2)SRC 在 CC 線路上總是 asserted RP。
(3)當端口電力模式為 DRP 時,SRC 可以發起或收到電力模式轉變的請求。在 PRS 之后,SRC 將會變成 SNK,在明確的契約關系形成之前,由默認的契約關系暫時代替其工作。
(4)當端口數據模式為 DRD 時,SRC 可以發起或收到數據模式轉變的請求。在 DRS 之后,DFP 會變成 UFP。此時端口的電力模式還是SRC,同時 VCONN SRC 也不會發生改變。
(5)可以發起或接收轉變 VCONN SRC 供應的請求。當 VCS 通過兩端被申請的時候,此時端口的電力模式和數據模式沒有發生改變。
2. 當 SRC 也是 VCONN SRC 的時候,在沒有其它 SOP 通訊時,可以在任何時候用 SOP’或 SOP”與 Cable Plug 進行通訊。
(1)當 SRC 收到 SOP 的包,就算此時進行 SOP’或 SOP”通訊也要立即結束,優先開始 SOP 通訊(Cable Plug 超時,不會重試了)。
(2)如果 SRC 正在進行 SOP’或 SOP”通訊的時候需要發起 SOP 通訊(比如供電能力的改變),SOP’或 SOP”通訊都將被終止。
3. 當端口既是 SRC,同時也為 DFP 時
(1)SRC 可以通過對 Cable Plug 發包來控制 Mode 的進入和退出以及可以管理工作的模式。
(2)SRC 可以發起結構體和非結構體的 VDM 的 Message。
(3)SRC 可以在 SNK 控制進入和存在的模式和用結構體 VDM 的 Message 來控制其工作的模式。
4. 如果 SRC 端口是一個多口的系統
(1)當需要輸出備用功率時,將產生 Gotomin 的 Request。
1. 當 SRC 檢測到線路斷開后,會在 tSafe5V 的時間內將電壓降到 Vsafe5V, 在 tSafe0V 的時間內降到 Vsafe0V(SRC 通過檢測 ADC 的值來看線路有無斷開)。
2. 當 SRC 在 tReceive 時間內,收到為響應 Message 而發出的 GoodCRC包,在此過程中檢測到了錯誤。
(1)由于 CRCReceiveTimer 的期滿,在 tSoftReset 時間內,產生了 Soft Reset。
(2)如果 Soft Reset 沒有按時完成的話,就會在 CRCReceiveTimer timer out 之前,在 tHardReset 時間內產生 Hard Reset。同時在 1-1.5S 內將 VBUS 調到 USB 的默認電壓 5V。
(3)當端口 SRC 同時也是 VCONN SRC 時,在發生 Hard Reset的過程中 VCONN 也是會掉電的。
3. SRC 為了進一步嘗試通訊但沒有收到響應表示出現了錯誤。
4. 在 Power 協商過程中出現的錯誤會自動地產生 Hard Reset 為了將Power 維持在默認的等級(5V)。
1. 當協議層出現錯誤時,會引起端口中的任意一個發出 Soft Reset.從而復位 counters, timers 和 states,但這個動作不會改變協商好的電壓,電流或端口的模式(比如 SRC,DFP/UFP,VCONN SRC)也不會導致退出現有的工作模式。
2. 當線路中出現嚴重錯誤的時候,兩個端口中的任意一個都可能會發出Hard Reset 的信號。
(1)和 Soft Reset 一樣,Hard Reset 會 reset protocol,同時為了保護 S NK,將 Power Supply 降到 vSafe0V 或 vSafe5V 輸出。
(2)使端口的數據模式維持在最初狀態的 DFP。
(3)當 SNK 為 VCONN SRC 時,此過程會關閉 VCONN 供電。同時將SRC 維持在 VCONN SRC 的狀態。
3. 在 Hard Reset 產生后,寄望于對端可以在 tNoResponse 的時間內對 Hard Reset 請求做出響應。如果未有響應,進行 Hard Reset 累加(最大為 2)直到 SRC 進入 Error Recovery 狀態。
(本文為連載系列文章,后期會持續更新)
譯者:李熙民
相關閱讀