DSI的物理层PHY只能是DPHY
本节讲述的DSI是V1.02.00---2010.6.28
从DSI V1.02开始DSI支持图像数据包RGB和YCbCr的传输,在此版本之前只支持RGB传输。
本节内容与CSI+CDPHY相同时 请参考:
同时本节会做一些与CSI+CDPHY的比较
DSI+DPHY是顺序的将packet数据按byte分配到所有active lane上,这个同样适用于CSI+DPHY
DPHY的SoT一般同时开始,可以不同时结束,比如各lane数据量不一样多,不需要filler
DPHY的长包对于CSI2和DSI来说区别不大,都是32bit的PH+任意字节数的PD+16bit的PF,dsi和csi2的区别在于PH中DI和ECC的bit分配不相同,就是dsi 的ECC是8bit,csi ECC是6bit,另外两bit给了VC。
DPHY的数据包在传输时,不像CPHY那样需要16bit对齐,也不需要由于CPHY不支持ECC而做了PH的redundant,一个link的多lane也没有数据量对齐的要求。
数据长包允许payloadSize=0,此时checkSum为0xFFFF,checkSum是对payload进行计算的。
下面的DT是来自DSI V1.01此时LgP还不支持YUV的格式,V1.02开始支持YUV显示
DPHY的短包都是32bit,dsi和csi2的区别在于 DI和ECC的bit分配不相同。
DSI 外设⽀持两种基本操作模式:命令模式和视频模式。无论什么模式,数据都是以长包或者短包的格式传输的。
外设可以支持command mode和video mode的其中一种,或者两者都支持。但是图像信息只能通过video mode传输。
host通过传输command/parameter/data到display controller来间接控制显示器,或者读取显示器本地的寄存器和buff。所以总结起来该模式就是host通过DSI读写display的本地寄存器和buff (frame buff)。
读display需要双向接口,写其实也需要,因为需要ACK包。所以command mode需要双向接口。
从上面的定义和2.1节的packet DT来看DCS包只是command mode的一部分,后面章节会单独讲DCS。command mode根据类型可以选择使用HS或LPDT来传输数据。
该模式主要用来从host传输实时视频流到sink端。此时需要host保证DSI和显示通路有足够的带宽来提供实时视频流,保证显示过程中不出现闪烁和伪影。
视频流只能选择HS传输。
有些video mode的operation也是可以做一些display controller的时序控制和frame buff读取,比如说:⽤于在待机或低功耗模式下维持部分屏幕或较低分辨率图像。这允许关闭接⼝以降低功耗。
一般情况下为了降低成本,video mode都是使用单向lane。
DPHY分为HS mode和LP mode。其中LP mode又分为control mode和escape mode
这两种划分是以传输速率和电压level来区分的。而DSI的video mode和command mode是以业务类型来划分的,并非是一一对应的关系。
可以确定的是:
不能确定的是:
DCS 是 DSI 和 DBI-2 标准使⽤的命令集的 MIPI 联盟标准。命令从host发送到display模块。在显⽰模块上,显⽰控制器接收并解释命令,然后采取适当的动作。命令分为四⼤类:读寄存器、写寄存器、读存储器和写存储器。
⼀个命令可以伴随多个parameter,DCS数据包可以是长包,也可以是短包。参考2.1节的Data Type。
可以看出来DCS是属于command mode的一部分。整个DCS或者command mode和CSI的USL功能类似。
video mode的数据传输有3种传输时序:
对于第二种接收端可以根据实际需要产生sync脉冲的宽度。对于第三种情况,需要接收端能够至少存储一行图像数据,用来重新生成sync timing。对于第一和第二种情况为了传输精确的sync timing信息,应该把packet中 Data ID,ECC,checksum这些额外开销占用的时间考虑进来。
host这边需要支持所有上面三种video传输模式,外设显示只需要支持一种就够了。协议要求一帧至少一次进入LP,建议每行的blanking区域进入LP。
BLLP:我们把有效video packet和sync packet之外的时间称为消隐和低功耗间隔。Blanking or Low-Power interval。需要注意的是在BLLP较短的情况下,就无法区分burst mode和non-burst mode。在BLLP期间,DSI link可以做一下的一些处理:
上图给出了所有的video传输过程中的同步包和数据包,其中RGB包实际就是video packet 包括RGB/YUV格式【因为V1.02之前的版本只支持RGB的传输】。
从上面的sync packet可以看到既有VSS又有VSE,既有HSS又有HSE,所以可以精确的恢复sync timing。如果没有VSE,HSE就只能是sync event。
HBP和HFP如果实际中为0,是可以不发送的。
对于所有的图像包,每一帧的第一行必须以VSS开头,其他行以VSE或HSS开头。sync packet的时序和位置很重要,这些会直接影响显示效果。
下面分节介绍三种不同的传输模式。
这种格式要求精确匹配DPI 像素传输速率以及同步脉冲等定时事件的宽度。因此,使⽤传输同步脉冲的开始和结束的数据包来定义同步周期。
正常情况下HSA,HBP和HFP期间都是用Blanking Packet填充。这些Blanking packet的长度都是经过计算满足timing需求的。
当然如果发送Blanking Packet的时间足够HS和LP的切换,DSI可以选择在这些blank区域进入LP,以降低功耗。
这种情况是6.1节的一个简化,end的sync packet不再发送,外设显示器只根据start来重建syncTiming,宽度可根据需求来定。这种模式下 同样要求像素传输速率和对应的DPI接口一致。
blanking区域的处理和6.1节相同。
在此模式下,可以使⽤时间压缩突发格式在更短的时间内传输像素数据块。这样可以降低总体 DSI 功耗,并为链路上任⼀⽅向的其他数据传输提供更多的时间。
外围设备上可能有⾏缓冲区或类似的存储器,以容纳高速传⼊的数据。在 HS 像素数据传输之后,总线可能停留 在 HS 模式以发送消隐数据包或进⼊低功耗模式,LP模式总线可能保持空闲,即主机处理器保持在 LP-11 状 态,也可能处于任一方向的LPDT传输。如果外设控制DSI link发送数据到host,则其传输时间应受到限制以确保外设显示的frameBuff不会发⽣下溢而导致显示异常。
Burst mode的时序图其实和6.2节一样,所不同的只是sync packet之间的间隔和传输速率不一样。另外blanking区域的处理原则和6.1和6.2一致。
允许图像长包包括RGB/YUV包payload小于一行,但是建议采用一行。也就是说一行数据可以拆分为多个数据包。【这里是和CSI不一样的地方,CSI 图像包固定为一行】
其他非图像数据包的payload长度可以是任意值,但需要是8bit整数倍。
YUV420只有 legacy格式。
对于DSI来讲,使用不同的VC可以做packet的交织,但是不会有DT之间的交织。原因在于DSI对接的是显示器,而且一个DSI-DPHY接口只能对应一个显示器,一个显示器在显示过程中,显然没有前一帧是RGB,后一帧是YUV的需求。VC多通道也只有高级显示器才会用,比如每个VC传输的数据只驱动显示器的一部分列。
CSI2 采样sensor数据,并不是直接对接sensor,有多个sensor数据汇聚的过程。
对应的CSI提到了对interlaced隔行扫描的支持,DSI协议从V1.02开始支持YUV的显示,同时也支持了interlaced显示。
V1.02版本DSI spec的8.8.19节在介绍YUV420格式时【只有leagacy YUV420】,明确提到支持NTSC 480i30和PAL 525i25的显示【对应数字标准BT601】;和1080i25,1080i30 720p60的显示【对应数字标准BT709】
如果DSI command set 或者在其他command mode可以把隔行扫描的信息传给显示外设,那么3种video mode timing都可以来传interlaced的视频。
水平和垂直blanking区域都可以发blanking packet或者进入LP,或者其他非视频包
不同于CSI2必须支持包间回到LP,且CSI V2.0以上版本 开始支持ILR(包间latency降低)+ALP
4.1 LRTE
4.1.1 ILR
4.2 ALP
5 LVLP(low Voltage low power)
6 USL:Unified Serial link 统一串行链路
7 SROI(smart ROI)智能感兴趣区域