在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

帶大家認識什么是USB.PD協議

國產對標IC ? 來源: 國產對標IC ? 作者: 國產對標IC ? 2022-08-19 11:29 ? 次閱讀

USB PD(Power Deliver)協議是USB IF協會制定的USB充電標準與技術,是目前主流的快充協議之一,其最大供電能力可達100W,被應用在各種設備的電源上。USB PD協議利用USB Type-C接口的CC(Configuration channel)引腳作為數據傳輸通道來協商充電的電壓、電流和功率傳輸方向,在介紹USB PD協議的具體內容之前,先簡單介紹一下其依賴的USB Type-C接口。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70


如上圖所示,Type-C接口可以完全替代Type-A、Type-B、Micro AB等各種USB接口,實現數據傳輸、電力傳輸。USB PD協議就是基于Type-C接口的強大功能實現的。Type-C接口的引腳示意圖如下所示,VBUS為總線電源,D+、D-為USB2.0的差分信號線,TX+、TX-、RX+、RX-為SuperSpeed差分信號,SBU(Sideband Use)為旁路使用,CC為配置通道。Type-C接口最大功率傳輸可達100W(20V/5A),最大數據傳輸速率為10Gbps。可以看到,在公頭上只有一個CC引腳,母頭上的CC引腳是對稱的,所以也可以利用CC引腳判斷正反插。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

USB PD協議的工作原理是利用Type-C接口的CC線作為數據線來協商電壓、電流以及供電方向,整個通信過程需要按照特定的數據包格式,并且存在相互認證的過程。下面先介紹一些USB PD中常見的名詞,這些名詞在后面也會用到。

Source:通常指電源提供端,如電源適配器。
Sink:通常指電源消耗端,如手機、平板。
E-Marker(electronic marker):電子標記,一般存在于Type-c to Type-c的線纜中。
CC(Configuration Channel) :配置通道,用于識別、控制等。
BMC(Biphase Mark Coding):雙相位標識編碼,通過CC通信。
DFP(Downstream Facing Port):下行端口,即為HOST或者HU B下行端口。
UFP(Upstream Facing Port):上行端口,即為Device或者HUB的上行端口。
DRD (Dual-Role Data):能作為DFP/UFP。
DRP (Dual-Role Power):能做為Sink/Sour ce。
SOP(Start of Packet Sequences):所有的PD傳輸流程,都是以SOP開始,SOP代表SOP,SOP’,SOP’’。
EOP (End of Packet):數據包結束標志。
USB PD協議通過特定格式的數據包進行通信,數據包的格式如下所示。

pYYBAGL_A7WAF_GGAADy6kTCwsQ887.png

一個完整的USB PD數據包由前導碼(Preamble),使用場景碼(SOP),功能碼(MessageHeader),數據碼(Byte0-n)、校驗碼(CRC)以及結束碼(EOP)組成,如果數據部分為空,說明數據包僅作為控制指令使用,稱為控制消息。有數據內容的稱為數據消息,通常數據消息里包含了要變化的電壓值和電流值等信息。整個USB PD數據包中,除了前導碼不需要進行4b5b編碼外,數據包的其他部分均需要進行4b5b編碼,指定數據經過4b5b編碼后,數據包中所有數據都需要使用BMC編碼之后才能通過CC發送。4b5b編碼和BMC編碼會在下一章節詳細介紹。
前導碼(Preamble)

前導碼(Preamble)是為了鎖定接收端,預示發送端將要有數據到達,前導碼由64位交替的‘0’和‘1’組成,以’0’開始,以’1’結束。

使用場景碼(SOP*)

所有的USB PD傳輸流程,都是以SOP開始,SOP代表SOP,SOP’,SOP’’。不同的使用場景會用到不同SOP,每一個SOP也由不同的特殊編碼組成。如SOP是由3個Sync-1和1個Sync-2組成,對應的5b編碼可以在4b5b編碼表中查到。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

數據包使用SOP作為開頭,說明該數據包是在Source與Sink之間進行的。
SOP’由2個Sync-1和2個Sync-3組成,其順序如下圖。

pYYBAGL_A7WADlwMAABXU1w47nk202.png

SOP’‘也是由2個Sync-1和2個Sync-3組成,但是其順序與SOP’不同。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

數據包使用SOP’或SOP’’,則說明是Source與E-Marker之間的通信過程,不同的是,SOP’體現的是Source與線材近端E-Marker的通信,SOP’'體現的是Source與線材遠端E-Marker的通信。

功能碼(Message Header)

功能碼長度16-bits,通常包含數據包類型、端口角色(UFP/DFP)、PD協議版本等信息,功能碼的組成如下圖所示。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

從列表中可以看出,不同的功能碼需要特定的SOP*,這個在之前也有提到,下面介紹一些常用的功能碼。

Extended

Extended是用來表示該數據包是否包含外部指令的功能碼,該位置1,表示數據包中存在外部指令,反之則沒有。如果數據包中包含外部指令,指令內容會跟在功能碼后面進行傳輸。USB PD協議的外部指令使用的比較少,在這里就不做詳細的介紹了。

Number of Data Objects

當Extended置0時,Number of Data Objects才可以使用,該功能碼有3-bits,用來表示功能碼后跟的數據的位數,如果Number of Data Objects置0,則表示功能碼后沒有數據,該數據包為控制消息。如果該功能碼置1,則表示該數據包為數據消息。

Port Power Role & Port Data Role

這兩個功能碼都是表示端口的電源角色(Source/Sink)和數據角色(DFP/UFP),該位置1時表示Source/DFP,該位置0表示Sink/UFP。

Message Type

Message Type有5-bits,是功能碼中比較重要的位,需要和Number of Data Objects 結合使用,前面提到Number of Data Objects決定了數據包的消息類型,Message Type 則表示具體的指令類型。當Number of Data Objects置0, Message Type則可以表示以下控制指令。例如當接收器成功接收數據包并CRC校驗正確后,會向發送端發送帶有GoodCRC和Message ID的數據包,來表示通信成功。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70


當Number of Data Objects置1時,Data Message Types可表示以下指令,例如Source會在通信過程中向Sink發送Source_Capabilitties來表示供電能力,Sink可以從供電能力列表中進行選擇并通過Request指令發送給Source端。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

數據碼(Byte0-n)

數據碼只有在數據包類型為數據消息時才會使用,具體的數據內容需要根據指令的內容改變,例如在使用Source_Capabiliities消息指令時,數據碼就會存放Source的供電能力。數據碼同樣需要使用4b5b進行編碼。

校驗碼(CRC)

功能碼和數據碼都需要由32bits的CRC校驗進行保護,校驗碼的生成機制比較繁瑣,一般都會使用查表的方式實現,在這里也不做詳細的介紹了,感興趣的小伙伴可以參考USB IF協會的官方文檔。

結束碼(EOP)

結束碼表示整個數據包的結束,在4b5b編碼表中可以找到對應的5b編碼,為01101。
4B5B編碼

0x02 USB PD協議的編碼方式

在USB PD協議的數據包中,除了前導碼(Preamble)之外,其他部分均需要使用4b5b編碼,官方的說法是為了降低接收端設計的復雜度,提高接收端設計的自由度。4b5b編碼的原理是建立一個4b5b編碼表,將4-bits的數據與5-bits的數據進行對應,發送端根據編碼表對4-bits數據進行編碼,接收端根據編碼表對5-bits數據進行解碼,編碼表的具體內容如下圖所示。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

從圖中可以看出,除了基本的hex數據外,還定義了一些特定的編碼,如Sync-1、RST-1等,這些特定的編碼會組成SOP*,在介紹USB PD協議數據格式時也有提到。另外,編碼表中還預留了多個未定義的5b編碼,可以作為的擴展指令使用。

BMC編碼

USB PD協議的數據包中,所有的數據都需要使用BMC進行編碼,BMC編碼屬于物理層的操作,經過編碼之后的數據通過CC線進行傳送。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

上圖為BMC編碼的示例,BMC編碼規則是曼切斯特編碼的一個版本,按照脈寬來設定的0和1,從示例中可以看到,在一個周期里有高低電平變化為1,否則為0。

USB PD協議編解碼流程

以上詳細介紹了USB PD協議數據包的格式和各個部分的功能,那么對于一個完整的數據包,發送端發送的流程是什么,接收端接收到數據之后會進行哪些處理呢。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

上圖為一個完整的數據包發送和接收的流程圖,可以看到,在發送數據時,需要將經過CRC校驗后的數據使用4b5b編碼,再使用BMC編碼才可以通過CC發送。在接收數據時,首先進行BMC解碼,然后需要確定SOP的位置,因為SOP后的數據才是真正的有用的數據,再進行5b4b的解碼,校驗CRC。

介紹完理論,來看一下在實際的數據包。下面是使用邏輯分析儀抓取的USB PD協議通信數據包,使用上面介紹到的內容對這個數據包進行解析。

pYYBAGL_A7iAIvlpAACWu81rh0I878.png

首先,BMC解碼,根據BMC編碼規則,識別出’0’和’1’,已經標注在圖中。SOP識別,標注出的前20 bits為00011 00011 00011 10001,我們可以將這些數據理解為4組經過4b5b編碼的數據,由于在傳輸數據時采用大端模式,所以需要將數據的高低位交換,轉換之后為11000(Sync-1) 11000(Sync-1) 11000(Sync-1) 10001(Sync-2),也就是SOP(Sync-1、Sync-1、Sync-1、Sync-2)。同樣的,SOP后的數據也需要先高低位交換,識別結果為Source_Capabilities,說明該消息是用來表明Source的供電能力的,那么數據包中也會包含數據碼,分析的方法跟前面也是一樣的。

在日常的工作中,其實并不需要手工去分析大量的USB PD的消息類型,目前大部分邏輯分析儀都可以對USB PD協議進行解析,另外也可以借助CY4500 EZ-PD?協議分析儀對USB PD通信邏輯進行分析,只有部分邏輯分析儀無法識別的內容,才需要我們根據協議內容去進行分析,這些內容大部分是USB PD芯片廠商定義的調試消息類型。

以上詳細介紹了單個USB PD數據包的構成,以及如何去識別數據包的內容,DFP和UFP通過數據包進行通信,就是USB PD協議認證協商的過程。
0x03 USB PD協議認證協商

我們知道,不同的設備需要不同的充電電壓、電流,手機需要9V/2A,平板需要15V/2A,電腦需要20V/3.25A,那么電源是如何實現根據設備需求提供定制化輸出的呢?

支持USB PD協議的設備,在與電源連接時,會進行認證和協商,協商內容包括電源可提供的充電能力,設備支持的充電功率等。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

上圖為USB PD認證協商的流程圖。首先DFP向UFP發送Source Capabilities 來表明其供電能力,UFP接收到該數據包校驗無誤后會向DFP發送GoodCRC,表明接收成功,隨后UFP會從DFP的Capabilities中選擇合適功率并使用Request消息發送給DFP,同樣DFP也會對數據包校驗并返回GoodCRC。DFP在收到UFP的Request之后,會判斷能否滿足該Request,如果可以則發送Accept,同時DFP會調整內部電源,準備向UFP供電,準備完成之后會向UFP發送PS_Ready消息并將電壓、電流轉換成UFP請求的值,待UFP回復GoodCRC,整個協商過程完成,電源與設備建立起快充關系。

審核編輯:湯梓紅

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA==,size_16,color_FFFFFF,t_70

上圖是使用CY4500 EZ-PD?協議分析儀對協商過程進行監控得到的數據,從數據中可以看出,在DFP發送PS_Ready消息之前,VBUS的電壓為5V,電流幾乎為0,在DFP發送PS_Ready消息的同時,VBUS電壓升為20V,開始對設備進行快充。

0x04 USB PD協議安全性分析

前面詳細介紹了USB PD協議的數據格式、協商認證過程,了解了其工作原理,USB PD協議的具體實現需要使用USB PD芯片,USB PD協議本身也是公開的,數據包中包含CRC校驗,并使用4b5b編碼和BMC編碼,可以說協議在設計的時候就把安全考慮進去,但是各個廠商的USB PD協議芯片的安全性可以說是參差不齊了。USB PD協議芯片一般包括物理層、協議層和策略層,物理層包括一些通用寄存器和PD專用寄存器,還有BMC編解碼的功能等,協議層就會包含SOP*的識別、協議的實現等內容,策略層則包括一些上層策略。所以需要對芯片進行編程,配置策略,實現協議,當然就會存在固件。由于USB PD協議僅使用CC線進行通信,所以芯片廠商也會通過CC線對USB PD芯片進行固件燒錄,在燒錄方式上目前存在三種形態。

第一種是原廠單次燒錄(OTP),這種芯片只在出貨之前被燒錄一次,不會被再次修改,也就是說不存在燒錄惡意固件的問題。同時也因為只支持一次性燒錄,所以這種協議芯片往往只會兼容標準的、成熟的快充協議,后續如果出現其他快充協議,協議芯片很難兼容。

第二種是開放式的多次燒錄(eFlash/MTP),這種協議芯片配置靈活,可以利用開發工具修改固件,完成對新快充協議的兼容以及修復后續出現的BUG,出貨量較大。不過這種芯片對應的開發工具可以比較容易買到,存在較大安全風險。

第三種是加密式的多次燒錄(eFlash/MTP),芯片配置同樣非常靈活,不過只有掌握了密鑰才能獲得固件更新的權限,而密鑰一般都有充電器廠商保管。在技術層面,這樣既保證充電器對BUG的修復能力,又能保護充電器不會被惡意更改程序,是USB PD快充充電器的最佳選擇,但是如果廠商將密鑰存儲在燒錄軟件本地或者燒錄設備中,也有可能存在密鑰泄露的情況。

所以,USB PD協議的安全性主要取決于芯片廠商的取舍,以上三種形態都在一定程度上犧牲了產品的功能性或者安全性,至于如何去平衡功能性和安全性,這是開發人員和安全研究人員一直需要思考和面對的問題,我們要知道,沒有絕對的安全。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    7945

    瀏覽量

    264685
  • PD
    PD
    +關注

    關注

    4

    文章

    473

    瀏覽量

    43994
收藏 人收藏

    評論

    相關推薦

    求助,如何實現QC協議USB PD協議

    如何實現QC協議USB PD協議
    發表于 01-24 08:11

    PD 快充是什么?一篇文章帶你了解USB-PD快充協議

    前言  說起 USB-PD 協議,全名 USB Power Delivery ,可能對于很多人來說還很陌生,但是目前越來越多的手機已經開始支持這一協議并用來做為設備快速充電的功能。  
    發表于 08-27 09:50

    目前主流的快充協議USB-PD介紹

    USB-PD 是由 USB-IF 組織制定的一種快速充電規范,是目前主流的快充協議之一。 USB-PD 快充協議是以 Type-C 接口輸出
    發表于 10-28 08:55

    什么是PD充電協議

    高;而PD快充大家最為陌生,雖然多款iPhone設備都支持快充,但是其官方并沒有贈送PD充電器。本文小編就帶大家來了解一下什么PD充電
    發表于 01-28 17:05

    PD快充協議芯片,支持USB PD 3.0

    PD快充協議芯片可以用以下兩種芯片:JD6621,JD6606S芯片代理:深圳市夸克微科技鄭R*** Q : 2867714804JD6606S是一款集成的USB Power Delivery
    發表于 01-30 16:54

    PD充電協議芯片

    PD充電協議芯片,PD3.0快充芯片支持USBType-CPD標準USB Type-C PD其最高支持到100W快充深圳市微電半導體有限公司
    發表于 09-14 07:13

    什么是USB PD協議

    標題:PD協議什么是USBPD協議USB PD(Power Deliver)協議
    發表于 09-15 07:41

    USB PD3.1+PD+QC+AFC+FCP 快充協議取電芯片 PD誘騙芯片

    1.概述 XSP16 是一款集成 USB Power Delivery PD3.1 快充協議PD2.0/3.0 快充協議、QC2.0/3.
    發表于 06-01 22:14

    最新USB PD協議與快充市場的大統一

    最新USB PD協議與快充市場的大統一
    發表于 04-27 10:03 ?22次下載

    pd充電協議是什么_pd協議快充什么意思

    本文開始介紹了PD充電器的硬件結構,其次分析了pd充電協議是什么及pd協議快充的定義,最后闡述了PD
    的頭像 發表于 03-14 08:44 ?80.6w次閱讀
    <b class='flag-5'>pd</b>充電<b class='flag-5'>協議</b>是什么_<b class='flag-5'>pd</b><b class='flag-5'>協議</b>快充什么意思

    關于USB type C和PD協議規范設計要求

    USB type C PD協議設計考量
    的頭像 發表于 08-10 00:16 ?1.3w次閱讀

    支持多協議USB Type-C PD誘騙芯片

    音箱, 無人機 ,小風扇,臺燈等這樣的用電器,想要支持 USB? Type- C PD 的快充功能,就需要內置一顆 USB? Type- C PD 誘騙芯片。
    發表于 09-10 15:23 ?5991次閱讀
    支持多<b class='flag-5'>協議</b>的<b class='flag-5'>USB</b> Type-C <b class='flag-5'>PD</b>誘騙芯片

    JD6621:高度集成的USB PD控制器,支持USB PD 3.0和多種快速充電協議

    隨著移動設備的普及和快速充電需求的增加,USB PD控制器的重要性日益突出。JD6621作為一款高度集成的USB PD控制器,以其支持USB
    的頭像 發表于 05-12 17:48 ?1155次閱讀
    JD6621:高度集成的<b class='flag-5'>USB</b> <b class='flag-5'>PD</b>控制器,支持<b class='flag-5'>USB</b> <b class='flag-5'>PD</b> 3.0和多種快速充電<b class='flag-5'>協議</b>

    USB PD協議詳解

    USB PD(Power Deliver)協議USB IF協會制定的USB充電標準與技術,是目前主流的快充
    的頭像 發表于 05-25 16:26 ?1.6w次閱讀
    <b class='flag-5'>USB</b> <b class='flag-5'>PD</b><b class='flag-5'>協議</b>詳解

    PD快充協議是什么?USB PD快速充電通信原理

    USB PD的通信是將協議層的消息調制成24MHZ的FSK信號并耦合到VBUS上,或從VBUS上獲得FSK信號來實現手機和充電器通信的過程。
    發表于 11-13 10:15 ?1.3w次閱讀
    <b class='flag-5'>PD</b>快充<b class='flag-5'>協議</b>是什么?<b class='flag-5'>USB</b> <b class='flag-5'>PD</b>快速充電通信原理
    主站蜘蛛池模板: 天堂资源站| 欧美一级视频免费看| 免费成人看片| 天天天天做夜夜夜做| xxxx 欧美| 色色网视频| 伊人网视频| h小视频在线观看| 日韩免费精品一级毛片| 在线视频播放大全| tube4欧美最新69| 日韩成人黄色| 天天干夜夜骑| 精品国产高清在线看国产| 你懂的在线免费视频| 欧美午夜在线观看| 爱爱帝国亚洲一区二区三区| 久久国产精品久久久久久久久久| 免费视频一级片| 亚洲国产色婷婷精品综合在线观看| 精品国内一区二区三区免费视频| 黄网在线免费看| 亚洲va中文字幕无码| 91欧美精品激情在线观看| 69xxx日本| 免费观看黄a一级视频日本| 黄网地址| 四虎精品成人免费观看| 午夜精品视频在线观看| 国模极品一区二区三区| 国产三a级日本三级日产三级| 神马影院午夜dy888| 青草视频在线观看国产| 久久天天躁夜夜躁狠狠85台湾 | 日韩免费三级| 欧美aaaaa性bbbbb小妇| 亚洲成年人免费网站| 亚洲午夜精品久久久久久人妖 | 永久毛片| 亚洲精品理论| 伊人久久精品成人网|