usb battery 機制初探

2021-07-04 04:28:40 字數 1467 閱讀 8868

詳見usb 充電規範(battery charging specification, revision 1.2)

1  usb充電埠型別

dcp(dedicated charging port)  專用充電埠        它一般是dp/dm短接

sdp(standerd downstream port)  標準下行埠    它一般是usb 主控端dm/dp 會有乙個下拉電阻

cdp(charging downstream port)  充電下行埠    它一般相容2.0規範,對usb充電做出優化的下行介面,當cdp檢測到dp上載入了0.6v電壓,它隨即想dm載入0.6v電壓。當然這些電壓從dp 移動到dm,是需要充電電路來實現的。

aca(accessory charge adaptor)

2,usb充電型別識別流程

vbus 檢測  (檢測vbus是否接入)         ----->dcd接觸檢測   (檢測d+/d-是否接觸)    ----->      一次檢測 (d+載入乙個0.6v電壓,主要用來區分是否為sdp)   ---->       二次檢測(主要用來區分dcp 還是cdp)       -------->aca 檢測  (通過檢測id的阻值)   

通常usb裝置的dp/dm 先會比vbus、gnd要短一些。上圖為usb battery協議中所指定的。

vbus檢測

移動裝置會始終檢測vbus上的電壓,當移動裝置接入到充電埠,當vbus檢測閥值在0.8~4v 之間,移動裝置會認為接入到乙個充電埠。

資料線接觸檢測(data contact detect)

當usb插頭與usb插座連線時,vbus和gnd這兩根線會比dp/dm先接觸;當移動裝置檢測到vbus後,會在d+上載入乙個電流源i_dpsrc.當d+/d-沒有接觸時,d+的電壓會被拉高到2v;而當d+/d- 接觸後,host端的下拉電阻會將電壓到0.8v以下。通常移動裝置在檢測到vbus後的300~900ms 才開始一次檢測。也就是dcd 檢測會有乙個超時設定的時間。

一次檢測

當移動裝置檢測的dcd,以及dcd 檢測超時後,移動裝置就會進入到一次檢測。它主要用來區分是否為sdp。它通常在d+上載入乙個0.6v左右的電壓,隨後移動裝置開始檢測d-上的電壓值,檢視是否收到0.6v左右的電壓回應。同理sdp介面會將d+/d-上電壓拉低,從而移動裝置就無法檢測到d-上的0.6v 回應電壓。而cdp 因為dp/dm短接,則它可以檢測到0.6v回應電壓。而dcp 因為有電路會向d-上載入0.6v電壓。

二次檢測

它主要用來區分cdp 與dcp埠。移動裝置向d-上載入0.6v的電壓值,由於dcp中dp/dm短接,從而d+上會檢測到0.6v的電壓;而cdp則不會像d+上載入0.6v電壓值。

aca檢測 詳見spec中

上述為本人對usb battery的認識與理解,有什麼不對的地方請指出,謝謝!

classloader機制初探

size medium b classloader學習心得 b size size medium 1.例項化指令才會使類裝載器裝載類。單獨宣告並不會裝載。size a a new a load class a b b class b won t be loaded size medium 2.類的靜...

初探C 異常機制

c 異常是對程式執行過程中發生的異常情況 例如被0除 的一種相應。異常提供了將控制權從程式的乙個部分轉移到另乙個部分的途徑。對異常的處理有3個組成部分 1 引發異常 2 使用異常處理程式捕捉異常 3 在有可能發生異常的 塊使用try塊 catch關鍵字表示捕獲異常。處理程式以關鍵字catch開頭,隨...

MySQL 鎖機制初探

表鎖innodb 鎖關係矩陣 innodb死鎖問題排查思路 innodb 加鎖行為驗證 搞定mysql 帶你搞定mysql實戰,輕鬆對應海量業務處理及高併發需求,從容應對大場面試 mysql 解讀mysql事務與鎖機制 mysql 共享鎖和排它鎖初探 mysql 無索引行鎖公升級為表鎖 mysql ...