---
title: USB 電源供應徹底研究—PART4
description: "**作者：Bird** 上一回 [【Maker 電子學】USB 電源供應徹底研究…"
url: "https://makerpro.cc/docs/usb-power-part4/"
updated: "2025-04-17"
category: USB電源
---

# USB 電源供應徹底研究—PART4

**作者：Bird**

上一回 [【Maker 電子學】USB 電源供應徹底研究—PART3](https://makerpro.cc/2023/07/usb-power-part3/)，我們用電池容量與充電電流計算了手機電池的充電速率，我們也說明了 Quick Charge 這樣的充電標準如何利用調高 VBUS 電壓，來提高充電功率。

這一回我們先來說一下 USB 標準組織自己提出來的 USB BC 這個快充標準是如何運作的。

### **混亂的辨認標準**

在充電電壓爲 5V 不變的前提下，我們一直強調一個很重要的觀念：「**要從充電器抽取多少電流是由裝置決定的**。」

因此裝置在開始進入快充模式前，必須透過各式各樣的識別方法，知道充電器有什麼能耐，才能在不讓充電器過勞的狀況下，用大於 USB 原始供電標準 500 mA 以上的電流充電。

 ![](https://makerpro.cc/wp-content/uploads/2023/08/1-2.jpg)

（圖片來源：Bird 提供）

我們在[第二回](https://makerpro.cc/2023/07/usb-power-part2/)的時候說明過，Apple 的系統利用四個分壓電阻，在 D+/D- 接腳上產生不同的電壓，藉以識別連接到手機的是 5 W、10 W，還是 12 W 的充電器，進而對充電器抽取最大的電流。

 ![](https://makerpro.cc/wp-content/uploads/2023/08/2-2-e1691895366443.jpg)

（圖片來源：Bird 提供）

但這個標準是蘋果自己訂的，別家的手機不見得會理他。

三星就沒有理他，三星的手機有自己一套識別快充的方法。

 ![](https://makerpro.cc/wp-content/uploads/2023/08/3-2.jpg)

（圖片來源：Bird 提供）

三星的手機或平板等裝置，在插上充電器後，會檢查 D+/D- 上的電壓。如果兩支腳的電壓都是 1.2 V，手機或平板就會認爲充電器是自己人，可以用最大 5 V/2 A，也就是 10 W 的功率進行快充。

如果仿造 Apple 充電器的識別電路做法，D+/D- 上的電路應該是這樣接：

 ![](https://makerpro.cc/wp-content/uploads/2023/08/4-2.jpg)

（圖片來源：Bird 提供）

但因爲三星的識別協定中，D+ 和 D- 上所需要電壓是一樣的，都是 1.2 V，所以實務上也可以這樣接：

 ![](https://makerpro.cc/wp-content/uploads/2023/08/5-2.jpg)

（圖片來源：Bird 提供）

把 D+/D- 接在一起，然後共用同一組分壓電阻產生的 1.2 V 電壓。其實這麼做還有其它的好處，稍後我們再說明。

雖然這個世界已經很亂了，但還有更亂的。Sony 的 Xperia 手機也有它自己識別快充的方法，一樣是用 D+/D- 上的電壓。

 ![](https://makerpro.cc/wp-content/uploads/2023/08/6-2.jpg)

（圖片來源：Bird 提供）

Sony 也把 D+/D- 上的偵測電壓設定成兩支腳一樣，都是 3.3 V，因此實務上的電路也可以用一組分壓電阻就好：

 ![](https://makerpro.cc/wp-content/uploads/2023/08/7-2.jpg)

（圖片來源：Bird 提供）

因此，當 Sony 的手機插上充電器後，它也會去偵測 D+/D- 上的電壓。如果兩者的電壓都是 3.3 V，Sony 手機就當充電器是自己人，可以用最大 2 A 的電流進行快充，如果沒有認到這個電壓，手機就認爲它連接到的是不具備快充能力的標準 USB port，會用最保守的 500 mA 慢慢充。

因此，如果你拿一個 Sony 手機附贈的 5 V/2 A USB 充電器，接到 iPhone 上幫 iPhone 充電，由於 Sony 的充電器在 D+/D- 上產生的電壓是 3.3 V，iPhone 並不認得這個電壓，因此 iPhone 會認爲這個充電器沒有快充的能力，而只會用 500 mA 的電流來充電。

反之，如果你拿 iPhone 的 5 V/2.4 A 充電器去充 Sony 或三星的手機，由於 Apple 的 12 W 充電器識別電壓是 2.7 V，三星跟 Sony 的手機都不認得這個電壓，因此它們也會認爲這個充電器沒有快充的能力，而只會保守地用 500 mA 來充電。

明明就是具有 1 A 甚至 2 A 以上輸出能力的充電器，只是因爲裝置不認得它，就無法使用比較大的電流進行快充，實在是很可惜的事。

在這個混亂的世界中，USB 組織第一次出手想要平定這個亂象，USB BC 充電協定也就就此誕生了。

### **橫空出世的 USB BC**

USB BC 全名是 Battery Charger，它是 USB 組織推出來讓大家用 USB 來充電、供電的標準，它隨著 USB 2.0 的問世一起發佈。

USB BC 定義了三種 USB port：

1. **SDP**：Standard Downstream Port，傳統的、標準的 USB port，只能輸出 500 mA 的電流
2. **DCP**：Dedicaed Charging Port，專門用來充電、沒有資料傳輸能力的 USB port，最大供電能力 1.5 A
3. **CDP**: Charging Downstream Port，可以傳輸資料也可以用來充電的 USB port，最大供電能力也是 1.5 A

而 USB BC 的識別協定相當有趣，它分成兩個階段。當裝置偵測到 VBUS，也就是插上充電器後，它會先進行所謂的「primary detection」，這個階段主要是用來識別充電器到底是是沒有快充能力的 SDP，還是具有快充能力的 CDP/DCP（這兩個名字搞得大家好亂啊）。

如果在 primary detection 時，裝置偵測到充電器是具有快充能力的 CDP/DCP，那麼它會繼續進行第二階段的 secondary detection，用來分辨充電器到底是純充電用的 DCP，還是具有資料傳輸能力的 DCP。

如果在 primary detection 時，裝置偵測到充電器是不具快充能力的 SDP，那它就不用再繼續問下去了，會乖乖用 500 mA 充電。

 ![](https://makerpro.cc/wp-content/uploads/2023/08/8-2.jpg)

（圖片來源：Bird 提供）

USB BC 的裝置進行 primary detection 的方式是這樣：它會往充電器的 D+ 接腳上送一個 0.6 V 的電壓，然後測量 D- 接腳上的電壓，此時如果 D- 上也有 0.6 V 的電壓，那麼 primary detection 就算成功，這個充電器支援 BC。

接下來還會再進行 secondary detection，這時裝置會往充電器的 D- 接腳上送一個 0.6 V 的電壓，然後測量 D+ 接腳上的電壓。此時如果 D+ 上也有 0.6 V 的電壓，那麼 secondary detection 就判定這個 USB 充電器是沒有資料傳輸能力的 DCP，也就是專用充電 port。如果這時 D+ 上沒有測兩道 0.6 V 的電壓，那麼 secondary detection 就判斷這個 USB 充電器是 CDP，除了可以向它抽取最大 1.5 A 的電流之外，也會繼續進行 USB 的 enumeration 等資料傳輸的準備工作。

這個協定看起來有點複雜，但 USB BC 在硬體的設計上卻用了一個簡單粗暴又優雅的方式，讓 DCP 的識別變得非常簡單。

USB BC 定義：只要充電器在 D+/D- 之間用一個 200 ohm以下的阻抗連接，就可以被識別爲 DCP。

 ![](https://makerpro.cc/wp-content/uploads/2023/08/9-2.jpg)

（圖片來源：Bird 提供）

而實務上常常是直接將 D+/D- 短路，一樣也符合這個「小於 200 ohm」的規範。

這麼簡單的電路就可以通過上面說明的 primary detection 和 secondary detection 這麼複雜的兩階段偵測？我們來看看它怎麼做到的：

在 primary detection 中，裝置會往充電器的 D+ 接腳上送一個 0.6 V 的電壓，然後測量 D- 接腳上的電壓。如果這個充電器是 DCP，因爲 D+/D- 之間的阻抗很小，所以當裝置往 D+ 送出 0.6 V 電壓時，D- 上必然也量得到對應的電壓，因而可以被識別爲具有快充能力的 BC 充電器；如果這個 port 是傳統的 SDP，它的 D+/D- 之間阻抗非常大，當裝置往 D+ 送出 0.6 V 電壓時，D- 上什麼都量不到，因此就會被識別爲不具快充能力的 SDP。

接著在 secondary detection 中，裝置會往充電器的 D- 接腳上送一個 0.6 V 的電壓，然後測量 D+ 接腳上的電壓。如果這個充電器是 DCP，因爲 D+/D- 之間的阻抗很小，所以當裝置往 D- 送出 0.6V 電壓時，D+ 上必然也量得到對應的電壓，因而充電器就可以被識別爲 DCP；如果充電器是 CDP，它不會回應裝置在 D- 上送出 0.6V 的這個事件，因而就可以被識別爲 CDP。

只要將 D+/D- 短路，這個充電器就可以被識別爲 USB BC 的充電器，是不是簡單粗暴又優雅？

### **假裝是 BC**

我們剛剛提過，三星和 Sony 的充電器都是用 D+/D- 上的電壓來識別，而且它們都將 D+/D- 兩支腳上的識別電壓設定爲相同的電壓：三星是 1.2V、Sony 是 3.3 V。因爲電壓相同，我們可以只用一組分壓電阻就產生這個電壓給兩支腳用：

 ![](https://makerpro.cc/wp-content/uploads/2023/08/10-2.jpg)

（圖片來源：Bird 提供）

上面這個電路，因爲 D+/D- 接在一起，而且分壓電阻的阻抗夠大，因此如果我們把支援 BC 的裝置插到這個充電器上，在裝置對這個充電器進行 primary detection 時，送往 D- 的 0.6 V 偵測電壓會出現在 D+ 上，送往 D+ 的 0.6 V 偵測電壓也會出現在 D- 上，因此不管原來分壓在 D+/D- 上的電壓是多少，它都可以通過 primary detection 和 secondary detection，被當作 BC 的充電器，而被抽取最大 1.5 A 的電流。

### **小結**

這一回我們介紹了利用 D+/D- 上的電壓識別快充能力的各種標準，我們也介紹了 USB 組織自己提出來的 USB Battery Charger 標準，以及它所定義的充電器類別和識別方法。

下一回我們要繼續介紹 Quick Charge 陣營的快充標準。

（責任編輯：賴佩萱）
