Type-B后推出的最新的接口規范。 不同于傳統的USB接口,Type-C采用了上下對稱設計,不需要區分插頭的方向,避免了用戶正反插的繁瑣操作。 另外,USB Type-C通過支持USB PD(Power Delivery)協議,將充電功率由傳統的最大7.5W(5V1.5A),提升到了最大100W(20V5A)。 而最新的USB PD3.1的規范,進一步提升了Type-C充電功率,最大功率可以達到240W(28V5A)。
圖1 三種USB接口
對于傳統的USB Type-A或Type-B的設備,在接口定義中就已經規范了供電接口(Source)和受電接口(Sink)的形態,因此不必擔心反接或錯接的行為。 而對于Type-C接口的設備,由于不存在這些區別,用戶無法獲知其接口的類型,因此需要Type-C控制器自身完成。 那么Type-C接口是如何實現相互識別的,又是如何提供正確的供電邏輯的?
Type-C接口的引腳定義
Type-C接口分為母頭(Receptacle)和公頭(Plug)。 完整的Type-C引腳為24個,各個引腳的定義如下:
1. VBUS:共四路,設備間供電的BUS電壓引腳,不論正反插,這四路引腳都會提供供電
2. GND:共四路,設備間的供電回路,不論正反插,這四路引腳都會提供供電回路
3. TX+/TX-和RX+/RX-:共四對,為USB3.0高速信號
4. D+/D-:共兩對,為USB2.0信號。 在母頭處,這兩對會短路成一對
5. CC/VCONN: CC引腳為配置引腳,用于檢測設備連接和正反插方向,也是USB PD通信的線路; VCONN為CC引腳斜對稱的引腳,當一個引腳確認為CC時,另一個則定義為VCONN,用于給eMark線材供電
6. SBU1/SBU2:復用引腳,如為USB4提供額外的SBTX和SBRX
母頭為24pin滿針腳,上下針腳為斜對稱,滿足用戶正反插的需求; 公頭為22pin,由于USB2.0規范中,D+/D-只有一對,因此在公頭中只保留一對D+/D-針腳。
當然,在實際產品設計中,工程師會根據產品定義適當縮減Pin腳數量以節約成本。 例如,對于只提供充電的產品,如電源適配器,這類產品不需要USB3.0的高速數據通信,因此只保留CC、VBUS、GND和D+/D-引腳。
圖2 USBType-C母頭(a)和公頭(b)的引腳定義
Type-C設備之間如何識別
就供電而言,Type-C設備可分為三類
1. 只能作為供電端(Source)的Type-C設備,如Type-C充電器等
2. 只能作為受電端(Sink)的Type-C設備,如Type-C手機等
3. 既可以作為供電端(Source),又可以作為受電端(Sink)的Type-C設備(DRP,Dual RolePort),如Type-C筆記本,雙向充電寶等。
顯然,當兩個Type-C設備通過C2C線材連接在一起時,雙方必須知道對方屬于何種類型的設備,否則會帶來不理想的充電(如反向充電),或者不充電,甚至導致產生安全問題。
例如,當用戶利用充電器(Source)給Type-C雙向充電寶(DRP)充電時,理想情況下,充電寶應當“擔任”Sink的角色。 然而,由于設備類型識別錯誤,可能導致充電寶“擔任”Source角色而發生“電流倒灌”的現象,損壞兩方設備。
Type-C接口規范通過CC引腳的一系列“上拉”和“下拉”的機制來區分Source、Sink以及DRP。 對于Source設備,要求CC引腳配置上拉電阻Rp; 對于Sink設備,要求CC引腳配置下拉電阻Rd; 而對于DRP設備,要求通過切換開關,交替性地切換上拉和下拉。
圖4 CC引腳的“上拉”和“下拉”
Source通過檢測Rp端的CC引腳判斷是否有設備接入,Sink通過檢測Rd端的CC引腳判斷正反插的方向。
下拉電阻Rd=5.1k,上拉電阻Rp根據其供電能力和上拉電壓不同而設定。 USB Type-C的供電能力有如下幾種:
1. 默認USB供電能力(Default USB Power)。 USB2.0接口為500mA; USB3.2接口為900mA和1500mA
2. BC1.2(BatteryCharge 1.2)協議。 支持最大功率7.5W,即5V1.5A
3. USB Type-C電流1.5A(USB Type-C Current 1.5A),支持最大功率7.5W,即5V1.5A
4. USB Type-C電流3A(USB Type-C Current 3A), 支持最大功率15W,即5V3A
5. USB PD(USB PowerDelivery)協議, 支持最大功率100W,即20V5A
這五種供電能力優先級依次升高,且供電功率也逐漸提高。 高優先級的供電能力會覆蓋低優先級的供電能力。 其中Default USB Power,USB Type-C Current 1.5A和USB Type-C Current 3A可通過配置Rp值來設置。
當兩個設備連接完成后,Sink通過檢測Rp和Rd的分壓值vRd獲取Source的供電能力。 如下為Rp值,vRd電壓范圍與Source供電能力的對應關系。
圖5 Rp值,vRd電壓范圍與Source供電能力的對應關系
與此同時,設備的另一個CC已經被懸空或者通過Ra=1k下拉。 若有Ra下拉,則說明USB-C線材內置eMarker芯片,需要Source端通過切換該引腳至VCONN為線材供電。
至此,我們已經解釋了設備之間通過“上拉”或“下拉”,或者在二者之前交替性切換,來判斷Source、Sink以及DRP,并通過Rp電阻值,vRd電壓值設置和判斷Source的供電能力。 然而,這個過程具體是如何實現的? Type-C是如何避免反充或錯誤充電的?
Type-C設備之間詳細的配置過程
我們以常用電子設備對應這三種類型:Source – 充電器; Sink – 手機;DRP – 筆記本或充電寶。
對于三種設備類型,理論上就會存在9種相互連接的組合,這些組合中必然有錯誤的連接方式(如適配器連接適配器),或不確定誰是Source的連接方式(如充電寶或筆記本)。 那么對于這么多組合,Type-C控制器是如何配置接口的?
Type-C控制器通過狀態機的狀態切換完成整個識別和溝通的過程,如下為狀態機中的幾種主要狀態。
1. Unattached.SRC,Source處在未連接的狀態
2. Unattended.SNK,Sink處在未連接的狀態
3. AttachWait.SRC,該狀態目的是Source確保設備連接后,CC1和CC2保持穩定
4. AttachWait.SNK,該狀態目的是Sink確保設備連接后,CC1和CC2保持穩定
5. Attached.SRC,Source端判斷設備連接成功
6. Attached.SNK,Sink端判斷設備連接成功
5. Try.SRC,該狀態為DRP設備試圖切換Source角色
6. Try.SNK,該狀態為DRP設備試圖切換Sink角色
情形一 Source和Sink間的行為機制(適配器和手機)
如下是當Source有Sink設備接入時的行為機制:
(1) Source和Sink均處于未接入狀態Unattached.SRC和Unattached.SNK
(2)Source檢測到CC端有Sink上拉電阻,則Source狀態變化Unattached.SRC --> AttachWait.SRC--> Attached.SRC; Source打開VBUS和VCONN。
(3)Sink檢測到VBUS,則Sink狀態變化為Unattached.SNK --> AttachWait.SNK -->Attached.SNK
(4)在Source和Sink處于連接(attached)狀態之后
Source調整Rp數值來限制Sink吸收電流
Sink檢測Rd上的電壓vRd判斷VBUS允許的電流
Source通過監測CC判斷Sink是否斷開,如果斷開,則進入Unattached.SRC
Sink通過監測VBUS電壓判斷Source是否斷開,如果斷開,則進入Unattached.SNK
圖6 充電器(Source)和手機(Sink)的行為機制
情形二 Source和DRP間的行為機制(充電器和筆記本)
如下是當Source有DRP設備接入時的行為機制:
(1) Source和DRP均處于未接入狀態
Source處于Unattached.SRC狀態- DRP在Unattached.SRC和Unattached.SNK之間切換
(2)Source檢測到CC端有Sink上拉電阻,則Source狀態變化為Unattached.SRC --> AttachWait.SRC--> Attached.SRC; Source打開VBUS和VCONN。
(3)當DRP切換到Unattached.SNK,并檢測到CC引腳有上拉時,則DRP狀態變化為Unattached.SNK -->AttachWait.SNK --> Attached.SNK
(4)在Source和DRP處于連接(attached)狀態之后
Source調整Rp數值來限制DRP(即Sink)吸收電流
DRP(即Sink)檢測Rd上的電壓vRd判斷VBUS允許的電流
Source通過監測CC判斷Sink是否斷開,如果斷開,則進入Unattached.SRC- DRP(即Sink)通過監測VBUS電壓判斷Source是否斷開,如果斷開,則進入Unattached.SNK,并恢復其Unattached.SRC和Unattached.SNK的切換機制
圖7 充電器(Source)和筆記本(DRP)的行為機制
情形三 DRP和Sink間的行為機制(筆記本和手機)
如下是當DRP有Sink設備接入時的行為機制:
(1) DRP和Sink均處于未接入狀態
DRP在Unattached.SRC和Unattached.SNK之間切換- Sink處于Unattached.SNK狀態
(2)當DRP切換至Unattached.SRC時,并檢測到CC引腳有下拉電阻,則DRP的狀態變化為Unattached.SRC -->AttachWait.SRC --> Attached.SRC;DRP(即Source)打開VBUS和VCONN。
(3)Sink檢測到VBUS,則Sink狀態變化為Unattached.SNK --> AttachWait.SNK -->Attached.SNK
(4)在Source和DRP處于連接(attached)狀態之后
DPR(即Source)調整Rp數值來限制Sink吸收電流- Sink檢測Rd上的電壓vRd判斷VBUS允許的電流
DRP(即Source)通過監測CC判斷Sink是否斷開,如果斷開,則進入Unattached.SRC,并恢復其Unattached.SRC和Unattached.SNK的切換機制
DRP(即Sink)通過監測VBUS電壓判斷Source是否斷開,如果斷開,則進入Unattached.SNK
圖8 筆記本(DRP)與手機(Sink)的行為機制
情形四 DRP和DRP間的行為機制(充電寶與筆記本)
對于DRP和DRP的溝通,存在三種情況。 一種情況是,設備雙方決定誰是Source還是Sink是隨機的; 第二種情況是,其中一個DRP試圖通過Try.SRC機制來決定其作為Source; 第三種情況是,其中一個DRP試圖通過Try.SNK機制來決定其作為Sink。
如下是當DRP有DRP設備接入時的行為機制:
第一種情況:
(1)兩個DRP設備均處于未接入狀態
DRP#1和DRP#2在Unattached.SRC和Unattached.SNK之間隨機切換
(2)當DRP#1切換至Unattached.SRC時,并檢測到CC引腳由DRP#2下拉,則DRP#1的狀態變化為Unattached.SRC--> AttachWait.SRC --> Attached.SRC; ;DRP#1(即Source)打開VBUS和VCONN。
(3)DRP#2切換至Unattached.SRC時,并檢測到CC引腳有上拉,則DRP#2的狀態變化為Unattached.SNK -->AttachWait.SNK --> Attached.SNK
(4)在Source和DRP處于連接(attached)狀態之后
DPR#1(即Source)調整Rp數值來限制DRP#2(即Sink)吸收電流
DRP#2(即Sink)檢測Rd上的電壓vRd判斷VBUS允許的電流
DRP#1(即Source)通過監測CC判斷Sink是否斷開,如果斷開,則進入Unattached.SRC,并恢復其Unattached.SRC和Unattached.SNK的切換機制
DRP#2(即Sink)通過監測VBUS電壓判斷Source是否斷開,如果斷開,則進入Unattached.SNK,并恢復其Unattached.SRC和Unattached.SNK的切換機制
圖9 充電寶(DRP)和筆記本(DRP)的行為機制
第二種情況:
(1)兩個DRP設備均處于未接入狀態
DRP#1和DRP#2在Unattached.SRC和Unattached.SNK之間隨機切換
(2)當DRP#1切換至Unattached.SRC時,并檢測到CC引腳由DRP#2下拉,則DRP#1的狀態變化為Unattached.SRC--> AttachWait.SRC --> Attached.SRC; ;DRP#1(即Source)打開VBUS和VCONN。
(3)DRP#2切換至Unattached.SRC時,并檢測到CC引腳有上拉,則DRP#2的狀態變化為Unattached.SNK -->AttachWait.SNK
(4)DRP#2處在AttachWait.SNK,并希望切換至Source角色,DRP#2的狀態變化為AttachWait.SNK -->Try.SRC; 并且上拉CC引腳
(5)DRP#1不再檢測到DRP#2在CC引腳上的下拉,于是狀態變化為Attached.SRC --> UnattachWait.SNK--> AttachWait.SNK; 并且關閉VBUS和VCONN,在CC引腳上切換下拉電阻
(6) DRP#2檢測到CC引腳有上拉,則其狀態變化為Try.SRC --> Attached.SRC; 并且打開VBUS和VCONN
(7) DRP#1狀態變化為AttachWait.SNK --> Attached.SNK
(8)在Source和DRP處于連接(attached)狀態之后
DPR#2(即Source)調整Rp數值來限制DRP#1(即Sink)吸收電流
DRP#1(即Sink)檢測Rd上的電壓vRd判斷VBUS允許的電流
DRP#2(即Source)通過監測CC判斷Sink是否斷開,如果斷開,則進入Unattached.SRC,并恢復其Unattached.SRC和Unattached.SNK的切換機制
DRP#1(即Sink)通過監測VBUS電壓判斷Source是否斷開,如果斷開,則進入Unattached.SNK,并恢復其Unattached.SRC和Unattached.SNK的切換機制
圖10 筆記本(DRP#1)和充電寶(DRP#2)的行為機制
第三種情況為Try.SNK機制,其與Try.SRC機制類似,這里不再贅述。
情形五 Source和Source間與Sink和Sink間的行為機制
這兩種使用情況下,Source和Sink都處于Unattached.SRC和Unattached.SNK狀態下,故不存在設備間供電的情況。
至此,我們介紹了一些常見的設備之間的溝通機制。 尤其是對于兩個都是DRP雙角色設備,Type-C控制器會采用Try.SRC或Try.SNK的方式,試圖建立正常的供電邏輯。 當然,如若出現錯誤的供電邏輯(比如出現筆記本給充電寶充電的情況),USB
PD協議還提供了Power Role Swap的機制,通過PD協議進行供電角色切換,詳細內容可參考USB Power DeliverySpecification。
-
充電器
+關注
關注
100文章
3987瀏覽量
113589 -
接口
+關注
關注
33文章
8235瀏覽量
149826 -
usb
+關注
關注
60文章
7762瀏覽量
262137 -
引腳
+關注
關注
16文章
1117瀏覽量
49687 -
type-c
+關注
關注
549文章
1725瀏覽量
267848
發布評論請先 登錄
相關推薦
評論