概述:
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