本文档描述了一个名为C-PHY的高速串行接口,它在带宽有限(bandwidth limited channels,看的有人说C的含义就是channel limit)的通道上提供高吞吐量性能,用于连接到外设,包括显示器和摄像头。
C-PHY基于三相符号编码技术,通过三线每个符号2.28位信息,目标是2.5gs/s。C-PHY与D-PHY有许多共同的特征;许多部分是由D-PHY改编而成。C-PHY被设计为能够与D-PHY在相同的IC引脚上共存,从而可以开发双模器件。
主要特征:
1)三相符号编码,效率高;
2)5进制,每7个符号传输16bit信息,效率16/7=2.28;
3)传输数据最低单位是16bit,必须是16的整数倍;
4)支持双向传输,支持非对称传输(速率不同)
5)分Master和Slave;
6)没有单独的时钟线,采用嵌入式时钟
高速发射电路有2种,其中T1实现比较简单,仅能用于低速传输;T2相对复杂,主要用来匹配输出mid电压,如下图:
A、B、C都有三种电平状态(高、中、低),但是协议规定不能同时传输相同电平,则剩余共有6个组合状态,分别命名为±X,±Y,±Z,具体对应关系如下表:
具体实现方式,以+X举例PU_A为1,PD_A为0,A线上发送端上面的MOS管导通,下面的MOS管截止。PU_B为0,PD_B为1,B线上发送端下面的MOS管截止,下面的MOS导通。接收端三线的端接匹配都使能。根据电阻分压原理,可以得到A的电平为3/4V,B的电平1/4V。PU_TC 和PD_TC同时为1,两个MOS全部导通,从而C上的电平为1/2V。如下图所示:
实际上C-PHY是通过计算两线之间差值来确定状态的,也就是上述6个状态和差值有具体对应关系,如下表:
表中,1/2V代表的strong 1;1/4V代表的weak 1;-1/4V代表的weak 0;-1/2V代表的是strong 0。
综上,C-PHY测试眼图的时候,会有3个眼睛,当然眼图要求不止下图一个,待后续讲测试的时候再讨论,如下图:
以上介绍了这么多,但是C-PHY的编码和信息传输并不是通过6个状态直接完成的,而是通过状态的切换来实现(反人类呀)。由于共有6个状态,那么每个状态就有5个不同的状态可供转换(也就是5进制的由来),具体如下图所示:
是不是看的有点头晕,不过还没完!还需要引进3个名词frp=flip(翻转)、rotate(旋转)和polarity(反极性)。每个状态都有5个不同状态可被切换,然后通过FRP的组合分别代表,如下图:
什么含义呢?f=1代表极性变化,但不旋转,而且rp两个符号位无效;f=0代表rp符号位有效;r=1代表顺时针旋转;r=0代表逆时针旋转;p=1代表极性变化;p=0代表极性不变。例如000的含义是逆时针旋转且极性不变,当上个状态是+X,则代表现在状态变成了+Z;001的含义是逆时针旋转且极性改变,仍然假设上个状态是+X,则现在状态变成了-Z了。
最后,端到端的传输过程是什么样呢,如下图所示,16bit先转换成7个符号(每个符号3位,共21位),然后并行数据转换成串行数据,输送到符号编码器和3个线的驱动器,接收端流程相反。
具体16bit数据转换成符号是通过查表的方式完成,具体如下表:
例如数据0x4fff),查表得知7个符号是S1=(1,X,X),S2~S6=(0,1,1)。首先0x4fff在0x4000~0x4fff区域,则f=(0,0,0,0,0,0,1),顺序是S6~S1;至于r和p,通过下式得知:
0x4fff=(0100 1111 1111 1111)=(0,1,0,0,ro6,po6……ro1,po1)