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