当前位置: 首页 > 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)智能感兴趣区域

相关文章:

DSI及DPHY的学习

DSI的物理层PHY只能是DPHY 本节讲述的DSI是V1.02.00---2010.6.28 从DSI V1.02开始DSI支持图像数据包RGB和YCbCr的传输,在此版本之前只支持RGB传输。 本节内容与CSICDPHY相同时 请参考: CSI2与CDPHY学习-CSDN博客 同时本节会做一些与CSICDPHY的比较 …...

环形链表(C++解法)

题目 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&#…...

星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术

本心、输入输出、结果 文章目录 星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术前言星闪技术 NearLink 的诞生背景星闪技术 NearLink 简介星闪技术 NearLink 技术是一种蓝牙技术吗星闪技术 NearLink 优势星闪技术 NearLink 应用前景弘扬爱国精神星闪技术 Nea…...

【Python机器学习】零基础掌握RandomForestRegressor集成学习

如何预测房价是不是一直困扰着大家?特别是在房地产市场波动不定的情况下,这样的预测可以说是切实需要。 要解决这个问题,一个可行的方法是利用历史房价数据和房屋的各种属性(如面积、楼层、地理位置等)进行分析。通过这些数据,可以用一个模型来预测未来房价。 假设有以…...

FreeRTOS深入教程(任务创建的深入和任务调度机制分析)

文章目录 前言一、深入理解任务的创建二、任务的调度机制1.FreeRTOS中任务调度的策略2.FreeRTOS任务调度策略实现的核心3.FreeRTOS内部链表源码解析4.如何通过就绪链表管理任务的执行顺序 三、一个任务能够运行多久1.高优先级任务可抢占低优先级任务一直运行2.相同优先级的任务…...

Megatron-LM GPT 源码分析(一) Tensor Parallel分析

引言 本文基于开源代码 GitHub - NVIDIA/Megatron-LM: Ongoing research training transformer models at scale ,通过GPT的模型运行示例,从三个维度 - 模型结构、代码运行、代码逻辑说明 对其源码做深入的分析。 Tensor Parallel源码分析...

分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测

分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测 目录 分类预测 | MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据…...

婚礼的魅力

昨日有幸被邀请去当伴郎,虽然是替补,即别人鸽了,过去救急,但总归是去起作用。 婚礼的魅力,感受到了,满满的仪式感,紧凑的流程,还有不断的拍照,做视频,留下美好…...

【计算机网络笔记】DNS报文格式

DNS 提供域名到主机IP地址的映射  域名服务的三大要素:  域(Domain)和域名(Domain name): 域指由地 理位置或业务类型而联系在一起的一组计算机构 成。  主机:由域名来标识。域名是由字符和(或&a…...

10月28日

...

【性能测试】初识 Jmeter 中的 BeanShell

初识 Jmeter 中的 BeanShell 1.简介1.1 应用场景1.2 BeanShell 类型 2.常用内置变量2.1 log 日志模块2.2 vars 模块2.3 props 模块2.4 prev 模块 3.常见应用场景3.1 Java 文件处理3.2 导入外部 jar 包 BeanShell 是一个小型嵌入式 Java 源代码解释器,完全兼容 Java …...

Rust实现基于Tokio的限制内存占用的channel

Rust实现基于Tokio的限制内存占用的channel 简介 本文介绍如何基于tokio的channel实现一个限制内存占用的channel。 Tokio提供了多种协程间同步的接口,用于在不同的协程中同步数据。 常用的channel有两种:bounded和unbounded,其中ubbounded的channel可…...

【C++】C++入门(上)--命名空间 输入输出 缺省参数 函数重载

目录 一 命名空间 1 命名空间的定义 2 命名空间的使用 二 C输入和输出 1 输出 2 输入 三 缺省参数 1 缺省参数概念 2 缺省参数分类 (1) 全缺省参数 (2)半缺省参数 四 函数重载 1 函数重载概念 2 分类 1 参数类型不同 2 参数个数不同 3 参数类型顺序不同 3 C为什…...

设计模式:原型模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

上一篇《访问者模式》 下一篇《享元模式》 简介: 原型模式,它是一种创建型设计模式,它允许通过复制原型对象来创建新的对象,而无需知道创建的细节。其工作原…...

SpringMVC 资源状态转移RESTful

文章目录 1、RESTful简介a>资源b>资源的表述c>状态转移 2、RESTful的实现HiddenHttpMethodFilterRESTful案例 1、RESTful简介 REST:Representational State Transfer,表现层资源状态转移。 a>资源 资源是一种看待服务器的方式&#xff0c…...

verilog vscode linux

安装 vscode 插件 插件:Verilog-HDL/SystemVerilog/Bluespec SystemVerilog 功能:.xdc .ucf .v 等代码高亮、代码格式化、语法检查(Linting)、光标放到变量上提示变量的信息等 关于其他语言的依赖工具等信息查看插件说明 代码对齐…...

Postman日常操作

一.Postman介绍 1.1第一个简单的demo 路特斯(英国汽车品牌)_百度百科 (baidu.com) 1.2 cookie 用postman测试需要登录权限的接口时,会被拦截,解决办法就是每次请求接口前,先执行登录,然后记住cookie或者to…...

10月份程序员书单推荐

新书书单 1、C程序设计教程(第9版) 1.广受认可的《C程序设计教程》系列的第9版(个别版本也译作《C语言大学教程》),秉承了该系列一贯的丰富而详细的风格。该系列一些版本因封面画有蚂蚁形象而被称为“C语言蚂蚁书”。…...

【ChatGPT系列】ChatGPT:创新工具还是失业威胁?

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...

C++ 实现定时器的两种方法(线程定时和时间轮算法修改版)

定时器要求在固定的时间异步执行一个操作,比如boost库中的boost::asio::deadline_timer,以及MFC中的定时器。也可以利用c11的thread, mutex, condition_variable 来实现一个定时器。 1、使用C11中的thread, mutex, condition_variable来实现一个定时器。…...

2023mathorcup大数据竞赛选题建议及思路

大家好呀,昨天6点2023年第四届MathorCup高校数学建模挑战赛——大数据竞赛开赛,在这里给大家带来初步的选题建议及思路。 注意,本文章只是比较简略的图文讲解,更加详细完整的视频讲解请移步: 2023mathorcup大数据数学…...

部署vuepress项目到githubPage

部署vuepress项目到githubPage 1. 项目文件夹下有两个分支(main和gh-page) 1.1 main分支存放项目代码 1.2 gh-page分支存放 npm run docs:build之后的dist里面的所有文件 2. 分别提交到github上 3. 你的项目/docs/.vuepress/config.js module.export…...

ORACLE表空间说明及操作

ORACLE 表空间作用 数据存储:表空间是数据库中存储数据的逻辑结构。它提供了用于存储表、索引、视图、存储过程等数据库对象的空间。通过划分数据和索引等对象的存储,可以更好地管理和组织数据库的物理存储结构。性能管理和优化:通过将不同类…...

vue使用Element-plus的Image预览时样式崩乱

🔥博客主页: 破浪前进 🔖系列专栏: Vue、React、PHP ❤️感谢大家点赞👍收藏⭐评论✍️ 问题: 在使用组件库的image时出现了点小问题,预览的图片层级反而没有表格的层级高 效果图:…...

安装使用vcpkg的简易教程

目录 1. 首先安装vcpkg2. 在vcpkg目录下运行bootstrap-vcpkg.bat 命令3. 接着vs进行集成4. 使用vcpkg搜索可用的包5.下载安装所需包6.下载安装完成 1. 首先安装vcpkg 使用git命令下载 git clone https://github.com/Microsoft/vcpkg.git如果下载失败可直接下载文件 (vcpkg-ma…...

制作一个简单的C语言词法分析程序

1.分析组成 C语言的程序中,有很单词多符号和保留字。一些单词符号还有对应的左线性文法。所以我们需要先做出一个单词字符表,给出对应的识别码,然后跟据对应的表格来写出程序 2.程序设计 程序主要有循环判断构成。不需推理即可产生的符号我…...

Java项目中将MySQL改为8.0以上

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 maven依…...

软考高项-计算题(2)

题4 项目的总预算是包含管理储备的,所以总预算应该是:13238102*360 ETC(BAC-EV)/CPI BAC60 EV60*0.318 CPI18/200.9 ETC42/0.9 答案选择C A 题5 因为题目中提到了“按目前的状况继续发展”,那么是:ETC(BAC-EV)/CPI EV1230*0…...

Centos使用war文件部署jenkins

部署jenkins所需要的jdk环境如下: 这里下载官网最新的版本: 选择jenkins2.414.3版本,所以jdk环境最低得是java11 安装java11环境 这里直接安装open-jdk yum -y install java-11-openjdk.x86_64 java-11-openjdk-devel.x86_64下载jenkins最新…...

数据结构和算法——用C语言实现所有排序算法

文章目录 前言排序算法的基本概念内部排序插入排序直接插入排序折半插入排序希尔排序 交换排序冒泡排序快速排序 选择排序简单选择排序堆排序 归并排序基数排序 外部排序多路归并败者树置换——选择排序最佳归并树 前言 本文所有代码均在仓库中,这是一个完整的由纯…...