USB Battery Charging V1.2 Specification 定義了USB充電器的類型或者叫做充電源。 1. 支持的充電器類型 1.1 Standard Downstream Port(SDP) 這種USB埠存在於主機PC中,這個是與USB的規格書一致的。 當一個USB外設接到S ...
USB Battery Charging V1.2 Specification 定義了USB充電器的類型或者叫做充電源。
1. 支持的充電器類型
1.1 Standard Downstream Port(SDP)
這種USB埠存在於主機PC中,這個是與USB的規格書一致的。
當一個USB外設接到SDP埠上的時候,有下列幾種情況:
- 當匯流排掛起的時候電流應該小於2.5mA.
- 如果匯流排沒有掛起並且沒有配置,或者連接到一個匯流排供電的hub上,電流應該小於100ma
- 如果匯流排沒有掛起且配置好了,電流應該小於等於200ma。
1.2 DCP 或者叫做wall charger
這些充電埠可以供應高達1500ma的電流給移動設備充電。
然而這些DCP埠不支持通過USB介面進行數據傳輸。
電池充電規格書定義了數據線應該被短接在這種DCP情況下。
充電類型的檢查依賴於這些數據線。
1.3 charging Dedicated Port (CDP)
CDP埠是一個在主機端的特殊埠,能夠提供高達1500ma的電流,與此同時,可以枚舉設備以供正常的USB使用。
1.4 Proprietary charger (專有的充電器)
這些適配器不像正常的標準充電器那樣,短接數據線。他們有自己的組合,上拉或者下拉數據線。
1.5 Floated charger
這種類型的充電器被看做是不相容的充電器類型。USB數據線沒有短接並且是懸空的。
因此,與標準類型的充電器相比,當充電檢測上拉或者下拉的時候,電壓的範圍將決定了,他不會
被識別成是DCP.
2 USB充電的架構
下麵有幾種配置給USB充電和充電器類型的檢測。
- 基於外部充電晶元的充電器檢測(SMB充電器檢測)
- 內部的USB PHY充電器檢測邏輯
基於USB PHY的充電子系統有以下一些基本模塊:
- USB core負責讓OTG driver知道充電器的連接。
- 高通平臺的電池充電是被PMIC或者外部的充電晶元所控制。它必須知到充電器類型和最大充電電流。
- 原生的電池驅動直接與PMIC進行交互。這個驅動通知PMIC開始使用USB VBUS進行充電並且指明可以獲取的最大的電流。
PS:這裡的電池驅動估計說的不對,或者我自己理解有誤,從代碼上看應該是USB的驅動檢測到充電器類型之後,把這一信息通知給PMIC.
3 充電檢測演算法
在通用的充電器檢測模型中,提到了幾個階段:
- Data Contact Detect(DCD)—— 這個是硬體塊使用的,用來幫助檢測當USB數據線與pin腳連接起來。
- Primary detection - 這個階段用來區分是連接在了主機上面還是或者是一個大電流的設備上面。(SDP VS DCP/CDP)
- Secondary detection - 這個最終階段,決定了是連接到了DCP 還是CDP。