MIPI DSI 协议简述备忘

MIPI DSI(Display Serial Interface)协议简述

简述

MIPI 主要应用( DSI 应用于屏幕,CSI 用于摄像头 ):

  • 摄像头,应用层有 CCS,协议层主要有 CSI-2、CSI-3,物理层有 A-PHY、C-PHY、D-PHY和 M-PHY。

  • 屏幕,应用层有 DCS,协议层主要有 DSI,物理层有 A-PHY、C-PHY、D-PHY。

  • D-PHY:当前摄像头和屏幕用的最多的接口。D-PHY 接口为 1 - 4lane(lane 可以理解为通道,也就是 1/2/3/4 通道,每个通道 2 条差分线),外加一对时钟线,数据线和时钟线都是差分线,为电流驱动型,不同版本的 D-PHY 速度不同。D-PHY 最多 10 根线,有专门的时钟线来进行同步。

  • C-PHY:随着屏幕和摄像头的分辨率以及帧率越来越高,D-PHY 的带宽越来越不够用。C-PHY 应运而生,C-PHY 接口是 1/2/3 Trio,每个 Trio 有 3 根线,最高 9 根线,没有专用的时钟线。C-PHY 目前手机芯片可能使用到。

  • A-PHY:主要为汽车自动驾驶而生,由于C-PHY 和 D-PHY 的距离太短。A-PHY 于 2020 年 9 月发布,用于长距离、超高速的汽车应用中。

  • M-PHY:目前主要用在 USF 存储中。

正题开始,MIPI DSI协议简单的备忘笔记:

MIPI DSI接口分为数据线和时钟线,均为差分信号。数据线可选 1 - 4 对,时钟线只有 1 对,常用的 MIPI 接口有 2 Lane 和 4 Lane 。( Lane 数量越多所支持的分辨率和帧率越高,带宽越大;反之亦然。)

1. D-PHY

1.1. D-PHY 电平

Lane 分为 HS 和 LP 两种模式,其中 HS 采用低压差分信号,传输速度高,但是功耗大,信号电压幅度 100mv~300mV,中心电平 200mV。LP 模式下采用采用单端驱动,功耗小,速率低(<10Mbps),信号电压幅度 0~1.2V。在 LP 模式下只使用 Lane0(也就是数据通道 0),不需要时钟信号,通信过程的时钟信号通过 Lane0 两个差分线异或得到,而且是双向通信。(注:4 对 Lanes 中只有 Data0 可以双向传输,只有 Lane0 可以 LP 模式)。

1.2. 不同模式的通道状态

HS 模式下是单向差分信号,主控发送(HS_TX),外设接收(HS_RX)。而 LP 是双向单端信号,接收和发送端都有 LP_TX 和 LP_RX。

  • HS 采用差分信号,只有两种状态:

    1. HS-0:高速模式下 Dp 信号低电平,Dn 信号高电平的时候
    2. HS-1:高速模式下 Dp 信号高电平,Dn 信号低电平的时候
  • LP 模式下有两根独立的信号线驱动,有 4 个状态:

    1. LP-00:“ 00 ”代表两个信号线的电平状态。(因此还有 LP-01、LP-10、LP-11 )

以上6中状态转换,D-PHY就可以切换不同工作状态,如下表:

在这里插入图片描述

1.3. 数据Lane的工作模式

首先,Lane 分为 HS 和 LP 模式,但根据不同工作状态 Lane 有三种工作模式:控制模式、高速模式和 Escape 模式。其中 控制模式和 Escape 属于 LP 模式,高速模式属于 HS 模式。一般情况下,数据 Lane 工作在控制模式和高速模式下。

1.3.1. 高速模式

高速模式用于传输实际的屏幕像素数据,采用突发(Bursts)传输方式。为了帮助接收端同步,需要在数据头尾添加一些序列,接收端在接收到数据以后要把头尾去掉。高速数据传输起始于STOP 状态(LP-11),也终于 STOP 状态(LP-11)。在高速模式下传输数据的时候Lane始终 工作在 HS 模式,提供 DDR 时钟,也就是双边沿时钟,在时钟频率不变的情况下,传输速率提高一倍,这样可以有效利用带宽。

当数据传输请求发出以后,数据 Lane 退出 STOP 模式进入到高速模式,顺序是:LP-11→
LP-01→LP-00。然后发出一个 SOT 序列(Start-of-Transmission),SOT 后面跟着的就是实际的负
载数据。当负载数据传输结束以后会紧跟一个 EOT 序列(End-of-Transmission)序列,数据线直接
进入到 STOP 模式。示意图如下:

在这里插入图片描述

完整的高速模式数据传输时序如图:

在这里插入图片描述

左侧蓝色部分是进入 HS 模式,要从 LP-11→LP01→LP-00,然后数据线进入到 HS 模式,也就是中间红色部分,传输实际的数据。传输完成以后重新进入到 LP-11(STOP)模式,也就是右边的蓝色部分。

1.3.2. Escape 模式

Escape 是运行在 LP 状态下的一个特殊模式,该模式下可以给屏幕发送配置信息。进入 Escape 模式的方式为:LP-11→LP-10→LP-00→LP-01→LP-00。退出 Escape 模式的方式为:LP-00→LP-10→LP-11,也就是最后会进入到 STOP 模式。时序如下:

在这里插入图片描述

在这里插入图片描述

Code便是对应的操作(8bit),有三种命令LPDT(低功耗数据传输)、ULPS(超低功耗数据传输) 和 Reset-Trigger(远程复位) ,命令如下表(注:低bit先发送,例 LPDT命令序列为11100001,对应的十六进制为0x87(0x10000111)初始化 MIPI屏幕的时候发送的初始化序列就需要用 LPDT 命令) :

在这里插入图片描述

2. video 和 command 模式( 链路层 )

MIPI DSI 的链路层有两种模式:video(视频)和 command(命令)模式,属于 HOST 端。

  • command 模式

    ommand 模式针对那些含有 buffer 的 MCU 屏幕,当画面有变化的时候,DSI Host 端将数据发给屏幕,主控只有在画面需要更改的时候发送像素数据,画面不变化的时候屏幕驱动芯片从自己内部 buffer 里面提取数据显示,command 模式下需要双向数据接口。一般此种模式的屏幕尺寸和分辨率不大。

  • video 模式

    video 模式没有 framebuffer,需要主控一直发送数据给屏幕,和 RGB 接口屏幕类似。但是 MIPI DSI 没有专用的信号线发送同步信息,比如 VSYNC、HSYNC 等,所以这些控制信号和 RGB 图像数据以报文的形式在 MIPI 数据线上传输。

3. 数据包

在 MIPI DSI 的数据传输中,不管是并行数据、信号事件还是命令,都需要按照协议打包成数据包。按照规定的协议添加头尾等信息,然后通过数据 Lane 将打包好的数据发送出去。如一次传输只发送一个数据包,那么在传输多个数据包就会花费大量的开销在 LPS 和 HS切换上,这样会严重的浪费带宽。为此,MIPI DSI 协议允许在一次传输中可以串行的发送多个数据包,这样就可以大幅的提高带宽利用率,这对于像外设初始化这种操作非常有益,比如我们在初始化屏幕的时候会发送大量的初始化命令。

数据包第一个字节是 DI(Data Identifier),用来指定当前数据包的含义,数据包 一共有两种数据包:

  • 短数据包:固定 4 个字节,包括 ECC。短包一般用于 Command 模式下发送命令和参数,但是在实际使用中,Video 模式下也用短包发送命令参数信息。其他的一些短包发送一些事件,比如 H Sync 和 V Sync 边沿。

在这里插入图片描述

  • 长数据包:通过 2 个字节的 WC(Word Count)域来指定负载长度,负载长度范围:0~216-1 个字节,也就是 0~65535 个字节。因此一个长数据包最多有 65541 个字节:1 个字节的 DI+2 个字节的 WC+1 个字节的 ECC+65535 个字节的负载+2 个字节的校验和=1+2+1+65535+2=65541。

在这里插入图片描述

LPDT 命令+具体的配置参数来完成向 MIPI 屏幕发送初始化参数的操作。但是并不是直接在 LPDT 命令后面跟着发送想要的时序参数就行了,而是要按照上面说的 MIPI DSI 格式将时序参数打包成长短数据包发送出去。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值