MIPI-DSI(协议)

转自https://blog.csdn.net/eZiMu/article/details/56279847

概述:

MIPI包含很多通信协议,本章只讲述mipi用于显示接口的dsi(显示串行接口)。


MIPI-DSI协议分层:

MIPI-DSI分四层:应用层,协议层,通道管理层,物理层。如下图: 
这里写图片描述


MIPI-DSI物理层(D-PHY):

1、物理层功能

将通道管理层并行数据转换成串行数据发送,将接收到的串行数据转换成并行数据,传输给通道管理层。

2、物理信号

  • 信号两种工作状态,高速模式状态(HS)和低速模式状态(LP)。
  • 物理层,就是要控制硬件信号的(时序),MIPI-DSI两种信号类型: 
    • 时钟lane,两根线一个Dp,Dn。
    • 数据lane,两根线一个Dp,Dn;数据lane根据需求有多个,最少一个lane(lane0),最多4个lane(lane0,lane1,lane2,lan3),其中只有lane0是双向的(低速模式双向,高速模式也只能是单向),其他的都只能是单向(高速模式单向)。
  • 数据lane电平:

    • 低速模式LP:0-1.2V,空闲电平(LP11)Dp,Dn是1.2V。
    • 高速模式HS:100-300mV (200mV) 
      这里写图片描述
  • 数据通道状态(数据lane状态): 
    这里写图片描述 
    可以看出数据通道,有6个状态:HS-0,HS-1,LP00,LP01,LP10,LP11. 
    其中HS-0表示高速模式下数据lane的Dp为低,Dn位高,LP01表示低速模式数据lane的Dp为低,Dn为高。 
    在系统上电开机后,LP11保持100us左右(硬件初始化),然后进入stop状态,模式是间的转换都要回到这个状态,一般控制状态也是LP11状态。模式之间的转换,将在后面描述。

  • 电平识别

    • 控制模式下电平识别: 
      Dp,Dn为0V就是逻辑0,为1.2V时,是逻辑1。LP10表示的就是Dp为1(1.2V),Dn为0(0V)

    • 低速模式下电平识别: 
      Dp,Dn采取异或运算,如Dp是1.2V,表示1,Dn是0V,表示0,同时刻Dp,Dn异或等于1;当Dp是1.2V,表示1,Dn是1.2V,表示1,同时刻Dp,Dn异或等于0;

    • 高速模式下电平识别: 
      高速模式下Dp,Dn是差分输出,在同时刻Dp比Dn高表示为1,Dp比Dn低表示为0(电压值对比)

3、物理层组织结构(架构)

  • 物理层,简单来说,由时钟通道模块和数据通道模块组成。

    • 时钟通道模块,管理时钟lane模式和时序
    • 数据通道模块,管理数据lane模式和时序。数据通道又分成以下模块(简单了解): 
      • 低功耗发送器(LP-TX,低速模式)
      • 低功耗接收器(LP-RX,低速模式)
      • 低功耗竞争检测器(LP-CD,低速模式),这个只有在lane0上有,因为双向传说,用于监测总线竞争情况。
      • 高速发送器(HS-TX,高速模式)
      • 高速接收器(HS-RX,高速模式)
  • 物理层工作模式,有控制模式,ESCAPE模式,高速模式,TA模式。

    • 控制模式,也是在低速模式下的,非传输模式,数据lane处于LP11状态,在模式之间转换基本都回到这个模式,然后再转其他模式。
    • ESCAPE模式,也是在低速模式下,低速下传输模式,LP11→LP10→LP00→LP01→LP00经过这个时序过程,就能从控制模式转入ESCAPE模式。退出ESCAPE模式:LP10→LP11
    • 高速模式,高速传输模式,进入高速模式LP11→LP01→LP00→SoT(0001_1101),其中SoT是在进入高速的同步码,即在进入高速模式后必须发生的第一个字节SoT(0x1e),退出告诉模式:EoT→LP11,EoT表示HS-0或者HS-1状态。
    • TA模式(也有写成BTA),总线控制权交换。当我们在低速模式下读的时候,主机发完命令和参数后,要将总线控制权交换给从设备,从设备返回读结果给我们。主机放弃总线控制权(由主机发起):LP-11→LP-10→LP-00→LP-10→LP-00,从设备接受总线控制权后,应答(ACK)主机:LP00→LP10→LP11(表示从设备已控制总线),当从设备完成读返回结果后,要放弃总线控制权,还给主机,此时由从设备发起:LP-11→LP-10→LP-00→LP-10→LP-00。读过程结束。

4、时序

物理层一个很重要的,是对时序的处理,如下图(先把图放在这里,搞很清楚的时候再来写): 
这里写图片描述


通道管理层:

通道管理层,主要的功能就是,将要发送的数据,按照字节为单位(MIPI-DSI是按照字节传输的,从低位到高位),分配个各个数据lane上;将接收到的数据lane上的数据,恢复成原来的字节顺序。 
看如下图,就很清除: 
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述


协议层


1、协议层功能

协议层主要功能是打包数据和解包数据,将数据通道管理层传输来的数据包,解包,传输到应用成;将应用层送来的数据,打包成数据包的形式传输到通道管理层。


2、数据包格式

数据包,分短数据包,长数据包: 
这里写图片描述

这里写图片描述

短包大小4个byte,长包大小是6~65541 bytes(看WC的值) 
数据标识:其中[5:0]表示数据类型,物理层会根据这个类型,发起模式间的转换。


3、ESCAPE模式

ESCAPE模式又可以成三种模式: 
这里写图片描述

当进入ESCAPE模式后,还需要跟着发送1byte的命令,来进入ESCAPE下的不同模式。这个1byte是物理层,根据数据类型来自动发送的,协议层不管。

ULPS超低功耗模式,在进入ESCAPE后,发送00011110后,才能进入。(超低功耗模式时钟lane,数据lane都处于0V电平状态)

Trigger模式,是些控制作用,如发送01100010,是通知显示模块复位,当然还有其他的。如果显示模组有TE信号,应用层,会将TE信号转换成trigger命令形式返回给主机。

从主机到从设备的部分数据类型如下(以下数据类型都将触发,先发送11100001,后再发送表中的指令): 
这里写图片描述

从外设返回给主机的数据类型: 
这里写图片描述

有带DCS的,DCS表示数据包中data0是命令(寄存器),后面可以有参数,或者没参数,根据要发送的命令或者寄存器情况,选择不同的命令。

不带DCS的,为一般读写命令,数据包中只有数据,没有命令和参数之分。

是DCS还是一般读写数据,都是有这6位的数据类型决定。

6位表示什么数据类型,都是MIPI-DSI协议规定的,不能改变。


4、高速模式下视频数据

高速模式下可分成三种模式:

  • Non-Burst Mode with Sync Pulses
  • Non-Burst Mode with Sync Events
  • Burst Mode

这里写图片描述

上图顶部有圆弧的代表数据包,长方形的代表时序的状态。

下面分别是三种video mode下的数据传输时序图: 
这里写图片描述

这里写图片描述

这里写图片描述

屏区域示意图 
这里写图片描述

如上图: 
HSS表示行同步的起始点,HSE表示行同步结束点,HSS,HSE是协议层中一特殊数据 
VSS表示帧同步起始点,VSE表示帧同步结束点,VSS,VSE是协议层中一特殊数据

HSA就是HSPW,BLLP就是VSPW,空数据(无效数据),只为同步 
HBP就是HBPD,HFP就是HFPD,空数据(无效数据),只为同步 
RGB就是就是有效显示区域的一行数据。

应用层

对于显示模组,协议层是将来自协议层的数据转化成DPI或者DBI供给显示模组,如果读,就是把来自显示模组DBI的数据,解析成一个数据,送到协议层。如下图: 
这里写图片描述

图中SPI模块可以不管,在这里是配置时序的。

MIPI-DSI对于软件驱动工程师来说,重点是物理层和协议层。

参考资料: 
基于MIPI_DSI协议的LCD驱动接口设计(很好的一篇论文) 
mipi 调试经验 
MIPI_DSI_Introduction 
MIPI DSI协议介绍 
MIPI及DSI协议介绍 
MIPI-DSI 三种 Video Mode 理解 
Mipi LP模式下数据通信协议详解-2014-12-20

猜你喜欢

转载自blog.csdn.net/wenjin359/article/details/83141044