MIPI DSI协议介绍
reference:
- http://www.wangweilin.name/qrx_448.html
- https://blog.csdn.net/qq160816/article/details/19555957
- http://www.elecfans.com/yuanqijian/jiekou/20171113578403.html
- https://blog.csdn.net/caihaitao2000/article/details/80224976
注:CSI的部分等到调试有关的硬件再进行整理。schips,2020.11.22
MIPI标准介绍
对于现代的智能手机来说,其内部要放入太多各种不同接口的设备,给手机的设计和元器件选择带来很大的难度。下图是一个智能手机的例子,可以看到其内部存储、显示、摄像、声音等内部接口都是各不相同的。即使以摄像头接口来说,不同的摄像头模组厂商也可能会使用不同的接口形式,这给手机厂商设计手机和选择器件带来了很大的难度。
因此,为了建立良好的生态,2003年,由ARM, Nokia, ST ,TI等公司成立的一个联盟:MIPI联盟。 MIPI(移动行业处理器接口)是MIPI联盟发起的为移动应用处理器制定的开放标准。
MIPI(移动行业处理器接口)是Mobile Industry Processor Interface的缩写。
创建MIPI目的很简单,为了使手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。
统一接口标准的好处是手机厂商根据需要可以从市面上灵活选择不同的芯片和模组,更改设计和功能时更加快捷方便;同时带来了更低功耗、更高数据传输率和更小的PCB占位空间,并且专门为移动设备进行的优化,因而更适合手机和智能平板的连接。
MIPI联盟下面有不同的WorkGroup,分别定义了一系列的手机内部接口标准:比如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风/喇叭接口SLIMbus等。
已经完成和正在计划中的规范如下:
随着飞思卡尔、英特尔、三星和爱立信等重量级厂商的加入,MIPI也逐渐被国际标准化组织所认可 。
MIPI是一个比较新的标准,其规范也在不断修改和改进,目前比较成熟的接口应用有DSI(显示接口)和CSI(摄像头接口)。CSI/DSI分别是指其承载的是针对Camera或Display应用,都有复杂的协议结构。
MIPI CSI和DPI是MIPI标准的一种,因为MIPI在移动领域应用范围太广了,各种外围设备都可以用它来传输信息。
所以,MIPI联盟给不同的外设接口定义了版本名:
- CSI:for Camera
- DPI:for Display。
而且这些标准不单包括物理层的时序定义,还包括上层的传输协议/数据处理协议和应用层协议。
MIPI DSI规范
DCS (Display Command Set):DCS是一个标准化的命令集,用于命令模式的显示模组。
DSI、CSI (Display Serial Interface, Camera Serial Interface。
- DSI 定义了一个位于处理器和显示模组之间的高速串行接口。
- CSI 定义了一个位于处理器和摄像模组之间的高速串行接口。
D-PHY:提供DSI和CSI的物理层定义
DSI介绍
国际移动行业处理器(MIPI)联盟正式发布了针对移动电话的显示器串行接口规范(Display Serial Interface Specification,DSI)。
DSI基于MIPI的高速、低功率可扩展串行互联的D-PHY物理层规范。基于SLVS的物理层支持高达1Gbps的数据速率,同时产生极小的噪声。
基于核心D-PHY技术,DSI增加了功能以满足移动设备显示子系统的需要,包括低功率模式、双向通信、16、18和24位像素的本国语言支持,并具备单一接口驱动4块显示屏的能力,以及对缓冲和非缓冲面板的支持。
MIPI-DSI是一种应用于显示技术的串行接口,兼容DPI(显示像素接口,Display Pixel Interface)、DBI(显示总线接口,Display Bus Interface)和DCS(显示命令集,Display Command Set),以串行的方式发送像素信息或指令给外设,而且从外设中读取状态信息或像素信息,而且在传输的过程中享有自己独立的通信协议,包括数据包格式和纠错检错机制。
MIPI-DSI具备高速模式和低速模式两种工作模式,全部数据通道都可以用于单向的高速传输,但只有第一个数据通道才可用于低速双向传输,从属端的状态信息、像素等格式通过该数据通道返回。时钟通道专用于在高速传输数据的过程中传输同步时钟信号。此外,一个主机端可允许同时与多个从属端进行通信。
DSI分层结构
DSI分四层,对应D-PHY、DSI、DCS规范、分层结构图如下:
- PHY 定义了传输媒介,输入/输出电路和和时钟和信号机制。
- Lane Management层:发送和收集数据流到每条lane。
- Low Level Protocol层:定义了如何组帧和解析以及错误检测等。
- Application层:描述高层编码和解析数据流。
物理层
在接收到低速发送请求时,逻辑电路将待发送的指令或数据串行化,并控制输出高摆幅低功耗电平进行低功耗传送请求,随后将指令或数据串行地加载到通道,接收端则识别传送模式完成串行数据的并行转换。当接收到高速请求后,电路发送高摆幅低功耗电平进行高速传送请求,然后将待发送数据经过串行转换之后驱动差分驱动模块以低摆幅信号在通道上传送,接收端则识别高速模式后正确地检测其同步信号将高速串行数据完成串并转换成功地接收。除此之外,总线控制权可在主机端与从属端之间交换,发送端发送放弃总线请求,接收端接收请求之后控制总线发起应答,总的过程为TA(turn around)操作。当主机端需要获取从属端接收数据的状况或者读取显示模块的参数或显示数据的时候,主机端发起TA操作,在从属端发送数据完毕之后自动发起TA操作,归还总线控制权。
按照D-PHY协议,在整个协议的物理层中,在主机端和从属端之间采用的是同步连接,时钟通道用于传送高速时钟,一个或多个数据通道用于传送低功耗数据信号或高速数据信号。每一个通道都是利用两根互连线实现主机端和从属端的连接,并且支持高速模式和低速ESCAPE模式。在高速模式下,发送端同时驱动该通道仅有的两根互连线,输出低摆幅差分信号,例如200mV;低速模式下,发送端分别驱动互连线,各自输出单端信号,但摆幅相对较大,例如1.2V。两种模式下的互连线电平如下图所示。
互连线两端是驱动单元和接收单元。驱动单元有差分发送模块(HS_TX)和低功耗单端发送模块(LP_TX),接收单元有差分接收模块(HS_RX)、低功耗单端接收模块(LP_RX)。
差分发送模块(HS_TX)以差分信号驱动互连线,高速通道上呈现两种状态:differential-0和differential-1。低功耗单端发送模块(LP_TX)独立地驱动两根互连线,通道上则有四种不同的状态:LP00、LP01、LP10和LP11。协议针对线路电平作了具体的定义并设置了三种工作模式:高速模式、控制模式和ESCAPE模式。如下表所示。通道默认为控制模式,线路处于STOP状态。当通道需要进入高速模式或ESCAPE模式,发送模块则需驱动线路为LP01或LP10向接收端发送请求。发送完请求序列之后便进行相应工作模式,发送LP11便可退出结束传送回到STOP控制状态。接收端需要时刻进行LP-RX接收,侦测线路电平明确通道的工作模式。
物理层釆用1对源同步的差分时钟和4对差分数据线来进行数据传输。时钟为高速时钟通道,以DDR(双边沿采样)的方式进行高速数据传输,由主机发送至从机。Lane0在HS(高速)模式时为单向数据通道,速度最大为1Gbps;在LP(低功耗)模式时为双向数据通道,速度最大为10Mbps,主要用于传输命令参数以进一步降低功耗。Lane1~Lane3为高速单向数据通道,每天Lane最大提供1Gbps的带宽,由主机发送至从机。物理层可能包含低功耗发送器(LP-TX)、低功耗接收器(LP-RX)、高速发送器(HS-TX)、高速接收器(HS-RX)。物理层传输的都是差分信号,LP模式时电压摆幅为0-1.2V,此时功耗较小;HS模式时电压摆幅为100mV-300mV,此时速度较快,功耗较大。
主机与从机之间是以同步方式进行传输数据的,并且是DDR模式,即双边沿触发;这样可以在时钟频率不变的情况下将数据传输
速率提高一倍,更加有效的利用带宽资源。主机的物理层将通道管理层分发下来的数据串行地转换成差分信号送到数据线上,同时产生差分时钟,每个数据通道是并行发送的,最多为4个通道,最小为1个通道,根据带宽需要而定。从机的物理层负责从差分串行比特流中捕获0或1,即Dp比Dn高时为1,Dn比Dp高时为0,然后组成8位数据送到通道管理层。同时还可以从数据包中检出水平同步信号和垂直同步信号。高速模式时序如下图1所示,低功耗模式如下图2所示。从图中可以看出HS模式时需要依靠高速时钟,LP模式是不需要高速时钟,只需差分信号线即可,此时的时钟由差分线Dp和Dn异或得到。
通道管理层
依据设计所设定N(N最多为4)个数据通道,该层在发送端将需要发送的数据按照通道次序分成N组输送到相应的数据通道,使其经数据通道同时发送至从属端。在接收端,该层需要做的是将接收到的N组数据组合在一起恢复成原始的数据序列。
主机的通道管理层负责把协议层的数据分发到每个通道上,发送时的通道分配关系如下图所示。需要指出的是,每个通道不一定是同时传输完成的。相反的,从机的通道管理层负责把物理层送上来的数据组合好。
协议层
信息传送采用数据包格式,包括长数据包和短数据包。发送数据的时候,将数据按照信息类型及内容进行压包,完成ECC码的生成和 CRC码的添加。接收数据的时候,依据ECC码和CRC码就整个数据包进行检错纠错,完成对包头和数据内容的译码并合理输送到应用层中。
DSI协议是一个基于数据包传送的通信协议,主机端和显示模块之间传送的命令和数据基本上都以数据包格式进行。DSI所定义的数据包有两种:端数据包(short packet)和长数据包(long packet)。如下图所示。短数据包主要用于传输命令、读写寄存器。长数据包主要用用于传输大量图象数据或部分控制命令。
长数据包长度为665541字节,包括4byte数据包头、065535byte有效数据、2byte数据包尾。短数据包长度为4byte,只有数据包头。发送数据的时候,主机的协议层将根据协议进行打包,并生成ECC和CRC添加到数据包里面。相反的,从机的协议层负责把接收到的数据包根据ECC和CRC对数据包进行纠错,并且把有用数据提取出来送到应用层。
应用层
根据应用模块的需要,在发送端对发送的命令和数据进行初步编码转化为MIPI-DSI所规定的格式,而在接收端则将接收的数据还原为应用模块所支持的数据格式及时序要求。
应用层模块直接连接到显示模块,负责着与显示模块的通信。按照协议要求,接口电路支持命令模式和视频模式,命令模式则是经过接口转换之后主机端依然得以"命令+参数"格式对显示模块进行读写操作,而视频模式下,主机端可以直接将显示数据写入显示模块,无需命令操作,实时显示视频。该模块在设计的过程中应支持命令模式和视频模式。
Command和Video模式
DSI兼容的外设支持Command或Video操作模式,用哪个模式由外设的构架决定。
- Command模式是指采用发送命令和数据到具有显示缓存的控制器。主机通过命令间接的控制外设。Command模式采用双向接口。
- Video模式是指从主机传输到外设采用时实象素流。这种模式只能以高速传输。为减少复杂性和节约成本,只采用Video模式的系统可能只有一个单向数据路径。