• DSI及DPHY的学习


    DSI的物理层PHY只能是DPHY

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

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

    本节内容与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显示

    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)智能感兴趣区域

  • 相关阅读:
    如何解决企业内部的数据孤岛问题?
    数据库系统及应用复习——第十章数据库恢复技术与第十一章并发调度的可串行性
    搭建nuxt3项目(框架构建)
    java虚拟机详解篇三(JVM和类)
    软件测试基础篇
    用VS Code搞Qt6:至简窗口部件——QWidget
    批量自动html文档排版工具
    tomcat启动起来很慢,甚至是卡死在某一步骤的问题记录 修改 Djava.security.egd=file:/dev/urandom 无效解决
    ObjectMapper - 实现复杂类型对象反序列化(天坑!)
    .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件
  • 原文地址:https://blog.csdn.net/cy413026/article/details/134020203