当前位置: 首页 > news >正文

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分配与合并


2 DSI的长包格式

2.1 DataType(DT)

3 DSI的短包格式与SyncTiming

3.1 FS/FE LS/LE与扫描方式和VC/DT的关系

3.1.1 FS/FE

3.1.2 LS/LE

3.1.3 FS/FE LS/LE与V/Hsync

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(图像模式时序)

        对应的CSI提到了对interlaced隔行扫描的支持,DSI协议没有任何提及interlaced的地方。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格式。

水平和垂直blanking区域都可以发blanking packet或者进入LP,或者其他非视频包

4 packet spacing包间距

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

http://www.lryc.cn/news/209509.html

相关文章:

  • 环形链表(C++解法)
  • 星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术
  • 【Python机器学习】零基础掌握RandomForestRegressor集成学习
  • FreeRTOS深入教程(任务创建的深入和任务调度机制分析)
  • Megatron-LM GPT 源码分析(一) Tensor Parallel分析
  • 分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测
  • 婚礼的魅力
  • 【计算机网络笔记】DNS报文格式
  • 10月28日
  • 【性能测试】初识 Jmeter 中的 BeanShell
  • Rust实现基于Tokio的限制内存占用的channel
  • 【C++】C++入门(上)--命名空间 输入输出 缺省参数 函数重载
  • 设计模式:原型模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
  • SpringMVC 资源状态转移RESTful
  • verilog vscode linux
  • Postman日常操作
  • 10月份程序员书单推荐
  • 【ChatGPT系列】ChatGPT:创新工具还是失业威胁?
  • C++ 实现定时器的两种方法(线程定时和时间轮算法修改版)
  • 2023mathorcup大数据竞赛选题建议及思路
  • 部署vuepress项目到githubPage
  • ORACLE表空间说明及操作
  • vue使用Element-plus的Image预览时样式崩乱
  • 安装使用vcpkg的简易教程
  • 制作一个简单的C语言词法分析程序
  • Java项目中将MySQL改为8.0以上
  • 软考高项-计算题(2)
  • Centos使用war文件部署jenkins
  • 数据结构和算法——用C语言实现所有排序算法
  • 吃豆人C语言开发—Day2 需求分析 流程图 原型图