TYPECPD升压协议全解析Word文档格式.docx
《TYPECPD升压协议全解析Word文档格式.docx》由会员分享,可在线阅读,更多相关《TYPECPD升压协议全解析Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
■I■■(,I■(,,,,},IJ∙I(■■■I■■■1「■■■■Q,},∙I(■■■I■∙■,I■■(■「
y⅛J¾
τy⅛J⅛Γi⅛J⅛Ftħι⅛lτbl⅛JTIlI⅞]⅞lτl∆Γrffl⅛JτLιl⅞Ftef⅛ΓrlLfτWMr⅛⅛J
图二
通过BMC从左到右按照脉宽解码后,我们可以得到一系列Ol的无序组合。
通过对01组合的观察,可以看到从左开始有64对01的前导码,来作为数据的等待和除干扰。
64对前导码后,才是需要关注的数据内容。
通过BMC解码后,并去除前导码的数据,也并不是最终可以解析的数据。
PD通信协议在这里增加了一个软编码,称为4B5B编码。
即接收到的数据每5个二进制数据,需要经过一个4B5B编码表还原成正确的Pb通信数据。
看到这里,都可以想到无线电的加密工作了,但是PD官方资料给出的解释
是4B5B是为了降低接收器的设讣复杂度并且允许更加多样化的接收器设讣。
4B5B的解码表如下:
Table5∙14bSbSymbolEnCOdingTabIe
Name
4b
5bSyInbOI
DeSCriPtiOn
0000
IllIO
hexdata0
1
0∞l
OIOOI
hexdata1
2
0010
IOlOO
hexdata2
3
0011
IOloI
hexdata3
4
0100
OlOIO
IIeXdata4
5
0101
OlOlI
hexdata5
6
0110
OlllO
hexdata6
7
Olll
OlIll
IIeXdata7
8
1000
IOOIO
hexdata8
9
1001
IOOlI
hexdata9
A
1010
IOlIO
hexdauΛ
B
1011
IOlll
hexdataB
C
1100
IIOlO
hexdataC
D
1101
IIOlI
IleXdataD
E
1110
IllOO
hexdataE
F
Illl
IilOl
hexdataF
Sygl
K∙code
IIoOO
StartSynChWl
Sync∙2
IOOOI
StartSynCh92
RSTI
OOlll
HardReSet«
RST∙2
IIOOl
HardReSeC#2
EOP
OllOI
EOPEndOrPaCket
ReSerVfed
ErrOr
OOOOO
ShaIInOtbeUSed
Rescued
OOOOl
ShaIinotbeUSed
ReSer∖fed
OOOlO
Reser∖fed
OOOlI
ShallnotbeUSed
OOlOO
ShallnotbeUSed
ReSer∖red
OOIol
StUIInOCbeUSed
SynC∙3
OOllO
StartSynCh»
OlOOO
StUIlnOtbeUSed
Reserx9Cd
OllOO
ShaIInCtbeUSed
Reserved
IOOOO
ShalInOCbeused
ReSenred
Illll
根据图二我们可以做一个4B5B的解码例子:
取出图二中引导码后,我们可以得到的数据:
OOOllOOOllOOOllIOOOl10010,通过上述4B5B表格进行解码后我们得到最终的数据为:
SYNCl-
SyNCl-SyNCl-SYNC2-lo
看到这里可能你有疑问,OOOll在表格中不是ReSerVed吗?
是的,没错,
4B5B还有个编码规则,就是从左到右记录数据时,需要将读取的数据倒过来编
译,即OOoll要倒成IIOOOO
山于Pb通信的流程复杂,且BMC解码后的数据往往长达上口•位,人工编解码耗时耗力且容易岀错,所以需要使用一些自制的电脑软件来进行辅助解码,
于是才有了下面的自制解码软件。
IOOlO
Synl
KSGHeader
DataTIan
∞101
SOP
2400IIIA
OlllIIOlll
数童
Synlsyn2
SOUrCeCaP
500OmV
Ollll
OOOl
DFP
200OmA
IlOOl
PllO
PD2.0
1480OmV
SOuRCE
OBA
OllllOlOOl
OOlOOOoO
HsgIdZOOO
0>
V
DataOIO
OlOOl
OOOO
OIOll
解析结果:
IOOl
OllOl
OlOlO
IOoO
IOOO
IlOO
DPD数磁析
}Wj∣清除I
图四
该软件就包括了4B5B的解码,和数据内容的解析,能够快速的将BMC解
码的数据内容转换成功能定义。
PD协议内容繁多,主要包括以下流程:
•POWerNegOtiatiOn电压协商流程(电压升降压)
•GO十OrninOPeratiOn
•SoftReSet软件复位流程
•HardReSet硬件复位流程
•CableReSet
•POWerROleSWaP
•FastROleSWaP
•DataROleSWaP
•VCONNSWaP
•AdditiOnCaPabilityandStatUS
•SeCUrity密钥流程
•FirmWareUPdate固件升级流程
•StrUCtUredVbM厂商自定义结构流程
・BlSTPb协议时序测试流程
今天我们就根据PoWerNegOtiatiOn讲解PD电压升降的流程结构。
POWerNegotiation流程发生在SOUrCe与Sink之间,在这里SOLlrCe
可以是适配器,可以是车充,也可以是移动电源。
Sink可以是任何支持TyPe-CPD的受电端。
POWerNegotiation的协议流程包括以卜Pb指令:
・SoUrCeSendCAPABILlTy供电能力指令(包含内容:
具有哪儿种电压值
和电流值)
・SinkSendREQUEST需电请求指令(包含内容:
选取哪种电压和电流值)
・SoUrCeSendACCEPT同意需电请求指令(包含内容:
经过对比需电在自己的供电范围内)
・SoUrCeSendPS_Rby完成需求指令(包含内容:
已经成功进行能电压改变)
・GOODCRC指令接收通过指令
在实际应用中这些指令是怎么操作的呢,接下来我来详细述说:
首选SOUrCe端工作在TyPE-C的CC模式5V3A检测模式下,一旦检测到有SlNK受电端接入,便开始输出5V给SlNK端。
而这时在CC线上,SOUrCe开始不间断发送SOUrCeSendCAPABlLlTy指令,SlNK端接收到SOUrCeSendCAPABlLITy指令后,判断PD通信数据符合协议规定,便回复GOODCRC表示已经成功接收到数据,接着SINK会根据SOUrCe端能够提供的电压进行选择,SlNK选择好合适的电压电流便对SOURCE进行供电请求,于是SINK发出SinkSendREQUEST进行需电请求指令。
SOUrCe接收到SinkSendREQUEST后,会给SINK回复GOODCRC,然后对SinkSendREQUEST指令请求的电压进行校对,如果符合SoUrCe的供电能力,SoUrCe便对SlNK发SOUrCeSendACCEPT指令,表明同意SlNK的端电压请求。
SlNK接收到SOUrCe发送的ACCEPT指令后,回复GOODCRC。
SOUrCe接收到SlNK发出的GOODCRC后,便开始进行电压调节,电压调节成功后,便发出SOUrCeSendPS_RbY表示已经调整电压成功,SlNK收到后,便回复GOODCRC表示接收指令成功。
以上就是一个完整的升压指令流程。
㈣
PD的通信指令(就升压来说)有两种方式一种方式是控制包,而另一种是带数据包。
指令包格式如下:
PreambIe(trainingforreceiver)
SOP∙(StartOfPdCket)
MeSSageHeadef
ByteO
ByteI
•∙∙
Byten∙l
Byten
CRC
EOP(EndOf
PdCket)
图五
一个完整包结构包括引导码,SOP★使用场景码,MeSSageHeader功能码,
ByteO-H数据码和CRC校验码,EOP结束码。
如果Byte数据码没有,说明指令仅仅作为控制指令使用,没有数据内容,所以叫做控制包。
有数据内容的叫做数据包,通常数据包里携带了要变化的电压值和电流值等信息。
②引导码:
BMC解码后可以看到山64对Ol组成,主要为了进行接收缓冲。
②SOP★码:
BMC解码后山20位的二进制数组成,通过4B5B解码后我们可以看到SOP由SynCl和Sync2的解码值构成。
表明该指令是应用在SoUrCe与
SlNK之间。
此处还有SOP'
、SOP*的场景码,表明是SOUrCe与E∙marker之间的场景指令。
③MessageHeaCler功能码:
BMC解码后山20位的二进制数组成,经过4B5B
解码