MIPI C-PHY是手机中的重要接口,它的速率比D-PHY还要高,其速率单位是symbol/s/lane,而D-PHY的速率单位是bit/s/lane,换算关系是1 Symbol = 2.28 bits。
以前介绍过D-PHY相关内容:
https://www.dianyuan.com/eestar/article-3322.html
今天着重介绍下C-PHY内容,包括对协议的人肉解析、C-PHY不需要时钟的原因,内容较多,建议收藏。
C-PHY和D-PHY在pin map上有个重要的区别:C-PHY没有单独的时钟通道,它的时钟隐藏在通信的时序之中。Dphy是每条lane是一对差分线,而Cphy每条lane是3条数据线,彼此差分。下图是使用3 lane的C-PHY接口链路示意图,一条lane包含3条信号线,3条信号线彼此做差分。
同D-PHY一样,C-PHY也有LP(低功耗)和HS(高速)两种工作模式,我们着重介绍HS时的特点。
先看下C-PHY的波形,下图是一条lane中A、B和C三根数据线在高速模式时、分别对地的单端信号的波形,可见C-PHY在高速模式时是有高、中、低三种电平状态。
这三条线彼此作差后得到的眼图波形如下图,三种电平彼此作差,作差后的眼图有3个窟窿4种电平,从上到下的4个电平依次定义为strong1,weak1,weak0,strong0。
那么是strong是怎么通过单端信号得到的呢?
Wire state(线状态)
C-PHY按照信号线不同高低电平搭配被分成6个wire state,分别为 X、-X; Y、-Y; Z、-Z,详见下表。
举例说明:当A、B、C三条线在HS模式下,分别为高、低、中这三种电平,则将此时的wire state定义为 X,见下图 X部分;同理,当A、B、C分别为高、中、低时,则定义为-Z。
Strong 1、weak1的定义
CPHY每条lane分为A、B、C三根信号线,两两作差就是Va-Vb、Vb-Vc、Vc-Va,得到的差具有4种电平,从上到下分别被定义为strong1,weak1,weak0,strong0。比如上图中, X状态下,Va-Vb(红-绿)得到的电平最高,被定义为strong1;-Y状态下,Va-Vb得到的电平为弱高,被定义为weak1。以此类推就可以得到weka0和strong0了,就和下面测试时的眼图对应上去了。
协议解析
我们要传输的信息是被编码到wire state中的,上文已经介绍CPHY具有 x、-x、 y、-y、 z、-z 6种wire state,当信号处于其中一种状态时,只能往剩下的5中状态切换,不会保持不变,哪怕CPHY传输的数据流不变,信号本身也会一直变化,信息被编码到状态与状态切换之中,被称之为symbol编码,换句话说,一共只有6条路,你占了一条,接下来只能往剩下的5条路里走。
举例如下,wire state从 X到-Y变化时,根据下面的状态转移图,传输的信息(symbol)就是011;从-Y到-Z传输的信息就是010,如果想要继续保持传输010,那么wire state就要从-Z变到-X,数据和时钟信息都被编码到symbol中,即都被编码到切换的过程中了,因此Cphy也就不需要格外拉一条时钟线了。
以上就是CPHY的介绍。