MIPI DSI 资料全收集
MIPI DSI
文章目录
概述
MIPI
MIPI (Mobile Industry Processor Interface)即移动产业处理器接口,2003年由ARM、Nokia、ST和TI等公式成立的一个联盟,所以大家在看MIPI相关文档的时候长看到MIPI Aliance。MIPI 官方网址。当前MIPI联盟已经有很多成员, 比如ARM、ST、高通、TI、苹果、海思等,基本上囊括了主流的移动处理器生产厂家。
MIPI协议实际上是一系列接口的协议,基本囊括:液晶、摄像头,触摸屏,传感器,FLASH ,RF, Audio等手机里面的所有设备。



MIPI是一个比较新的标准,其规范也在不断修改和改进,目前比较成熟的接口应用有CSI(摄像头接口)和DSI(显示接口),分别针对Camera或Display应用,都有复杂的协议结构。MIPI CSI-2 和 MIPI CSI-3 是MIPI 摄像机接口最初标准的升级版本,这两个版本都在持续演进中。两个版本都具有高级的架构设计,为开发人员,制造商和最终的消费者提供更多选择和更大的价值,同时保持标准接口的优势。下图说明了CSI和DSI设备的典型应用场景。

MIPI DSI
液晶显示屏中所用的MIPI接口,其专业名称叫DSI,全称Display Serial Interface。顾名思义,该接口是指用于显示模块的一个串行接口,基于MIPI协议而产生,兼容DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set,就是移植液晶下发参数所用的那些命令了)。相对于一般的RGB接口,DSI有成本低,高速率的优势。


•DBI(Display Bus Interface, Display Pixel Interface), Parallel interfaces to display modules having display controllers and frame buffers。MIPI总线控制器使用显示命令报文来向显示器发送像素数据流。显示器应该有一个全帧长的帧缓冲器来存储所有的像素数据。一旦数据被放在显示器的帧缓冲器中,定时控制器就从帧缓冲器中取出数据,并自动把它们显示在屏幕上。MIPI总线控制器不需要定期刷新显示器。
DPI(Display Bus Interface, Display Pixel Interface), Parallel interfaces to display modules without on-panel display controller or frame buffer。类似RGB屏幕,需要不间断的提供刷新数据。

上面的是DPI,下面的是DBI
分层
MIPI从下往上依次为物理层、通道管理层、协议层、应用层,四层各司其职,共同实现DSI协议。
物理层:硬件电路控制,将所有的数据转换为电平信号,以输出或者输入。这一层之间的连接就是DSI的接口连接了
通道管理层:对数据进行管理,将数据分给给Data通道或者从Data通道接收到后进行重组,以便交给下一层
协议层:对数据进行封包、检验等
应用层:初始化参数或者图像数据就在这一层发送或者接收。
下图是MIPI分层的直观说明:

下图是MIPI -DSI的分层:

其中DCS层是指(Display Command Set)不同的屏,在应用层的命令;
DSI 层,规定了数据传输格式,数据的长帧和短帧格式,视频数据如何传输;
D-PHY层,物理接口。Lane的电平,时钟,高速传输和低速传输模式;
物理层
MIPI的物理层有 D-PHY, C-PHY 和 M-PHY几种格式。
1、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。
2、C-PHY MIPI简介
C-PHY类似于D-PHY,其逻辑层主要也是面向摄像头(CSI)、显示屏(DSI)等用途,C-PHY中的C指的是Channel-limited。C-PHY总共有3条lane,每条lane使用3根信号线,3条信号线彼此差分。C-PHY没有单独的clock,时钟信号是包含在通讯的时序中。
3、M-PHY MIPI简介
M-PHY支持所有芯片到芯片的应用,以及高性能的摄像头和内存应用。M-PHY中支持的芯片到芯片应用协议包括DigRF、LLI,以及用于高性能相机应用的CSI-3等。M-PHY使用嵌入式时钟。当前很少用到,比较超前。

本篇介绍的是 D-PHY,在 MIPI 的官网上可以看到 D-PHY 其实也分了很多的版本,也就是说,现在 MIPI 联盟中,发展了几个 PHY 的标准,而这几个 PHY 的标准又各自有不同的版本。具体如下:

目前MIPI DSI中常见的还是D-PHY,下面的介绍的都是D-PHY

D-PHY的配置包括一个单向的clock lane和一个或多个data lanes(最多4个data lanes)。data lanes 有两种类型:
(1)双向口:能双向传输
(2)单向口:只能单向传输
所有的data lanes都支持高速传输和正向时的低速传输 。
双向的data lanes 必须包含下面的一个或两个反相通信功能:
(1)High-Speed Reverse Data Communication :高速反相数据传输
(2)Low-Power Reverse Escape Mode (including or excluding LPDT):反向低功耗 Escape Mode模式(包含或只有低功耗数据传输)
下图是一个通用的Lane Module 内部结构图

其主要由:
- 一个高速收发模块(HS-TX,HS-RX),
- 一个单端低功耗收发模块(LP-TX,LP-RX)
- 一个LP-CD(Contention Detection)低速通信冲突检测,因为是半双工通信,需要检查冲突;
- 控制和接口逻辑模块(Lane Control &Interface Logic)组成。
D-PHY在使用的过程中,类似于其他总线也有Master和Slave之分,如在用Soc驱动LCD时使用D-PHY MIPI信号,这时Soc就是Master,LCD就是Slave。
- Clock Lane是单向的,由Master端发向Slave端。
- Data Lane 可以是单向或双向
对于半双工操作,反向带宽是正向带宽的四分之一。
D-PHY Lane 的模式分为了 2 种,分别是High-Speed 和 Low-Power ,在传输的时候,信号的幅值也不一样。
High-Speed 用于高速的数据传输,在这种模式下,吞吐率可以达到 2500 Mbps,也就是 2.5Gbps/per Lane。
Low-Power 模式用于一些控制信息,比如,传一些指令之类的;在这种模式下的最大速率是 10Mbps;

如上图,HS 代表了 High-Speed,HS模式下,为差分信号传输,信号电平在100mV300mV(200mV的压摆);LP模式下,Lane上的2根线是独立的信号,为单端信号传输,信号电平在01.2V(1.2V压摆)。
蓝色波形:低速模式下的信号电平,1.2v左右
绿色虚线:低速模式下的高低电平限制门限
红色波形:高速模式下的信号电平,200mV左右
从上图可以看出,HS差分传输的信号的最大摆幅是小于LP的低电压阈值的,所以LP模式的接收到HS信号== 0。
无论是HS模式还是LP模式,都采用 LSB fisrt,MSB last 的传输方式
互连线两端是驱动单元和接收单元。驱动单元有差分发送模块(HS_TX)和低功耗单端发送模块(LP_TX),接收单元有差分接收模块(HS_RX)、低功耗单端接收模块(LP_RX)。差分发送模块(HS_TX)以差分信号驱动互连线,高速通道上呈现两种状态:differential-0和differential-1。低功耗单端发送模块(LP_TX)独立地驱动两根互连线,通道上则有四种不同的状态:LP00、LP01、LP10和LP11。。


这个图画错了? Data Lane 有Unidirection和Bi-direction,而Clock Lane 只有 Unidirection。
Data Lane
Data Lane 的工作模式分为高速模式 和Low Power低速模式。在低速模式的情况下又分为Control Mode和Escape Mode。
通道默认为控制模式下的STOP状态(即Dp Dn都是1.2v左右的高电平)。当通道需要进入高速模式或ESCAPE模式,发送模块则需驱动线路为LP01(Control mode下的HS-Rqst)或LP10(LP-Rqst)向接收端发送请求。发送完请求序列之后便进入相应工作模式,发送LP11便可退出传送回到STOP控制模式状态。接收端需要时刻进行LP-RX接收,侦测线路电平以明确通道的工作模式。
Control Mode是一个有趣的模式,它并不进行数据的传输,而是作为状态的管理,看来更像是一个桥。我们需要切换到High-Speed或者Escape Mode则需要先从Control Mode开始,并不能直接从High-Speed切换到Esccape Mode,就算半双工的BTA动作也是如此,在每次完成High-Speed传输或者Escape Mode的行为后,总是通过LP11返回Control Mode。
High-Speed 模式
物理层釆用1对源同步的差分时钟和差分数据线来进行数据传输。时钟为高速时钟通道,以DDR的方式进行高速数据传输(双边沿采样,每个CLK的上升沿和下降沿都可进行数据传输,即每个时钟可以传输2位数据),由主机发送至从机。
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;相对于发送开始,停止发送的流程比较简单,如下

整个高速收发的开始和结束的时序图如下所示

状态机:

Escape 模式
Escape Mode 是 Low-Power 的一种,针对 Escape Mode 又细分了好几种:
1)Low-Power Data Transmission ,简称为 LPDT,意味在 LP 模式下进行数据传输;
2)Ultra-Low Power State:简称为 ULPS,超低功耗状态;
3)Trigger 触发;
进入Escape 模式
要进入 Escape 模式的话,需要通过一个叫 Esccape mode Entry 的流程
这个流程为:LP-11、LP-10、LP-00、LP-01、LP-00;
。
进入Escape模式后还要发送一个Entry Command。来确定是进入LPDT,ULPS还是发送一个Trigger
也就是说,真正进入一个 Escape 的下面的一个子模式,或者 Trigger 的话,需要这样的流程:
LP-11、LP-10、LP-00、LP-01、LP-00、[Entry Command]
这个 Entry Command 编码为:

那些Unknown的和Undefined的,为了将来预留的;
举个例子,以Trigger Reset为例,他的时序为:

LPDT Low-Power Data Transmission
如果在进入 Escape mode 的时候 Entry Command 指定为了 Low-Power Data Transmission,那么会进入这个 LPDT 模式,这个模式下呢,数据可以在低速情况下进行传输;在这种模式就是初始化屏幕时,设置和读取液晶屏参数的地方,修改屏驱动的时候需要注意

第一个就是 LPDT 命令,命令序列为 11100001,注意低 bit 先发送,所以对应
的十六进制就是 0X87(0X10000111)。可以看到,在传输 First Data Byte 后 Second Data Byte 的时候,中间停止了一会;
UTPS Ultra-Low Power State
如果在进入 Escape mode 的时候 Entry Command 指定为了 Ultra-Low Power State(ULPS)的话,这个 Lane 将进入 ULPS;

ULPS 命令是让 Lane 进入超低功耗模式

超低功耗的时候,Lane是LP-00,就是两条线都是低电平。
** Trigger**
Trigger是一种用于发送标志(flag)到接收侧的协议层的机制,由发送侧的协议层发起请求。下图是一个完整的Trigger-Reset命令的Escpe Mode action:

Lane通过Escape Mode Entry过程进入到Escape Mode。如果Entry Command是Reset-Trigger命令,则接收侧会通过PPI向协议层触发一个Trigger。在Trigger命令之后但信号线进入Stop状态之前,任何接收到的位(bit)都要被忽略。
Romte Tigger和Reset Trigger是一个东西
双向传输 Data Lane Turnaround
双向传输被称作Turnaround,这个操作是在Control Mode下完成的。Data Lane的控制权可以通过Bus Turn Around(BTA)功能来移交,即达到D-PHY半双工。当Master需要Slave发送数据的时候,首先Master处于Control Mode(LP11)下,向Slave发送BTA序列,则Slave接收之后则开始驱动总线并发送相应数据。下图是BTA顺序;

也就是 LP-11、LP-10、LP-00、LP-10、LP-00、Wait ACK(接收 LP-00)、接收 LP-10、接收 LP-11;

BTA 时序。


状态机:

我的理解:
TX端先发送LP-11,LP-10,LP-00,LP-10,(LP-00,变成RX) 接收LP-10,LP-11,切换成RX端
RX端接收到LP-11,LP-10,LP-00,LP-10,(变成TX,输出LP-00),输出LP-10,LP-11 切换成TX端
Data Lane 总结

各种工作状态和流转如上图所示。
Clock Lane
CLK lane:有三种模式Low Power Mode(LPM)、 Ultra Low Power Mode(ULPM) 、 High Speed Clock Mode(HSCM).
Clock Lane和Data Lane有点不一样,Clock Lane 没有Escape模式,但是Clock Lane有ULPS模式。
Clock Lane High-Speed 和 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
D-PHY的LP模式是可以选择性地支持单向或双向的。协议禁止一个单向PHY和一个双向PHY对接。而如果两个PHY都是双向时,为了防止两端的PHY同时驱动总线而发生冲突,协议要求PHY必须支持contention detection模块,简称CD模块。
如下图,CD模块将其检测阈值上限VIHCD置于LP的检测阈值下限VL之下,阈值上限则置于LP TX的VOL之上,不过后者其实不是很重要,巧妙之处在于前者。

当两端的PHY同时驱动总线,且出现一端驱高,一端驱低时,在总线上的电平必将介于VOH,MAX和VOL,MIN之间,而这之间的所有可能都落在被下图中我用红圈圈起来的两个区域。
当电平处于LP-CD Input High区域时,驱低侧的PHY会由于检测到己端电平高于VIHCD而意识到出现总线竞争;
当电平处于LP-RX Input Low区域时,驱高侧的PHY会由于检测到己端电平低于VIL而意识到出现总线竞争;
如果电平处于混叠区域,那么显然两端都会意识到总线出现竞争。
物理层总结

上图包含了Data Lane和状态切换流程图。
- D-PHY中有两种Lane ,Data Lane和Clock Lane。高速和低速模式下的电平和速度。
- 高速传输模式: 最多2.5Gbps 数据是差分传输的,Clock Lane 提供DDR时钟。
- 低速模式下:最多10Mbps 不需要时钟,有点类似I2C。
- 支持半双工,需要通过BTA来切换TX和RX。
有一些概念需要理清楚,MIPI DSI使用的D-PHY的时候做了一些特别的规定。
Data Lane中只有Lane0 支持双向传输,而且只支持低速双向传输。其他的Data Lane只支持高速和低速的单向传输;
对于DBI接口的屏,也可以用低速通道传输显示数据的。
协议层和通道管理层
通道管理层负责把协议层的数据分发到每个通道上,发送时的通道分配关系如下图所示。需要指出的是,每个通道不一定是同时传输完成的。相反的,从机的通道管理层负责把物理层送上来的数据组合好。

协议层由DSI标准规定,下面的长包,短包,Data Type都是和显示屏相关的数据结构。
信息传送采用数据包格式,包括长数据包和短数据包。发送数据的时候,将数据按照信息类型及内容进行组包,完成ECC码的生成和 CRC码的添加。接收数据的时候,依据ECC码和CRC码就整个数据包进行检错纠错,完成对包头和数据内容的译码并合理输送到应用层中。DSI所定义的数据包有两种:短数据包(short packet)和长数据包(long packet)。如下图所示。


Data ID:由虚拟通道ID和数据类型组成
DT= Data Type
VC = Virtual Channel

数据ID(数据标识符)字段,长度为1个字节,包含了虚拟通道VC和数据类型DT字段。VC字段在DI字节里的最高的两位中体现。数据类型DT字段是DI字节里的低6位。
Word Count:2byte,数据长度,不含Checksum
Data :命令或者数据
ECC和CheckSum:检验纠错用
上述这两种包的格式,就是每个要发送的数据,最终组成的一个个数据包。其中短数据包主要用于传输命令、读写寄存器。长数据包主要用用于传输大量图象数据或部分控制命令。长数据包长度为6 ~ 65541字节,包括4byte数据包头、0~65535byte有效数据、2byte数据包尾。短数据包长度为4byte。

上图是通过D-PHY高速模式发送包的过程。其中有短包也有长包。显示数据和V-H同步一般是通过高速模式发送的数据包。
DSI还支持LPDT,在Escape Mode 下的低速数据传输,显示屏的初始化一般都在LPDT模式发送命令。

主机发送命令中DT物理意义,SOC端,Data Type包含在包数据结构的Data ID字节中。

从机返回的DT物理意义,显示屏端,Data Type包含在包数据结构的Data ID字节中。
控制和初始命令传输
下面是一个显示屏初始化的数据流传输举例,在Escape Mode的LPDT模式下传输设置命令和读取屏的参数:
EntryES => LPDT(0x87) => SP(0x03:设置返回包长度))=> SP(0x06:DCS读命令) => ExitES => EntryTA => EntryES => LPDT(0x87) => LgP(0x1C:DCS长读命令,应答) => ExitES => EntryTA => EntryES => LPDT(0x87) => SP(0x23:普通写命令)=> ExitES => EntryES => LPDT(0x87) => LgP(0x29:普通长写命命) => ExitES。
在液晶屏设置期间基本就是对DCS数据的读写,常用的命令类型0x39、0x15 、0x05,0x06等
0x39 DCS Long Write
0x15 DCS Write 1 Parameter‘
0x05 DSC Write 0 Parameter,
0x06 DCS read
显示屏返回的数据一般分为 4 个类型:
- Tearing Effect (TE):trigger message (BAh)
这个是D-PHY中第一的Escape的HS Test Mode Tigger,在DSI中被定义成为 Tearing Effet。 - Acknowledge:trigger message (84h)
这个是在D-PHY中定义的Escape 的Trigger Unkown 4,在DSI中被定义成了 ACK。目的是为了表示SOC对显示屏的设置成功。 - Acknowledge with Error Report:short packet (Data Type is 02h)
- Response to Read Request:short packet or long packet
Generic Read Response、DCS Read Response(1byte, 2byte, multi byte)
显示屏读取数据返回值解析示例如下:
- Acknowledge and Error report (if error occurs)
Byte 0 is 0x87 (escape mode low power data transmission header)
Byte 1 is 0x02 (Data type, 8.10 of “MIPI Alliance Specification for DSI”)
Byte 3,2 are error report bits[15:0] (8.9.5 of “MIPI Alliance Specification for DSI”)
Byte 4 is the ECC, calculated from byte 1,2,3 - Generic Short READ response
Byte 0 is 0x87 (escape mode low power data transmission header)
Byte 1 is 0x11 or 0x12 (8.10 of “MIPI Alliance Specification for DSI”)
Byte 2,3 are the read data. If only 1 byte is returned, byte 3 will be 0x00
Byte 4 is the ECC, calculated from byte 1,2,3 - Long READ packet response
Byte 0 is 0x87 (escape mode low power data transmission header)
Byte 1 is 0x1A (8.10 of “MIPI Alliance Specification for DSI”)
Byte 3,2 are the word count N (N=0 to 65535)
Byte 4 is the ECC, calculated from byte 1,2,3
Byte 5 to byte 5+N-1 are the N-byte read data
Byte 5+N+1, byte 5+N are the checksum, calculated on byte 5 to byte 5+N-1. If
checksum is not calculated by peripheral, this field is 0x0000.
显示屏幕 一般都装备有 “TE”信号的接口,TE信号是一个输出接口,一般应用不连接到MCU 也可以提供正常显示。
TE(Tearing Effect Signal) 是从TFT控制器到MCU的反馈信号。功能与过去的单色LCD模块的 FLM (First Line Marker)信号类似。
TE信号从TFT控制器发出, 告诉MCU,现在“开始”从第一行开始读RAM并显示了。目标是避免TFT控制器读取RAM数据时, MCU却在往同一位置写数据所造成的冲突,此冲突往往造成显示花屏的情况。
情况1
- 高速MCU
- 画面帧速 约为 1/60秒
- MCU 更新整个帧显示内容的速度 比显示控制器扫描(读取)一帧快
- MCU 看到 TE信号时, 便开始更新(写入)显示内容(参考上图红线),
- 相关更新是不会与显示控制器扫描(读取)RAM(参考上图黑线)产生冲突的
- 那么画面上是不会因RAM写读冲突而产生显示花屏的情况
- 注意,相关更新(写入)动作是在显示控制器扫描(读取)刚刚完成时开始
情况2- 较慢速的MCU
- 画面帧速 约为 1/60秒
- MCU 更新整个帧显示内容的速度 比显示控制器扫描(读取)一帧慢
- MCU 看到 TE信号时,便开始更新显示内容(参考上图蓝线)
- 只要MCU的更新速度不超过两帧的时间,
- 是不会与显示控制器扫描(读取)RAM(参考上图黑线)产生冲突的
- 那么画面上是不会因RAM写读冲突而产生显示花屏的情况
- 注意,相关更新(写入)动作是在显示控制器扫描(读取)刚刚开始后开始.
显示数据传输
DSI支持两种屏 command mode(DBI)和video mode(DPI)。 Video mode无论当前显示是否有数据更新,DSI host端一直送数据给panel显示。Command mode只有当数据画面有变化时,DSI host端才送数据给panel显示。

上图可以看出,video mode没有framebuffer,需要CPU一直刷新数据。而command mode中,panel driver IC有Ram来存显示的数据做自我刷新。举例子说明:command mode的屏幕一般就是一些单片机或者低端产品上会用的液晶,它们在发送图像和命令时需要先制定写入地址。而我们日常所使用到的mipi液晶屏基本都是video mode的屏幕,刷新时是整个屏幕的进行刷新,不需要我们去先指定地址。由于command mode不需要CPU一直刷新数据,看起来要比video mode来的省电,但是Panel的自刷新需要费电。另外,command mode 支持发送数据以及读取状态信息的功能,所以它相比video mode是个双向传输接口。 video mode类似于RGB接口的传输方式,接口上一直有数据在传输。这里提下显示需要同步刷新机制, command mode通过TE pin来同步,video mode通过将v-sync及h-sync信号包含在数据包里发送给panel来做同步。和RGB不同的是RGB专门有v-sync以及h-sync 管脚来同步。
上面讲到,DSI支持两种类型的屏幕,其中Video(DPI)类型的屏幕是我们平常使用的更多的所谓“MIPI屏”。视频输出传输中的数据格式有这些,也是通过长包和短包传输的。

BLLP Blanking or Low Power Interval
BPP Bit Per Pixel
HBP Horizontal Back Porch
HFP Horizontal Front Porch
HSA Horizontal Sync Active
HSE Horizontal Sync End
HSS Horizontal Sync Start
VSA Vertical Sync Active
VSE Vertical Sync End
VSS Vertical Sync Start

DSI液晶屏显示数据的三种传输模式
Non-Burst Mode with Sync Pulses
Non-Burst Mode with Sync Events
Burst Mode (比较常见)
1.Non-burst Mode Sync pulses: 在这种模式下,DSI基于各种不同的同步数据包来做数据同步。这种数据包括:重构,时间校准等。更具体的请参考DSI协议标准。

2.Non-burst Mode Sync event: 这种模式和第一种模式很像,但是这种模式不会发重构和时间校准的数据包,它们只发送一种叫做”Sync event”的包。

3.Burst mode: 在每一行数据传输 时序是一样的情况下DSI会把连接的速度提升到Panel支持的最大速度。在这种模式下发送RGB数据包的时间被压缩,以留出更多的时间用来传送其他的数据。这种方式可以说用的最多,我们也找到了一张示意图,如下所示,我们可以看到,在Active Video Area的时序中,每一行的数据传输,HSS、 HBP(即我们液晶时序当中的Horizontal sync active 、Horizontal Back Porch)之后就是实际图像,rgb的传输,rgb数据以最大速度快速发送完成后,然后就进入BLLP(也就是低速模式,这样可以节省功耗),然后才进入HFP(Horizontal Front Porch)。这一行所用的总时间与RGB接口用的时间是一样的。


上图所展现的是一整帧的图像的时序,其中VSS BLLP HSS等分别代表着不同的事务,每个事务是由具体的多个数据包(也就是前面所说的长数据包、短数据包)组成的,而每一个数据包的传送要依赖高速模式、低功耗模式(低速模式)按照协议进行严格的切换,从而将图像逐帧发送给液晶。

应用层
根据应用模块的需要,在发送端对发送的命令和数据进行初步编码转化为MIPI-DSI所规定的格式,而在接收端则将接收的数据还原为应用模块所支持的数据格式及时序要求。
我的理解就是根据具体的屏,初始化参数(DCS)和设置显示参数。
DSI 信号测量和逻辑分析
DSI的Lane信号可以通过示波器测量。另外,低速模式下的数据可以通过逻辑分析仪器抓取。
从上往下各图的时间轴是依次缩小的,通道1黄色波形为P,通道2蓝色波形为N,从中可以明显地区分出帧、行以及数据的间隔。

多个帧信号

图像帧率33ms

图像行信号

从LP进入HS的过程LP11→LP01→LP00→HS0→SoT(00011101) → HS

从HS退出到LP的过程

我们在移植液晶屏的时候,一般都要移植液晶IC的参数。大部分液晶屏都需要我们每次开机或者唤醒的时候去重新下发液晶参数。这组参数就需要在Data 0这个通道上,在LP模式下从主控下发给液晶IC。这部分我们用了MIPI协议逻辑分析仪抓取。这边对他做一个具体的分析。
下图所示是我移植的一块液晶上电初始化后的时序总图,待我们一步步把它展开,来仔细分析

我们先把初始化下发参数部分展开,可以看到如下图所示(实际波形也放到下面,后面列出的实际波形,只是为了做个说明,都不一定与逻辑分析仪的数据一一对应),这是好多条的参数下发时序,每一竖都是一串参数下发的时序。


我们选择上图中的其中一条竖线,再来展开看看。如下图所示(实际波形也附在下面)


看到协议分析出来的各部分数据结构了没有。有没有一种似曾相似的感觉。对了,这就是MIPI的数据包协议,我们来对比看看:

我们再进一步展开看看各种模式之间是怎么互相切换的。
进入escape mode:LP11->LP10->LP00->LP01->LP00,
进入低功耗数据传输:发送LPDT命令(即0x87,不同的值可以使得设备进入不同的Escape模式,比如LPDT/ULPS/RAR等,
退出escape mode:LP00->LP10->LP11(实际波形也附上)


进入、退出BTA模式(比如读取液晶ID时就是用这个模式)

我们先把之前讲过的高速模式状态 首先看下整个时序的总览。

参考资料
MIPI DPHY
点亮一个mipi屏的流程
MIPI 时序
理解DSI
MIPI Contention Detection
更多推荐





所有评论(0)