大数跨境

技术洞见 | MIPI协议之D-PHY协议详解

技术洞见 | MIPI协议之D-PHY协议详解 牛芯半导体
2025-05-30
1
导读:本文转载自知乎社区作者湉湉家小虎子的专栏,转载文章仅供学习和研究使用。

本文转载自知乎社区作者湉湉家小虎子的专栏,转载文章仅供学习和研究使用。


介绍


MIPI:全称移动行业处理器接口(Mobile Industry Processor Interface)。
MIPI是由MIPI联盟发起的为移动应用处理器制定的开放标准。MIPI可分为物理层和逻辑层两大部分。
MIPI按照物理层(Physical Standard)划分可分为:D-PHY、C-PHY、M-PHY三种。
D-PHY MIPI简介
D-PHY的逻辑层主要是面向摄像头(CSI)、显示屏(DSI)等用途,D-PHY中的D是罗马数字500的意思,D-PHY最初版本是可以支持500Mbits/s。D-PHY采用差分信号传输方式(不全是差分,LP是单端传输),每条lane由2根信号线组成,分别是P和N,clock lane是必不可少的,data lane的数量可以根据数据传输的吞吐率来选择,至少要有一个data lane。
C-PHY MIPI简介
C-PHY类似于D-PHY,其逻辑层主要也是面向摄像头(CSI)、显示屏(DSI)等用途,C-PHY中的C指的是Channel-limited。C-PHY总共有3条lane,每条lane使用3根信号线,3条信号线彼此差分。C-PHY没有单独的clock,时钟信号是包含在通讯的时序中。
M-PHY MIPI简介
M-PHY支持所有芯片到芯片的应用,以及高性能的摄像头和内存应用。M-PHY中支持的芯片到芯片应用协议包括DigRF、LLI,以及用于高性能相机应用的CSI-3等。M-PHY使用嵌入式时钟。当前很少用到,比较超前。


D-PHY电气特性介绍


D-PHY包含如下几种电气功能:高速发送(HS-TX),高速接收(HS-RX),低功耗发送(LP-TX),低功耗接收(LP-RX),低功耗争用检测(LP-CD)。PHY不需要包含所有的电气功能,我们根据需求来配置它的电气功能。但是任何物理层的电气特性都需要满足这些电气表,下图是全能的电气特性图。
D-PHY在使用的过程中,类似于其他总线也有Master和Slave之分,如在用Soc驱动LCD时使用D-PHY MIPI信号,这时Soc就是Master,LCD就是Slave。
Clock信号是单向信号,只能Master向Slave提供,永远不变。
Data信号可以是单向信号,也可以是半双工信号,即可以反向传输。反向传输的本质其实是通过Master去读Slave里的数据。这种半双工的双向信号的数据传送,在反向传输数据的时候(Slave To Master),带宽只有正向传输(Master To Slave)的四分之一。


管脚连接方式


通常按照如下方式进行连接。


Lane信号幅度和定义


D-PHY Lane的模式分为了2种,分别是High-Speed和Low-Power,在传输的时候,信号的幅值也不一样。
High-Speed也叫Burst Mode,用于高速的数据传输,其实就是图像数据传输。在这种模式下,吞吐率可以达到2500Mbps,也就是2.5Gbps/per Lane。
Low-Power模式用于一些控制信息,比如传指令,在这种模式下的最大速率是10Mbps。
如上图,HS代表了High-Speed。HS模式下,为差分信号传输,信号电平在100mV~300mV(200mV的压摆)。LP模式下,Lane上的2根线是独立的信号,不在具有差分的意义,为单端信号传输,信号电平在0~1.2V(1.2V压摆)。
从上图可以看出,HS差分传输的信号的最大摆幅是小于LP的低电压阈值的,所以LP的接收时钟接收到的是HS信号低。
无论是HS模式还是LP模式,都采用LSB fisrt,MSB last的传输方式。


Lane线上的模式


我们通过spec可知:
Data Lane有High-Speed模式和Low-Power模式。Low-Power模式又分为了Control Mode和Escape Mode,Escape Mode又分为了Trigger、Ultra Low Power State、和Low-Power Data transmission。
Clock Lane有High-Speed模式和Low-Power模式,Low-Power模式有Ultra Low-Power。
详细见下框图。
了解了上面的许多模式,MIPI D-PHY如何进入这些模式呢?并且告诉对端我进入了这些模式了呢?
状态码(State Code)
MIPI D-PHY通过定义State Code来定义状态转化。
HS-0:表示High-Speed模式下,Dp那根线的数据是0,由于High-Speed是差分信号,那么Dn固然就是1。
HS-1:表示High-Speed模式下,Dp那根线的数据是1,由于High-Speed是差分信号,那么Dn固然就是0。
前面说过,在Low-Power模式下,Lane的2根线是独立的,不代表差分信号,那么2根线就有4种表达方式:
LP-00:表示在Low-Power模式下,Dp那根线的数据是0,Dn那根线的数据是0。
LP-01:表示在Low-Power模式下,Dp那根线的数据是0,Dn那根线的数据是1。
LP-10:表示在Low-Power模式下,Dp那根线的数据是1,Dn那根线的数据是0。
LP-11:表示在Low-Power模式下,Dp那根线的数据是1,Dn那根线的数据是1。
D-PHY Data Lane
High-Speed Data Lane传输
在正常情况下,Data Lane要么是在Low-Power Mode,要么就在High-Speed模式,如何进入High-Speed呢?
MIPI的D-PHY规定,一个Data Lane进入High-Speed的方式为发送一个Start-Of-Transmission Sequence即SOT信号,这个SOT信号的组成为:
即,顺序设置LP-11、LP-01、LP-00、HS-0、发送HS Sync 00011101序列,然后发送数据。
发起了High-Speed Transmission后,如何停止?这里MIPI定义了一个和SOT对应的东西,叫End-of-Transmission,即EOT。相对于发送开始,停止发送的流程比较简单,如下:
说白了,就是准备停止的时候,发送LP-11、
所以,整个高速收发的开始和结束的时序图如下所示。
在发送端,开始进入Stop(LP-11),然后通过拉LP-01、LP-00、HS-0、发送Sync字段(HS-00011101)然后就不断的发送差分数据;直到数据发送完毕(如果完毕了),退出High-Speed模式,再次进入Stop State;Stop State比较关键,最后都是进入Stop模式,可以理解为PHY stand by 了;
双向传输Data Lane Turnaround
前面一直说Data Lane是双向传输,但是都只看到单向传输的部分,这里就是双向传输了,它被称作Turnaround,这个操作是在Control Mode下完成的,具体流程见下。
注意,即便是Turnaround了,但是Master和Slave的角色依然不变。
也就是LP-11、LP-10、LP-00、LP-10、LP-00、Wait ACK(接收LP-00)、接收LP-10、接收LP-11。
它的时序如下:
Data Lane的Escape模式
还记得前面讲High-Speed和Low-Power的时候吗?Low-Power进而分为了Control Mode和Escape Mode,Control Mode可以理解为LP-00、LP-11等等,这里我们将展开Escape Mode。
注意:这里的Escape模式,指的是Data Lane的,不是Clock Lane。
Escape Mode是Low-Power的一种,针对Escape Mode又细分了好几种,于是我们基于之前的介绍,进行扩展:1)Low-Power Data Transmission ,简称为LPDT,意味在LP模式下进行数据传输;2)Ultra-Low Power State:简称为ULPS,超低功耗状态;3)Trigger来说的话,现在只有一个 Trigger就是Reset,用于触发Reset;它们都预留了一些内容,来适应以后的标准升级。
进入Escape模式
前面说了模式划分,如果要进入Escape模式的话,需要通过一个叫Esccape mode Entry的流程。
这个流程为:LP-11、LP-10、LP-00、LP-01、LP-00。
和之前不一样的是,Escape模式定义了一些trigger和mode,那执行一串LPxx后,到底想进入哪个模式,或者Trigger一个什么呢?
所以,这里定义了一个叫Entry Command的东西。
也就是说,真正进入一个Escape的下面的一个子模式,或者Trigger的话,需要这样的流程:
LP-11、LP-10、LP-00、LP-01、LP-00、[Entry Command]
这个Entry Command编码为:
那些Unknown的和Undefined的,为了将来预留的;
举个例子,以Trigger Reset为例,它的时序为:
Low-Power Data Transmission
如果在进入Escape mode的时候Entry Command指定为了Low-Power Data Transmission,会进入这个LPDT模式。这个模式下,数据可以在低速情况下进行传输,Lane可以暂停发送。
可以看到,在传输First Data Byte后Second Data Byte的时候,中间停止了一会。
Ultra-Low Power State
如果在进入Escape mode的时候Entry Command指定为了Ultra-Low Power State(ULPS)的话,这个Lane将进入ULPS。
D-PHY Clock Lane
Clock Lane和Data Lane有点不一样,虽然都可以抽象为单端的高速差分信号,Clock Lane没有Escape模式,但是Clock Lane有ULPS模式。
Clock Lane High-Speed And Low-Power
这里我们关注Clock Lane和Data Lane在进入和推出Low-Power的时候的时序:
可以看到,在Data Lane进入Stop State的时候,再经过Tclk-post后,Clock Lane才进入HS-0的状态,然后在HS-0持续Tclk-trail后,进入到LP-11状态。
但需要发数据的时候,Clock Lane先进入LP-11,然后进入LP-01并位处 Tlpx,进入LP-00并维持一些时间Tclk-prepare,维持HS-0,时间为Tclk-zero,Clock Lane就可以正常工作了,在经过Tclk-pre后,Data Lane方可工作。
整个过程如下所示:
Clock Lane进入Ultra-Low Power State
虽然针对Clock Lane没有定义Escape模式,但是它定义了Ultra-Low Power State,进入Clock Lane的Ultra-Low Power State的方式为:LP-11、LP-10、LP-00。
争用监测(Contention Detection)
正常情况下,连接的两端,在给定的一个时间内,只能够有一方去驱动线上的信号。当其中一端出现了故障,比如,同一时间,两端同时尝试去驱动同一个 Lane,或者两端都不驱动这条Lane,D-PHY管这种情况叫做“争用”(Contention)。
具备双向通信的LP Lane,都必须具备Contention Detection的能力,并且监测出如下冲突:
1、Modules两端同时向反向驱动一条线;
2、Modules一端驱动一条线为LP-high,同时另一端驱动这条线为HS-low;
上面的第一种情况,能够被LP-CD和LP-RX组合起来监测到;
上面的第二种情况,应该能够被LP-RX监测到;
监测的原理,可以参考Spec。

往期推荐

01

牛芯半导体成功入围2024年度深圳高成长企业TOP100

▲ 点击阅读

02

牛芯DDR5 IP取得突破性进展

▲ 点击阅读

03

牛芯半导体荣获2024年度深圳市集成电路产业双奖

▲ 点击阅读


牛芯半导体(深圳)有限公司(简称“牛芯半导体”)成立于2020年,聚焦接口IP的开发和授权,并提供相关整体解决方案,致力成为全球领先的IP供应商。


牛芯半导体在主流先进工艺布局SerDes、DDR等中高端接口IP,产品广泛应用于消费电子、网络通信、数据存储、人工智能、汽车电子、医疗电子等领域。


未来,牛芯半导体持续响应IP市场需求,适应不断演进的接口技术和日益拓展的接口互联场景,赋能数智时代下的千行百业。


【声明】内容源于网络
0
0
牛芯半导体
牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
内容 0
粉丝 0
牛芯半导体 牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
总阅读0
粉丝0
内容0