前言:
此刻我们对“c语言datatype”可能比较关怀,朋友们都需要分析一些“c语言datatype”的相关资讯。那么小编在网络上收集了一些关于“c语言datatype””的相关内容,希望小伙伴们能喜欢,各位老铁们快快来了解一下吧!现在TypeC接口已经进入了家家户户,它的发展普及可以说是摧枯拉朽,其他USB接口的市场份额在急剧下降,甚至影响到了供电接口以及视频接口。
我们都知道全功能的TypeC接口都是有24个引脚的,除了电源和GND,以及高速差分信号之外,TypeC接口额外增加了两个引脚,用于做TypeC PD的通信,这样就可以使得该接口在自有协议的基础上可以兼容其他协议。那么它的通信的物理信号到底是怎么样的呢?
TypeC接口上的通信引脚的名称为CC,具体引脚位置有兴趣的可以看我之前写的文章,USB PD系列之TypeC接口与USBPD的前世今生
言归正传,TypeC PD的通信肯定是发一串0,1,进而代表相应的数据。那么什么是0,什么是1呢?
TypeC PD遵循的编码规则为BMC编码,如下图所示:
Data为正常情况下我们理解的0和1,即高为1,低为0,TypeC PD通讯所使用的编码为下面BMC编码,即,在一个Clock时钟之内,如果翻转一次为1,不发生翻转为0,每一个字节之间必定翻转一次,即从1变为0以及从1维持为1,BMC编码都会翻转。那么为什么要用这种编码呢?
好处1:通信引脚包含了时钟信息,通信双方不用担心双方的时钟同步问题,为单线通信方式提供了便利。大家都是知道IIC,SPI这种常见的通信方式都是要有时钟同步的。
好处2:通信电平的能量维持平均,不会出现全是1,全是0,能量维持不均的情况,当然,这一点好处用户基本无感觉。
另外,我这里要声明一下,因为我之前也看过网上很多关于讲解TypeC PD通信的文章,他们会把第一代的通信方式和第二代的通信方式搞混。第一代通信方式,是通过VBUS引脚上的BFSK(Binary Frequency Shift Keying)通信的;第二代才采用BMC编码,第一代已经被放弃了,第二代才是我们现在看到的TypeC PD通信,这种BMC通信方式延续至第三代。如下图所示:
说完编码方式,那么他们电平信号是多少呢?高电平约为1.2V,低电平为0V,当然上升和下降斜率也有一个要求,这个就涉及到眼图的概念,如下图所示:
通信过程中,0和1的通信信号,不能与灰色地带重合,只能在白色的地方。这就对信号的上升和下降,以及幅值有了相应的要求。
好了,说完数据的通信信号,我们回过头还说通信信号代表的含义。通常,在数字电路中,二进制,十六进制为大家所熟知,十六进制和二进制的转换甚至大家都可以背下来。但是,在很多通信领域中,十六进制并不受欢迎,在TypeC PD同样也是这样的。为什么呢?
TypeC PD通信为单线通信格式,因此会需要一定的0,1告诉对方,我要和你对话,这个时候,十六进制显然不够使用,因此,TypeC PD的通信为5B码,即5位二进制数代表一位十六进制数,当然,这种编码,也考虑到了整体电平LEVEL,以及电平的翻转。具体的转换见下表:
如上图所示,第三列为TypeC PD实际传输的0,1编码。第一列为代表含义的十六进制数据。
以上为我分享关于TypeC PD的基本通信规则。希望对大家有帮助。
标签: #c语言datatype