一、Type-C簡介
自1998年以來,USB發布至今,USB已經走過20個年頭有余了。在這20年間,USB-IF組織發布N種接口狀態,包括A口、B口、MINI-A、MINI-B、Micro-A、Micro-B等等接口形態,由於各家產品不同,不同產品使用不同類型的插座,因此我們也要常備各種不明用途的接口轉接線材。
USB協議發布時間節點
對於Type-C,USB標准化組織意識到統一和標准化問題,在定義標准時,做了如下規定:
1、接口形態
支持正反插,同時也規范了對應的線材,接口定義如下:
其中,具備全功能的Type-C應該具備E-Marker功能,由於具備E-Marker,線纜能夠被讀到其帶電流的能力、特性、線材ID等等。E-Marker的供電電源來自於VCONN,線纜會通過下拉的電阻Ra,Source檢測到之后會提供VCONN。
2、傳輸速率
最大傳輸速度10Gb/s,即是USB 3.1 Gen2標准,也支持4 Lane DP模式,傳輸高清圖像,在供電部分,最大可以支持100W(20V/5A)
3、協商機制
為了能夠區分兩端USB設備的角色(Host/Device),必須有一套協商機制,便於進行角色確認,這部分通過CC(Configuration Channel)管腳進行設置。后面隨着PD規范的面世,CC腳開始被用來做簡單的半雙工通信,用來完成POWER供給的協商。
二、Type-C Port的Data Role、Power Role
1、Type-C 的 Data Role
(1)DFP(DownstreamFacing Port):
下行端口,可以理解為Host或者是HUB,DFP提供VBUS、VCONN,可以接收數據。在協議規范中DFP特指數據的下行傳輸,籠統意義上指的是數據下行和對外提供電源的設備。
(2)UFP(Upstream Facing Port):
上行端口,可以理解為Device,UFP從VBUS中取電,並可提供數據。典型設備是U盤,移動硬盤。
(3)DRP(Dual Role Port):
雙角色端口,DRP既可以做DFP(Host),也可以做UFP(Device),也可以在DFP與UFP間動態切換。典型的DRP設備是筆記本電腦。設備剛連接時作為哪一種角色,由端口的Power Role決定;后續也可以通過switch過程更改(需支持USB PD協議)。
2、Type-C 的 Power Role
根據USB PORT的供電(或者受電)情況,USB Type-C將port划分為Source、Sink等power角色
如下圖顯示常用設備的Data Role和Power Role
Power Role 詳細可以分為:
a)Source Only
b)默認Source,但是能夠通過PD SWAP切換為SINK模式
c)Sink Only
d)默認SINK,但是能夠通過PD SWAP切換為Source模式
e)Source/SINK 輪換
f)Sourcing Device(能供電的Device,如顯示器)
g)Sinking Host(吃電的Host,如筆記本電腦)
USBType-C的插座中有兩個CC腳,角色檢測就是通過CC腳進行的,但是對於插頭、或者線纜正常只有一個CC引腳,兩個端口連接在一起之后,只存在一個CC引腳連接,通過檢測哪一個CC有連接,就可以判斷連接的方向。如果USB線纜中有需供電的器件,其中一個CC引腳將作為VCONN供電。
CC引腳有如下作用:
a)檢測USB Type-C端口的插入,如Source接入到Sink
b)用於判斷插入方向
c)在兩個連接的Port之間,建立對應的Data Role
d)配置VBUS,通過下拉電阻判斷規格,在PD協商中使用,為半雙工模式
e)配置VCONN
f)檢測還有配置其他可選的配置模式,如耳機或者其他模式
3、連接方向、Data Role、PowerRole角色檢測
SourceSink Connection
Source端CC引腳為上拉,Sink端CC引腳為下拉。握手過程為接入后檢測到有效連接(即一端為Host一端為Device),隨后檢測線材供電能力,再進行USB枚舉。
a)SINK的兩個CC引腳均通道Rd下拉到GND
b)SINK通過檢測VBUS,來判斷Source的連接與否
c)SINK通過CC引腳上拉的特性,來檢測目前的USB通信鏈路(翻轉)
d)SINK可選地去檢測Rp的值,去判斷Source可提供的電流。同時管理自身的功耗,保證不超過Source提供的最大范圍
e)同樣的,如果支持高級功能,通過CC引腳進行通信。
三、PD充電通信過程
PD協議是Power Delivery,簡單來說是一種快速充電標准。
包含PD協議的Type-C 系統從Source到SINK的系統框圖大致如下:
在Source的內部包含了一個電壓轉換器,且受到PD控制器控制,他會根據輸入電壓的條件以及最高可輸出規格需求,此電壓轉換器可以是BUCK、Boost、Buck-Boost或者反激轉換器。整個通信過程都在PD控制器的管控之下,USB PD還有一個開關,用於切換VCONN電源(電纜包含電子標簽時用到)。
當電纜接通之后,PD協議的SOP通信就開始在CC線上進行,以此來選擇電源傳輸的規格,此部分由Sink端向Source端詢問能夠提供的電源配置參數(5V/9V/12V/15V/20V)。
如下波形為SINK 控制器申請一個9V電壓輸出的例子。
1、充電器在連接建立后,會通過CC線進行廣播,告訴連接的另外一方,充電器能夠提供多少種電壓以及對應的電流;
2、手機側USB PD 設備策略管理器(policy_engine.c)監控CC上是否耦合了BMC信號,並且解碼消息得出是SourceCapabilities消息,就根據USB PD規范解析該消息得出USB PD充電器所支持的所有電壓和電流列表對;
3、手機根據充電的配置從SourceCapabilitie消息中選擇一個電壓和電流對,向適配器發送請求數據包,將電壓和電流對加在Request消息的payload上,然后PD phy將BMC 信號耦合到CC上;
4、充電器解碼BMC信號並發出Accept消息給手機,同時調整Power Supply的直流電 壓和電流輸出;
5、手機收到Accept消息,調整Charger IC的充電電壓和電流;
6、手機在充電過程中可以動態發送Request消息來請求充電器改變輸出電壓和電流,從而實現快速充電的過程。

“內核工匠”微信公眾號
Linux 內核黑科技 | 技術文章 | 精選教程