




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、type-c-pd升壓協(xié)議全解析type-c pd升壓協(xié)議全解析pd是power delivery的簡稱代表著type-c電力傳輸?shù)囊粋€通訊協(xié)議。一個簡單的type-c pd使用環(huán)境,需要下面幾個設(shè)備構(gòu)成:host、device、cable (即:主機,機,emarker )pd的協(xié)議書主要的內(nèi)容集中在: pd協(xié)議的bmc編碼規(guī)則; pd協(xié)議的4b5b解碼; pd協(xié)議的通信流程; pd協(xié)議的通信指令結(jié)構(gòu); pd協(xié)議的通信內(nèi)容解析;pd協(xié)議獨立與usb協(xié)議之外,但由于type-c 口的兼容特性,可以讓pd 協(xié)議、qc協(xié)議、mtk協(xié)議、fcp協(xié)議等快沖協(xié)議熔于一爐。pd的物理層由發(fā)射模塊和接收模塊
2、組成,由于cc是單線協(xié)議,所以所有 通信都是半雙工的。bmc編碼規(guī)則是曼切斯特編碼的一個版本,按照脈言來設(shè)定的0和10010101010001100011dat|n_n_iltt_ni ii lbmc umrlnnrlmirlnlnjirl圖一可以從上圖看出,01的編碼并不以電平的變化為依據(jù),而是按照脈甕來決 定。bmc的最大頻率達33okhz ,單指令長度在1ms內(nèi)。通過邏輯分析儀對波形的讀取,我們可以看到未經(jīng)bmc解碼的原碼1.48ms1.9ms1.32msi.34msl.s6ms1.98ms1.6msliffefw2wtftiftnvlsftfbmnifw714rtm21tliiwbfl
3、ifwkfw圖二通過bmc從左到右按照脈寬解碼后,我們可以得到一系列01的無序組合。通過對01組合的觀察,可以看到從左開始有64對01的前導(dǎo)碼,來作為 數(shù)據(jù)的等待和除干擾。64對前導(dǎo)碼后,才是需要關(guān)注的數(shù)據(jù)內(nèi)容。通過bmc解碼后,并去除前導(dǎo)碼的數(shù)據(jù),也并不是最終可以解析的數(shù)據(jù)。 pd通信協(xié)議在這里增加了一個軟編碼,稱為4b5b編碼。即接收到的數(shù)據(jù)每5 個二進制數(shù)據(jù),需要經(jīng)過一個4b5b編碼表還原成正確的pd通信數(shù)據(jù)??吹竭@里,都可以想到無線電的加密工作了,但是pd官方資料給出的解釋 是4b5b是為了降低接收器的設(shè)計復(fù)雜度并且允許更加多樣化的接收器設(shè)計。4b5b的解碼表如下:table 5-1
4、4b5b symbol encodingtablename4b5b symboldescription0000011110hex data 01000101001hex data 12001010100hex data 23001110101hex data 34010001010hex data 45010101011hex data 560110ohiohex data 67011101111hex das 78100010010hex data 89100110011hex data 9a101010110hex dau ab101110111hex data bc110011010he
5、x data cd1101nonhex data de111011100hex data ef111111101hex data fsynclk-code11000startsynchsync-2k*code10001startsynch #2rst1k-code00111hard reset 1rst2kcode11001hard reset #2eopkv;貂析匍余|圖四該軟件就包括了 4b5b的解碼,和數(shù)據(jù)內(nèi)容的解析,能夠快速的將bmc解碼的數(shù)據(jù)內(nèi)容轉(zhuǎn)換成功能定義。pd協(xié)議內(nèi)容繁多,主要包括以下流程: power negotiation電壓協(xié)商流程(電壓升降壓)gotomin opera
6、tionsoft reset 軟件復(fù)位流程 hard reset硬件復(fù)位流程cable reset power role swapfast role swapdata role swapvconn swapaddition capability and statussecurity密鑰流程 firmware update固件升級流程.structured vdm廠商自定義結(jié)構(gòu)流程bist pd協(xié)議時序測試流程今天我們就根據(jù)power negotiation講解pd電壓升降的流程結(jié)構(gòu)。power negotiation流程發(fā)生在source與sink之間,在這里source 可以是適配器,可以是
7、車充,也可以是移動電源。sink可以是任何支持type-c pd的受電端。power negotiation的協(xié)議流程包括以下pd指令:source send capability供電能力指令(包含內(nèi)容:具有哪幾種電壓值和 電流值)sink send request需電請求指令(包含內(nèi)容:選取哪種電壓和電流值)source send accept同意需電請求指令(包含內(nèi)容:經(jīng)過對比需電在自己 的供電范圍內(nèi)).source send ps_rdy完成需求指令(包含內(nèi)容:已經(jīng)成功進行能電壓改變)goodcrc指令接收通過指令在實際應(yīng)用中這些指令是怎么操作的呢接下來我來詳細述說首選source 端工
8、作在type-c的cc模式5v3a檢測模式下,一旦檢測到有sink受電端 接入,便開始輸出5v給sink端。而這時在cc線上,source開始不間斷發(fā)送source send capabiltty 指令,sink端接收到source send capability指令后,判斷pd通信數(shù)據(jù) 符合協(xié)議規(guī)定,便回復(fù)goodcrc表示已經(jīng)成功接收到數(shù)據(jù),接著sink會根 據(jù)source端能夠提供的電壓進行選擇,sink選擇好合適的電壓電流便對 source進行供電請求,于是sink發(fā)出sink send request進行需電請求 指令。source 接收到 sink send request 后,會
9、給 sink 回復(fù) goodcrc , 然后對sink send request指令請求的電壓進行校對,如果符合source的 供電能力,source便對sink發(fā)source send accept指令,表明同意sink 的端電壓請求。sink接收到source發(fā)送的accept指令后回復(fù)goodcrc。 source接收到sink發(fā)出的goodcrc后,便開始進行電壓調(diào)節(jié),電壓調(diào)節(jié) 成功后,便發(fā)出source send ps_rdy表示已經(jīng)調(diào)整電壓成功,sink收到后, 便回復(fù)goodcrc表示接收指令成功。以上就是一個完整的升壓指令流程。pd的通信指令(就升壓來說)有兩種方式一種方式是控
10、制包,而另一種是 帶數(shù)據(jù)包。指令包格式如下:preambleftraining for receiver)50pf (start of packet)message headerbyteobytel byte n-1 byte ncrceop (end of packet)圖五一個完整包結(jié)構(gòu)包括引導(dǎo)碼,sop*使用場景碼,message header功能碼,byteo-n數(shù)據(jù)碼和crc校驗碼,eop結(jié)束碼。如果byte數(shù)據(jù)碼沒有,說明指令僅僅作為控制指令使用,沒有數(shù)據(jù)內(nèi)容,所以叫做控制包。有數(shù)據(jù)內(nèi)容的叫做數(shù)據(jù)包,通常數(shù)據(jù)包里攜帶了要變化的電壓 值和電流值等信息。 引導(dǎo)碼:bmc解碼后可以看到由
11、64對01組成,主要為了進行接收緩沖。sop*碼:bmc解碼后由20位的二進制數(shù)組成,通過4b5b解碼后我們可以 看到sop由syncl和sync2的解碼值構(gòu)成。表明該指令是應(yīng)用在source與 sink之間。此處還有sop、sop的場景碼,表明是source與e-marker 之間的場景指令。message header功能碼:bmc解碼后由20位的二進制數(shù)組成經(jīng)過4b5b 解碼后為16位二進制數(shù)據(jù)構(gòu)成。message header通常包括:數(shù)據(jù)包還是控制包說明,是由sink還是 source發(fā)出的指令,pd的協(xié)議版本,如果是數(shù)據(jù)包還包含了有多少個數(shù)據(jù)包的信息。詳細表格說明如下:0: dat
12、a control msg0: control msg message header1: data單位:7b 10: pd3.00: message來自dfp ufp1 : message來自cable plugn$gos sink1: sourcei只用于sop,且接收方 不對其正防性做檢查0: ufp1: dfp結(jié)合number of data的ects判斷是控 制包還是數(shù)據(jù)包.然后根據(jù)這5個bi映定是何林包頭其中,低四位二進制碼比較重要,代表的是該pd指令的名字,比如說升壓 中用到的source send capabilfty就是又這四位來定義的。其它指令的定義表如下:bits 4.0t
13、ypesent byvalid start of packet0 0000reserved0 0001source capabilitiessource or dual-role powersop only0 0010requestsink onlysop only0 0011bisttester, source or sinksop*0 0100sink-capabilitiessource or dual-role powersop only0 0101batterystatussource or sinksop only00110alertsource or sinksop only00
14、111-0 1110reserved0 1111vend。.definedsource, sink or cable plugsop*1 0000-1 1111reserved圖七在指令包的結(jié)構(gòu)中過了 message header向右就是數(shù)據(jù)區(qū)域通過4b5b 的轉(zhuǎn)換后,sop是16個二進制位,message header也是16個二進制位, 而數(shù)據(jù)區(qū)域,每個獨立的數(shù)據(jù)塊包括了 32個二進制位。所以byteo ( 32位) bytel ( 32位)那么新的問題又來了,一條完整的指令包到底怎么判斷包含 了多少的數(shù)據(jù)塊呢,這個時候就需要由message header來進行判斷了。 message h
15、eader的12到14位表示1到7個數(shù)字,代表的就是指令包的數(shù) 據(jù)數(shù)量,所以我們可以認為指令包的最大數(shù)據(jù)數(shù)為70數(shù)據(jù)模塊一般應(yīng)用在 source send capability , sink send request 等這樣需要帶電壓電流的 pd指令中。數(shù)據(jù)模塊右邊就是一個32位的數(shù)據(jù)校驗區(qū)域,也稱作crc校驗。crc校 驗是pd通信協(xié)議中獨特的一套校驗方式,為了保持數(shù)據(jù)的完整與糾錯,整個 pd指令任何一個位變動,都會造成crc改變。經(jīng)過了引導(dǎo)碼、sop碼、messageheader. data碼、crc碼后,接下 來就是eop碼即結(jié)束碼,在4b5b中我們可以看到接收到01101的bmc編 碼
16、,即代表pd指令包全部接收完畢。下面我們就實際做一次pd協(xié)議分析:首先準備好待測試的pd適配器、pd數(shù)據(jù)線(兩頭都是type-c的那種pd測試架、邏輯分析儀。然后將插拔過程中pd的數(shù)據(jù)流程通過邏輯分析儀讀取出來如下:圖八首先我們要做的就是pd指令的bmc解碼照脈沖長短變化成二進制數(shù)據(jù), 然后通過協(xié)議分析軟件進行代碼解析,為了更好的講解,我們先人工分析一條指令。圖九引導(dǎo)碼由64位二進制的01組成,這一段可以直接略過。otl o itsop碼1.56ms1.6ms1.58ms也ot圖十sop*碼從左到右bmc解碼后等于:00011 00011 0001110001根據(jù)圖三進行4b5b解碼我們可以得
17、到:sync1.sync1.sync1-sync2于是我們可以知道,該指令屬于source與sink之間的指令。我們接著往下分析:1.6ms1.64ms圖十一1.66msmessage header 碼從左到右 bmc 解碼后等于:10010 ohio 10010 001010 通過 4b5b 解碼后為:0001 0110 0001 0010o15到。位為:0010 0001 0110 0001根據(jù)圖六可以得到以下信息:從15,14,13,12位可以得到此pd指令包括2個數(shù)據(jù)塊。 從11,10, 9位可以知道此pd指令正在進行第一個回合。(pd指令+goodcrc指令為一個回合) 從8位可以得
18、知此pd指令由source發(fā)出。 從7,6位得知指令遵循的是pd2.0規(guī)則。 從5得知發(fā)指令的設(shè)備角色為dfp。 從4,3,2,1,0得到00001并查閱圖七得到該指令名:messageheader指令,為電壓協(xié)商協(xié)議的發(fā)起指令。數(shù)據(jù)指令過長過程不再詳敘,用協(xié)議軟件可以分析得到:圖十二接下來我們用協(xié)議軟件分析,速度會快很多,能夠迅速掌握這個流程功能和 異常:圖十三此指令為上條message header的回復(fù)指令。接著下條指令為:圖十四此為sink端發(fā)出的sink send request指令,我們可以得到相關(guān)信息,已經(jīng)sink請求的電壓等級。source境的回復(fù)指令:圖十五從該指令信息中,我們可以知道該信息由source發(fā)出,用來回復(fù)sink 端發(fā)出的電壓請求。接著source端收到指令后,又發(fā)出的指令:0 pd數(shù)套解析00011 00011 00011 10001 10101 ohio 10101 01111 10010 00101
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 植物生產(chǎn)與環(huán)境模擬題及參考答案
- 塑料有毒知識培訓(xùn)課件
- 單晶硅公司操作工工作總結(jié)
- 山西省太原某校2024-2025學(xué)年高一上學(xué)期9月月考數(shù)學(xué)試題
- 傳染病防控知識培訓(xùn)課件
- 幼兒園教職工安全培訓(xùn)內(nèi)容
- 高層機電安裝施工方案
- 防洪沙箱噴漆施工方案
- 橫路大橋施工方案
- 懸崖棧道欄桿施工方案
- 電梯維保員服務(wù)用語培訓(xùn)
- 中國老年危重患者營養(yǎng)支持治療指南2023解讀課件
- 《管理信息系統(tǒng)》考試復(fù)習(xí)題庫(含答案)
- 2024年9月抖音短視頻及直播電商月報
- 《光伏電站運行與維護》試題及答案一
- 人教版初中全部英語單詞表
- 2024年浙江省中考社會試卷真題(含標準答案及評分標準)
- 2024年貴州省高職(??疲┓诸惪荚囌惺罩新毊厴I(yè)生文化綜合考試語文試題
- 一年級體育教案全冊(水平一)下冊
- 全身麻醉后護理常規(guī)
- 2024年貴州省貴陽市白云區(qū)九年級中考一模數(shù)學(xué)試題(解析版)
評論
0/150
提交評論