DSI及DPHY的学习

DSI的物理层PHY只能是DPHY

本节讲述的DSI是V1.02.00---2010.6.28

从DSI V1.02开始DSI支持图像数据包RGB和YCbCr的传输,在此版本之前只支持RGB传输。

DSI v1.01和DSI v1.3的spec都在本人的网盘中有收藏。 

本节内容与CSI+CDPHY相同时 请参考:

CSI2与CDPHY学习-CSDN博客

同时本节会做一些与CSI+CDPHY的比较

1 DSI的多lane分配与合并

DSI+DPHY是顺序的将packet数据按byte分配到所有active lane上,这个同样适用于CSI+DPHY

DPHY的SoT一般同时开始,可以不同时结束,比如各lane数据量不一样多,不需要filler

2 DSI的长包格式

        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进行计算的。

2.1 DataType(DT)

下面的DT是来自DSI V1.01此时LgP还不支持YUV的格式,V1.02开始支持YUV显示

下面是DSI v1.3的版本支持的DT(Data Type),可以看到已经增加了YUV和RGB,并且RGB支持到了RGB121212.具体对应的longPack排布格式可以参考DSI spec V1.3的8.8.14---8.8.23节介绍。

3 DSI的短包格式与SyncTiming

DPHY的短包都是32bit,dsi和csi2的区别在于 DI和ECC的bit分配不相同。

3.1 VSS/VSE/HSS/HSE与扫描方式和VC/DT的关系

4.command mode和video mode

        DSI 外设⽀持两种基本操作模式:命令模式和视频模式。无论什么模式,数据都是以长包或者短包的格式传输的

        外设可以支持command mode和video mode的其中一种,或者两者都支持。但是图像信息只能通过video mode传输。

  • command 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来传输数据。

  • video mode

        该模式主要用来从host传输实时视频流到sink端。此时需要host保证DSI和显示通路有足够的带宽来提供实时视频流,保证显示过程中不出现闪烁和伪影。

        视频流只能选择HS传输。

        有些video mode的operation也是可以做一些display controller的时序控制和frame buff读取,比如说:⽤于在待机或低功耗模式下维持部分屏幕或较低分辨率图像。这允许关闭接⼝以降低功耗。

        一般情况下为了降低成本,video mode都是使用单向lane。

4.1不同于DPHY的HS mode,LP mode

        DPHY分为HS mode和LP mode。其中LP mode又分为control mode和escape mode

        这两种划分是以传输速率和电压level来区分的。而DSI的video mode和command mode是以业务类型来划分的,并非是一一对应的关系。

   可以确定的是:

  • video stream一定是在video mode传输,也只能使用HS mode。
  • command mode的数据包可以在HS mode或LPDT传输
  • DPHY 的 control mode和DSI command mode没有任何关系,control mode只是DPHY本身的低功耗控制状态

    不能确定的是:

  • 因为有些command mode的操作在video mode传输,不能确定这些数据包是HS还是LPDT传输

5.DCS(Display command set)

        DCS 是 DSI 和 DBI-2 标准使⽤的命令集的 MIPI 联盟标准。命令从host发送到display模块。在显⽰模块上,显⽰控制器接收并解释命令,然后采取适当的动作。命令分为四⼤类:读寄存器、写寄存器、读存储器和写存储器。

        ⼀个命令可以伴随多个parameter,DCS数据包可以是长包,也可以是短包。参考2.1节的Data Type。

        可以看出来DCS是属于command mode的一部分。整个DCS或者command mode和CSI的USL功能类似。

6 video mode Interface Timing(图像模式时序)

        video mode的数据传输有3种传输时序:

  • Non-Burst Mode with Sync Pulses – 这种时序是可以精确恢复原始video的timing,包括sync脉冲的宽度
  • Non-Burst Mode with Sync Events – 和上面一种的区别是,该种情况下可以恢复原始video的timing信息但不包括sync脉冲的宽度,原因在于该种情况下只会发送同步Start包,而没有同步end包。
  • Burst mode – 该种时序情况下图像数据(RGB/YUV)以高于像素速率的bitrate发送图像数据,这样在原一行的时间就会空余更多的时间让DSI link进入低功耗或者传输其他信息

        对于第二种接收端可以根据实际需要产生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可以做一下的一些处理:

  • 停留在Idle状态,link state为LP-11,外设显示器处于LP-RX
  • Escape mode从host到外设传输多包 non-video数据
  • HS mode从host到外设传输多包 non-video数据
  • 如果BLLP之前的传输结束时候发起了BTA,在BLLP就可以在Escape mode反向传输数据
  • 利用不同的VC号在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的时序和位置很重要,这些会直接影响显示效果。

        下面分节介绍三种不同的传输模式。

6.1 Non-Burst Mode with Sync Pulses

        这种格式要求精确匹配DPI 像素传输速率以及同步脉冲等定时事件的宽度。因此,使⽤传输同步脉冲的开始和结束的数据包来定义同步周期。

        正常情况下HSA,HBP和HFP期间都是用Blanking Packet填充。这些Blanking packet的长度都是经过计算满足timing需求的。

        当然如果发送Blanking Packet的时间足够HS和LP的切换,DSI可以选择在这些blank区域进入LP,以降低功耗。

6.2 Non-Burst Mode with Sync Events

        这种情况是6.1节的一个简化,end的sync packet不再发送,外设显示器只根据start来重建syncTiming,宽度可根据需求来定。这种模式下 同样要求像素传输速率和对应的DPI接口一致。

        blanking区域的处理和6.1节相同。

6.3 Burst Mode

        在此模式下,可以使⽤时间压缩突发格式在更短的时间内传输像素数据块。这样可以降低总体 DSI 功耗,并为链路上任⼀⽅向的其他数据传输提供更多的时间。

        外围设备上可能有⾏缓冲区或类似的存储器,以容纳高速传⼊的数据。在 HS 像素数据传输之后,总线可能停留 在 HS 模式以发送消隐数据包或进⼊低功耗模式,LP模式总线可能保持空闲,即主机处理器保持在 LP-11 状 态,也可能处于任一方向的LPDT传输。如果外设控制DSI link发送数据到host,则其传输时间应受到限制以确保外设显示的frameBuff不会发⽣下溢而导致显示异常。

        Burst mode的时序图其实和6.2节一样,所不同的只是sync packet之间的间隔和传输速率不一样。另外blanking区域的处理原则和6.1和6.2一致。

7 数据长包payload大小        
 

        允许图像长包包括RGB/YUV包payload小于一行,但是建议采用一行。也就是说一行数据可以拆分为多个数据包。【这里是和CSI不一样的地方,CSI 图像包固定为一行】

        其他非图像数据包的payload长度可以是任意值,但需要是8bit整数倍。

        YUV420只有 legacy格式。

8 Data interleaved

        对于DSI来讲,使用不同的VC可以做packet的交织,但是不会有DT之间的交织。原因在于DSI对接的是显示器,而且一个DSI-DPHY接口只能对应一个显示器,一个显示器在显示过程中,显然没有前一帧是RGB,后一帧是YUV的需求。VC多通道也只有高级显示器才会用,比如每个VC传输的数据只驱动显示器的一部分列。

        CSI2 采样sensor数据,并不是直接对接sensor,有多个sensor数据汇聚的过程。

9 DSI与interlaced隔行扫描

        对应的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的视频。

10 packet spacing包间距

水平和垂直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)智能感兴趣区域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值