TYPE-C PD供電協議訊息格式
PD定義了兩種訊息型別,分別為控制訊息(Control Messages)、資料訊息(Data Messages )和擴充套件訊息(Extend Messages)。
PD控制訊息
控制訊息屬於短訊息型別,用於管理埠與裝置之間的訊息流或交換不需要額外資料的訊息。控制訊息的長度為16位長。
控制訊息的包結構如下圖所示:
PD資料訊息型別
資料訊息的長度為48位到240位,用於控制埠與裝置之間進行資料交換。
資料訊息分為三種型別:
- 用於展示供電方的電源能力的資料訊息。
- 用於BIST的裝置的資料訊息。
- 廠商自定義的資料訊息型別。
PD資料訊息型別的結構如下圖所示:
PD擴充套件訊息
擴充套件訊息用於在一對埠之間交換資訊。擴充套件訊息最多為MaxExtendedMsgLen位元組。
擴充套件訊息的型別有:
- 用於源和電池資訊的
- 用於安全的。
- 用於韌體更新的。
- 那些是供應商定義的
PD擴充套件訊息的結構如下圖所示:
PD訊息組成
資料訊息和控制訊息的資料包組成基本類似。基本都包括:
-
前導碼:32位連續的01序列,不進行4b5b編碼,總共64位。
-
SOP包開始:可能是SOP,SOP’或SOP’’.
-
2位元組的資訊頭:訊息包型別
-
CRC校驗位:對訊息頭和訊息資料(如果有的話)的CRC校驗
-
EOF結束包:5位的4b5b編碼。
除過EOF和SOF是4b5b編碼後的長度,其餘均為原始長度。
訊息頭(緊隨 SOP 包之後)
訊息頭包括2位元組,總共16位。
位 | 名稱 | 說明 | |
---|---|---|---|
15 | Extended | 此訊息是否為擴充套件型別 | |
14…12 | Number of Data Objects 資料個數 | 後面資料的個數,每個資料是4位元組了,對於非擴充套件包,此欄位的值為0~7 | |
11…9 | MessageId訊息ID | 訊息ID,每傳送一次,增加一次 | |
8 | Port Power Role 介面供電角色 | 對於SOP資訊,代表介面的供電角色 | |
8 | Cable Plug 線纜或介面 | 對於SOP’或SOP’’資訊,代表此訊息是介面傳送的還是線纜傳送的 | |
7…6 | Specification Reversion規範版本 | 此訊息的當前版本 | |
5 | Port Data Role 介面通訊功能角色 | 對於SOP訊息代表介面的功能角色 | |
5 | Reserved | 對於SOP’和SOP’’保留 | |
4…0 | MessageType訊息型別 | 訊息型別 |
Number of Data Objects 資料個數
使用3位給示4位元組的資料個數,對於控制訊息,資料個數為0.對於資料訊息,此位元組不為0.
訊息ID MessageId
訊息ID此為計數,當軟體復位或硬體復位時,初始化為0.
當接收到GoodCRC訊息時,表示成功接收到訊息時,訊息ID計數器應加1。注意:在BIST期間,傳送測試幀時,傳送方不會增加MessageID,接收方會忽略MessageID。
Port Power Role
1位埠電源角色欄位應指示埠的當前電源角色:
- 0b Sink耗電方
- 1b Source,供電方
Specification Revision
- 00b –Revision 1.0
- 01b –Revision 2.0
- 10b - 11b – Reserved, Shall Not be use
Port Data Role
- 0b UFP
- 1b DFP
Cable Plug
- 0 表示訊息來自 DFP or UFP
- 1 表示訊息來自電纜插頭
Message Type訊息型別
如果是控制資訊,則有以下:
“Bits4…0” | Message Type | Sent by | “Valid Start ofPacket” |
---|---|---|---|
0000 0 | Reserved | N/A | |
1 | GoodCRC 收到訊息的應答 | Source, Sink or Cable Plug | SOP* |
10 | GotoMin 供電調節到最小 | Source only | SOP only |
11 | Accept 接收對方的請求 | Source, Sink or Cable Plug | SOP* |
100 | Reject 拒絕對方的請求 | Source or Sink | SOP only |
101 | Ping | Source only | SOP* |
110 | PS_RDY 供電已經準備好 | Source or Sink | SOP only |
111 | Get_Source_Cap 獲取對方的供電能力訊息 | Source or Sink | SOP only |
1000 | Get_Sink_Cap 獲取對方耗電的需求 | Source or Sink | SOP only |
1001 | DR_Swap 通訊功能角色切換 | Source or Sink | SOP only |
1010 | PR_Swap 供電角色切換 | Source or Sink | SOP only |
1011 | VCONN_Swap VCONN供電角色切換 | Source or Sink | SOP only |
1100 | Wait 回覆對方的請求,讓結方稍等再進行請求 | Source or Sink | SOP only |
1101 | Soft_Reset 軟復位 | Source or Sink | SOP* |
1110 | Data_Reset 資料復位 | Source or Sink | SOP only |
0 1111 | Data_Reset_Complete 資料復位完成 | Source or Sink | SOP only |
1 0000 | Not_Supported 不支援對方傳送的請求 | “Source, Sink orCable Plug” | SOP* |
1 0001 | Get_Source_Cap_Extended 獲取對方的供電相關的擴充套件資訊 | Sink or DRP | SOP only |
1 0010 | Get_Status 獲取對方的狀態 | Source or Sink | SOP* |
1 0011 | FR_Swap 快速供電角色切換 | Sink1 | SOP only |
1 0100 | Get_PPS_Status 獲取供電言的額外資訊 | Sink | SOP only |
1 0101 | Get_Country_Codes 獲取本地化資訊 | Source or Sink | SOP only |
1 0110 | Get_Sink_Cap_Extended | Source or DRP | SOP only |
1 0111 | Get_Source_Info | Sink or DRP | SOP Only |
1 1000 | Get_Revision | “Source, Sink or Cable Plug” | SOP Only” |
1 1001-1 1111” | Reserved | N/A | 保留 |
如果是資料訊息,則訊息型別有:
Bits 4…0 | Type | Sent by | “Valid Start of Packet” |
---|---|---|---|
0 0000 | Reserved | “All values not explicitly definedare Reserved and Shall Not be used.” | |
0 0001 | Source_Capabilities 供電方的供電能力資訊 | “Source or Dual Role Power” | SOP only |
0 0010 | Request 請求供電 | Sink only | SOP only |
0 0011 | BIST 自測 | “Tester, Source or Sink” | SOP* |
0 0100 | Sink_Capabilities 耗電方的耗電需求資訊 | “Sink or Dual-Role Power” | SOP only |
0 0101 | Battery_Status 電池狀態 | Source or Sink | SOP only |
0 0110 | Alert 警告 | Source or Sink | SOP only |
0 0111 | Get_Country_Info 獲取要地化資訊 | Source or Sink | SOP only |
0 1000 | Enter_USB | DFP | SOP* |
0 1001 | EPR_Request | Sink | SOP only |
0 1010 | EPR_Mode | Source or Sink | SOP only |
0 1011 | Source_Info | Source | SOP only |
0 1100 | Revision | “Source, Sink orCable Plug” | SOP* |
“0 1101 -01110” | Reserved | “All values not explicitly definedare Reserved and Shall Not be used.” | |
0 1111 | Vendor_Defined 廠商用自定義資訊 | “Source, Sink or Cable Plug” | SOP* |
“1 0000-11111” | Reserved | “All values not explicitly defined are Reserved and Shall Not beused.” |
如果是擴充套件訊息,則訊息型別有:
Bits 4…0 | Type | Sent by | “Valid Startof Packet” |
---|---|---|---|
0 0000 | Reserved | “All values not explicitlydefined are Reserved andShall Not be used.” | |
0 0001 | Source_Capabilities_Extended | “Source or DualRole Power “ | SOP only |
0 0010 | Status | Source or Sink | SOP* |
0 0011 | Get_Battery_Cap | Source or Sink | SOP only |
0 0100 | Get_Battery_Status | Source or Sink | |
0 0101 | Battery_Capabilities | Source or Sink | SOP only |
0 0110 | Get_Manufacturer_Info | Source or Sink | SOP* |
0 0111 | Manufacturer_Info | “Source, Sink orCable Plug” | SOP* |
0 1000 | Security_Request | Source or Sink | SOP* |
0 1001 | Security_Response | “Source, Sink orCable Plug” | SOP* |
0 1010 | Firmware_Update_Request | Source or Sink | SOP* |
0 1011 | Firmware_Update_Response | “Source, Sink orCable Plug” | SOP* |
0 1100 | PPS_Status | Source | SOP only |
0 1101 | Country_Info | Source or Sink | SOP only |
0 1110 | Country_Codes | Source or Sink | SOP only |
0 1111 | Sink_Capabilities_Extended | “Sink or DualRole Power” | SOP only |
1 0000 | Extended_Control | Source or Sink | SOP only |
1 0001 | EPR_Source_Capabilities | “Source or DualRole Power” | SOP only |
1 0010 | EPR_Sink_Capabilities | “Sink or DualRole Power” | SOP only |
“1 0011 -1 1111” | Reserved | “All values not explicitlydefined are Reserved andShall Not be used.” | |
1 1110 | Vendor_Defined_Extended | “Source, Sink orCable Plug” | SOP* |
1 1111 | Reserved | “All values not explicitlydefined are Reserved andShall Not be used.” |