【学习笔记】MIPI

发布于:2024-10-12 ⋅ 阅读:(12) ⋅ 点赞:(0)

MIPI介绍

MIPI是由ARM、Nokia、ST、IT等公司成立的一个联盟,旨在把手机内部的接口如存储接口,显示接口,射频/基带接口等标准化,减少兼容性问题并简化设计。

MIPI联盟通过不同的工作组,分别定义一系列手机内部的接口标准,如摄像头接口CSI、显示接口DSI、射频接口Dig RF等。统一接口标准可以使芯片和模组的选择更灵活便捷。

MIPI结构分为物理层、协议层和应用层。

应用层有摄像头CSI接口、显示屏DSI接口和基带和射频间Dig RF接口。

物理层分为DPHY、CPHY、MPHY,CSI-2协议支持使用D-PHY,也可用C-PHY。CSI-3只可使用M-PHY为物理层。目前车载行业主要使用DPHY,下图为DPHY与CPHY各版本接口与速率信息。

MIPI D-PHY
D-PHY接口一般是1/2/4 Lane,每个Lane走差分线对,是电流驱动型,单信号幅度一般是200mv,线对差分的幅度在400mv左右,布线要求是等长且成双成对;

MIPI C-PHY
C-PHY接口是1/2/3 Trio,每个Trio走3根线,最高是9根线,比D-PHY要少一根,是电压驱动型,由于是两两相差,信号幅度绝对值分别是0、100、200mv,信号较弱,不利于传输,但要传输的数据量大一些,

在同样是2.5G的速率下,C-PHY可以达到17.1G,而D-PHY只有10G;

C-PHY没有单独的同步信号线(时钟嵌入在数据信号中,这样做的目的是为了增加传输带宽,但是也引入了编码技术等),必须要求传输距离短,不能走差分线对。

MIPI D-PHY v1.2:

    目前主流SERDES芯片及SOC均使用MIPI D-PHY v1.2版本接口

    规格书中前部分章节大篇幅论述了D-PHY的几种内部实现结构,D-PHY采用的是非对称主从结构,即一个lane通道中同一时刻必须存在一个主,一个从。并根据以上传输方向性,定义了前向通道和反向通道,前向通道的数据速率与反向通道的的操作命令速率是不对称的。因此DPHY的非对称设计大大降低了链路的复杂性。适用于具有不对称数据量需求的应用程序,或单独设计反向通道的成本太高时。

MIPI主端与从端描述
    D-PHY提供了主从之间的同步连接。一个实际的PHY配置由一对时钟差分信号(CLK_N/CLK_P)和一个或多个数据差分信号(DATA_N/DATA_P)组成。时钟信号是单向的,主发从收。数据信号可以是单向的,也可以是双向的,取决于所选的选项。对于半双工工作,反向带宽为正向带宽的1/4。数据的通信方向可以通过命令控制。

MIPI D-PHY v1.2 架构图
D-PHY支持高速和低功耗模式。低功耗模式可用于低速异步数据通信,包含控制模式(Control Mode)、低功耗数据传输模式(LPDT)和极低功耗模式(ULPS),高速模式用于传输有效数据。结合DPHY可支持半双工的特性,就衍生出了具有不同功能的lane属性,而集成不同lane的集合,就构成了不同的D-PHY结构,lane的差异主要体现在如下几点:

单端通信与双向通信区别
1.纯单端通信或双向通信,纯单端是不需要LP-CD模块的。

2.双端通信又可分为仅支持低功耗双端和高速低功耗模式均可双端的情况。(低功耗双端模式可以分为是否进行低功耗数据传输LPDT)

    针对具有以上不同lane的D-PHY结构,就需要具有不同功能的CIL(Control and Interface Logic)模块来协同处理数据传输,其CIL后缀首字母缩写含义可参看以下表格。


DATA LANE

下面这张图说明了高速信号和低功耗信号的MIPI差分信号电压摆幅情况。


    由于MIPI是差分信号,因此通过高低电平的组合,每对差分线应该有4种状态,但由于高速模式下差分电压仅为200mV,因此高速模式下只差分电压仅有P正N负与P负N正两种状态,因此lane状态则共有如下表所示的六种状态。一对lane中的正信号线为Dp,负信号线为Dn。


    MIPI通信的所有操作模式、控制指令及数据传输都是基于以上六种lane的状态,分别有三种操作模式:控制模式、高速模式及Escape模式。控制指令包括高速数据传输 (LP-11, LP-01, LP-00)、Escape模式请求 (LP-11, 415 LP-10, LP-00, LP-01, LP-00) 、和传输方向切换请求 (LP-11, LP-10, LP-00, LP-10, LP-00)等。控制模式及Escape模式工作于LP电平,高速模式工作于HS电平。

    高速模式及Escape模式可以在控制模式下通过不同LP指令搭配开始或结束。由于从低速模式到高速模式存在数据传输量的突然增大,因此在进入高速数据传输前数据通道的前后存在一些状态用于进行时钟线与数据线的同步。

    High-Speed Data Transmission:

    举个例子:数据传输启动与终止时序:


当需要发送数据时,DATA线通过一段SOT指令离开停止状态并开始数据传输。

在一段数据传输结束后,DATA线通过一段EOT指令离开高速传输模式并进入停止状态。


    上图表示了一段数据需要传输时及传输前后的SOT/EOT时序。当存在多对DATA LANE时,每对LANE都可以独立的通过请求来发送数据,但大多数应用,LANE都是同步启动,但因为每条LANE传输的字节数不同,因此结束的时间不同。

    Bi-directional Data Lane Turnaround:

    对于双端数据传输模式,传输方向转换指令Turnaround所需的命令时序在手册中也有说明。

    Escape mode:

    Escape Mode指令是用来给MIPI提供一些额外功能处理能力的LP指令,前向通道下默认支持该功能,反向通道可选,可以通过与高速数据传输类似的指令进入Escape mode(LP-11, LP-10, LP-00, LP-01, LP-00)。进入该模式后Tx端可通过一个8位输入命令来指示所请求的操作。下表列出了当前所有可用的Escape模式命令和操作。


    该模式下为异步通信,使用一种名为spaced-one-hot的编码,该模式下DATA线上的数据传输不依赖CLK,且无法在Esape mode操作期间退出。

    spaced-one-hot编码的每个符号由一个one hot和一个spaced位组成,one hot包括Mark0(等于LP01)和Mark1(等于LP10),spaced相当于LP00,以Trigger-Reset Command为例一段完整的Escape Mode操作如下图所示:


    从图中可以看出,退出Escape Mode模式必须通过Mark1并停留在LP11状态。

    在Escape Mode指令中可以看到,LPDT数据传输和ULPS也是通过该模式进入。在LPDT模式下的数据传输仍然要按照spaced-one-hot编码的命令来传输,数据传输过程中可以通过保持一段SPACE状态(LP00)来进行暂停,同样可以使用MARK1(LP10)接LP11停止状态来推出到控制模式。LPDT模式下的数据传输频率<20MHz,主要用于低功耗数据传输。

CLK LANE

    MIPI的CLK LANE为双边沿采样的单端信号,所以无论MIPI_DATA传输方向是正向还是反向,CLK时钟信号都为主端发送。且由于是单端信号,因此CLK LANE不支持Esape mode,仅能通过特殊的LP-Rqst指令进入ULPS状态。

    只有当CLK LANE以及工作在HS模式时,才可以进行高速数据传输,同理,只有在所有的DATA LANE上都没有数据传输后,CLK LANE才可以推出HS模式,下面为CLK LANE开启和停止数据传输的时序图和具体指令:

结合上述时序图中CLK LANE的状态依次为:

1、CLK LANE处于交错高速信号HS-0和HS-1的状态,DATA LANE开始执行EOT程序;

2、最后一个DATA LANE完成EOT程序并进入LP11状态,CLK在此时仍然保持HS模式并允许一段时间Tclk-post;

3、CLK LANE最后以HS-0状态结束并维持一段时间Tclk-trail;

4、CLK LANE切换HS-TX驱动模块至LP-TX驱动模块,并驱动LP-11状态,保持Ths-exit时长。至此即进入了LP模式;

5、CLK LANE在保持LP11一段时间后驱动HS-Req状态(LP01)并保持一段时间Tlpx;

6、驱动Bridge state状态(LP-01),并维持一段时间Tclk-prepare;

7、CLK LANE切换LP-TX驱动模块至HS-TX驱动模块,并保持HS0一段时间clk-zero;

8、CLK LANE保持HS模式一段时间Tclk-pre后。Data Lane也开始启动SOT切换程序,随后开始HS数据传输。

以上所有时序中的时间要求,均可在MIPI D-PHY标准或SERDES手册中查到。

Initialization

    MIPI-PHY初始化时需分为主端初始化和从端初始化,从端将会在主端PHY保持一个Stop State(LP11)状态超过Tinit时间后进行初始化。

    主端初始化则需要一个系统或协议的指令(System or Protocol input signal)指令进行。在主端初始化之前,需要保证线上不会出现超过Tinit时长的LP11状态,以防止从端比主端先进行初始化。在初始化之前,从端应忽略线束上的所有状态,且当MIPI使用多路LANE时,所有LANE的初始化应同时进行。

    Tinit的时间长度取决于协议层规定,因此不在PHY标准讨论范围之内,且Tinit Master与Tinit Slave可以为两个不同的值,但D-PHY规定了Tinit的最小值不可短于100us。

Calibration

    Calibration为MIPI D-PHY v1.2新增功能,用于HS-Deskew校准,该校准允许MIPI速率从1.5Gbps/Lane提升到了2.5Gbps/Lane。HS-Deskew主要分为初始化校准Initial Deskew和周期性校准Periodic Deskew。

    对于任何支持1.5Gbps速率的设备,当传输速率高于1.5Gbps或速率改变为1.5Gbps以上的任何速率时,在开始HS传输之前接收端都需要通过一段发送端发送的DESKEW完成校准。Deskew主要用于消除时钟和数据Lane之间可能存在的相位差。如果传输速率低于或等于1.5Gbps时,初始化校准是可选的。周期性校准与传输速率无关,任何速率都可以选择开或不开。此外,还可以进行周期性的deskew,当然这也是可选的。当仅仅是传输状态发送变化时,例如从任何低速率模式变为HS模式,HS-Deskew都是可选的,只要HS传输的速率在之前已经进行过校准。

    从下图可以看出校准时序与普通SOT时序的不同,主要区别在SOT程序完成HS驱动并保持HS-0一段时间THS-ZERO后,校准模式会先保持一段HS Skew-Calibration SYNC(1111111……)总长为16UI,然后开始进行DeSkew校准TSKEWCAL(01010101010101),校准周期可选,初始化校准为32kUI-8*32kUI,周期性校准为1kUI-8kUI。而普通模式则是进行一段THS-SYNC(00011101)后就开始数据传输。

Normal Mode vs Skew Calibration
    上述为DESKEW校准的启动时序,接收端若检测到该启动时序则会启动校准,校准的周期由发送端控制,校准周期结束后,发射端会保持THS-TRAIL一段时间并退出HS模式。DESKEW的SOT时序与EOT时序详细描述不再赘述。另外,手册中对于DeSkew校准TSKEWCAL的最长时间也有要求,初始化校准应小于100us,周期性校准应小于10us,这也是手册中初始化校准和周期性校准DESKEW周期最长分别为8*32kUI和8kUI的原因。

 https://www.bilibili.com/read/cv22362354/ 出处:bilibili