MIPI 打怪升级之DSI篇

MIPI 打怪升级之DSI篇

目录

  • 1 Overview
  • 2 DSI Mode
    • 2.1 Video 模式
    • 2.2 Command 模式
  • 3 DSI Physical Layer
    • 3.1 数据流控
    • 3.2 双向性
    • 3.3 Video Mode Interfaces
    • 3.4 Command Mode Interfaces
    • 3.5 Clock
  • 4 多通道管理
    • 4.1 通道数匹配
    • 4.2 线上数据分布
  • 5 DSI 协议
    • 5.1 包格式
      • 5.1.1 短包
      • 5.1.2 长包
    • 5.2 Data ID
    • 5.3 ECC
    • 5.4 Data Type(Processor -> Peripheral)
      • 5.4.1 Sync Event (H Start, H End, V Start, V End), Data Type = XX 0001 (0xX1)
      • 5.4.2 EoTp, Data Type = 00 1000 (0x08)
      • 5.4.3 Color Mode Cmd, Data Type = 00 0010 (0x02)、01 0010 (0x12)
      • 5.4.4 Peripheral On/Off Cmd, Data Type = 10 0010 (0x22)、11 0010 (0x32)
      • 5.4.5 Generic Write/Read Packet
      • 5.4.6 DCS 命令
      • 5.4.7 Set Maximum Return Packet Size, Data Type = 11 0111 (0x37)
      • 5.4.8 Null Packet (Long), Data Type = 00 1001 (0x09)
      • 5.4.9 Blanking Packet (Long), Data Type = 01 1001 (0x19)
      • 5.4.10 YCbCr Packed Pixel Stream
      • 5.4.11 RGB Packed Pixel Stream
      • 5.4.12 Execute Queue (0x16)
      • 5.4.13 DO NOT USE and Reserved Data Types
    • 5.5 Data Type(Peripheral -> Processor)
      • 5.5.1 Acknowledge and Error Report, Data Type 00 0010 (0x02)
      • 5.5.2 End of Transmission packet (EoTp), Data Type 00 1000(0x08)
      • 5.5.3 Generic Read Response, 1 or 2 or long Bytes
      • 5.5.4 DCS Read Response, 1 or 2 or long Bytes
    • 5.6 Video Mode Interface Timing
      • 5.6.1 Non-Burst Mode with Sync Pulses
      • 5.6.2 Non-Burst Mode with Sync Events
      • 5.6.3 Burst Mode
  • 6 DSI 错误检测
    • 6.1 Low-Level Protocol Errors
    • 6.2 Contention Detection and Recovery
      • 6.2.1 Contention Detection in LP Mode
      • 6.2.2 Contention Recovery Using Timers
    • 6.3 Additional Timers

1 Overview

DSI 全称 Display Serial Interface,是由 MIPI 联盟定义的处理器与外设之间的移动设备接口规范。该规范建立在现有标准的基础上,并采用了 MIPI 联盟 DBI、DPI 和 DCS 标准中定义的像素格式和命令集。DSI是主要用于显示传输的接口。
一般而言,完整的DSI传输结构如下图所示,从上到下依次为(本文主要关注第二层与第三层):

  1. Application:描述了数据流中包含的数据的更高层的编码和解释。 根据显示子系统架构,它可能由具有规定格式的像素组成,或者由显示模块的命令组成。 可以参考DCS、DPI、DBI Spec。
  2. Low Level Protocol:该协议规定了通过接口的位和字节的顺序和值,它定义如何将字节组织成定义的组,即数据包。该协议以数据包为最小集合,并为每个数据包定义了所需的包头,以及如何生成和解释包头信息。后续发送端将包头和错误检查信息附加到正在传输的数据中。
  3. Lane Managment:通道管理,DSI 可进行通道扩展以提高性能。 根据应用的带宽要求,Data Lane的数量可以是 1、2、3 或 4。
    接口的发送端将输出数据流分配到一个或多个通道。有相应的通道数据分配机制。
  4. PHY Layer:物理层。

MIPI 的协议庞大且版本众多,本文主要基于如下Spec版本:

  • MIPI Alliance Standard for D-PHY, version 0.65, November 2005
  • MIPI Alliance Standard for Display Bus Interface, version 2.00, November 2005
  • MIPI Alliance Standard for Display Parallel Interface, version 2.00, September 2005
  • MIPI Alliance Standard for Display Command Set, version 1.00, April 2006
  • MIPI Alliance Standard for Display Serial Interface V1.0

2 DSI Mode

DSI定义了两种基本操作模式,Video模式与Command 模式。使用哪种模式取决于外设的架构、功能与应用的目标。

2.1 Video 模式

Video模式是指从主机处理器到外围设备的传输采用实时像素流形式的操作。一般而言,显示模块依靠主机处理器以足够的带宽提供图像数据,以避免显示图像中的闪烁或其他可见伪影。而一些视频模式架构可能包括一个简单的时序控制器和部分帧缓冲区,用于在待机或低功耗模式下保持部分屏幕或较低分辨率的图像。 这允许关闭接口以降低功耗。当然为了降低复杂性和成本,仅在Video模式下运行的系统可以使用单向Data Lane。

视频信息只能使用高速模式传输。

2.2 Command 模式

Command模式是指其中事务主要采取将命令和数据发送到外设(例如显示模块)的形式的操作。显示控制器需要有本地寄存器和帧缓冲器。处理器通过向显示控制器发送命令、参数和数据来间接控制其显示行为,同时还可以读取显示模块状态信息或帧存储器的内容。 故Command模式操作需要一个双向Data Lane。

某些显示器仅能在LP模式下初始化

3 DSI Physical Layer

本节简要概述 DSI 中使用的物理层。 有关详细信息可以参考之前的D-PHY篇——MIPI 打怪升级之D-PHY篇。
DSI使用一个或多个串行数据信号和一个串行时钟在主机处理器和外围设备之间传输信息。 **通过总线发送高速串行数据的动作称为 HS 传输或Burst。**在高速传输之间,差分数据信号或通道进入低功耗状态 (LPS),且接口在不主动发送或接收高速数据时也应处于低功耗状态 LPS。
下图为HS模式下的数据传输:

> 协议规定了一个字节即最小数据单元,一次传输包含整数个字节。

3.1 数据流控

由前面的结构图可知,底层为协议层将数据发给PHY层,但是协议层和 PHY 层之间没有握手,一旦传输开始,协议层就可以限制进出 PHY 层的数据传输。而数据包应完整无间断地发送和接收, 则需要链路两端的协议层和数据缓冲应始终具有等于或大于 PHY 层电路的带宽。 一个实际的结果是系统实现者应该确保接收器的带宽能力等于或大于发射器的带宽能力。

3.2 双向性

DSI 实现的物理层由一到四个数据通道和一个时钟通道组成。其中:

  • Command Mode:Data Lane0 应是双向的; 额外的Data Lane应是单向的。
  • Video Mode: Data Lane0 可以是双向的或单向的; 额外的Data Lane应是单向的。

Note:
Clock Lane应仅由Master驱动,而不能由外设驱动。
LP传输应仅使用Data Lane0。

PHY 和协议层之间的接口有几个控制总线方向的信号。当Master需要外设的响应使用。例如 返回 READ 数据或状态信息,它有如下流程:

  1. Master在传输的最后一个数据包期间向其 PHY 断言 TurnRequest;
  2. PHY 层拿到TurnRequest后在 EoT序列之后发送 BTA 命令;
  3. 当外设接收到 BTA 命令时,其 PHY 层将 TurnRequest 置为协议层的输入;
  4. 外设拿到TurnRequest 通知其接收协议层准备向Master发送响应;
  5. 外设发送响应后,外设同样使用 TurnRequest将总线控制权交还给Master。

BTA机制是需要在LP下实现的。

下图为测试过程抓的一个BTA波形:

3.3 Video Mode Interfaces

在 Video 模式下运行的 DSI TX 的最低 PHY 要求是:

  • • Data Lane Module:CIL-MUNN(HS-TX、LP-TX)
  • • Clock Lane Module:CIL-MCNN(HS-TX、LP-TX)
    在 Video 模式下运行的 DSI RX 的最低 PHY 要求是:
  • • Data Lane Module: CIL-SUNN (HS-RX, LP-RX)
  • • Clock Lane Module: CIL-SCNN (HS-RX, LP-RX)

3.4 Command Mode Interfaces

在 Command 模式下运行的 DSI TX 的最低 PHY 要求是:

  • • Data Lane Module: CIL-MUYY (HS-TX, LP-TX, LP-RX, and LP-CD)
  • •Clock Lane Module: CIL-MCNN (HS-TX, LP-TX)
    在 Command 模式下运行的 DSI RX 的最低PHY要求是:
  • • Data Lane Module: CIL-SUYY (HS-RX, LP-RX, LP-TX, and LP-CD)
  • •Clock Lane Module: CIL-SCNN (HS-RX, LP-RX)

3.5 Clock

DSI 时钟是从Master 到 Slave的信号。 它可能具有多种功能:

  1. Bit Clock:在整个链路上,DSI 时钟用作源同步位时钟,用于捕获接收器 PHY 中的串行数据位。
  2. Byte Clock:分频后,DSI 时钟用于在协议层和应用层之间的概念接口处生成Lane Byte Clock。
  3. Esc Clock: 分频后,DSI时钟用于LP模式。
  4. Application Clock(s):DSI 位时钟的分频版本可用于其他时钟功能。

所有 DSI TX/RX都应支持时钟通道上的连续时钟行为,并且可以选择支持非连续时钟行为(可降低功耗)。

Note: 在低功耗信号模式下,LP 时钟在功能上嵌入在数据信号中。当 LP 数据传输结束时,时钟有效停止,后续的 LP 时钟对外设不可用。如果外设需要额外的时钟来推进其逻辑状态,通过顺序缓冲区移动数据,或类似的,可能需要在 LP 传输中添加“虚拟”数据字节以实现状态机的前向进程或推进数据通过时序逻辑。
BTA 的握手过程只允许 Master 和 Slave 之间的 Escape Mode 时钟频率存在有限的不匹配。 Master 和 Slave 之间的 Escape Mode 频率比不得超过 3:2。Master 负责控制自己的时钟频率以匹配外设。Master 的 LP 时钟频率应在外围 LP 时钟频率的 67% 到 150% 范围内。因此,外设实现者应指定外设的标称 LP 时钟频率和保证的精度。

4 多通道管理

在PHY层之上有一个通道管理层,在发送端,负责数据的分发到每个 Lane,而在接收端,负责将多个 Lane 的数据合成。
如下图所示,即发送端分别在单Lane与4Lane的情况下数据的Lane上分布。

接收端就正好相反,如下图所示,即发送端分别在单Lane与4Lane的情况下数据的Lane上分布。

4.1 通道数匹配

当Slave通道数与Master不匹配时,可以通过调整D-PHY的通道数来匹配对方。如下图所示:当Receiver PHY只有两条Data Lane,而Transmitter PHY有四条Data Lane。这是可以调整Transmitter PHY输出使用两条Data Lane,同理也可以将两边都调整为使用一条lane。而在这种情况下并不影响DSI与D-PHY之间的连接。

4.2 线上数据分布

我们知道DSI的数据是以Byte为最小单位的,使用的Data Lane的条数是可以调整。而一次传输包含了SOT、Data、EOT等。排布规则也比较简单:每条Lane都有自己的SOT与EOT,数据在SoT之后从Lane0~Lane3依次排布。
那么在线上则存在不同情况:
1,数据为Lane数的整数倍

2,数据非Lane数的整数倍

5 DSI 协议

在 DSI 链路的发送端,并行数据、信号事件和命令会在协议层中转换为数据包。协议层附加数据包协议信息和包头,然后通过Lane管理层将所有字节发送到 PHY。 数据包由 PHY 序列化并通过串行链路发送。 DSI 链路的接收端执行与发送端相反的操作,将数据包分解为并行数据、信号事件和命令。

数据包协议和格式与使用的通道数无关。

DSI支持一次传输一个包活着多个包,每次传输包含一个SOT代表开始,一个EoT代表结束。要传 3 个包,那么如下所示两种方式:

5.1 包格式

DSI定义了两种数据包结构:长数据包和短数据包。 对于这两种数据包结构,数据标识符始终是数据包的第一个字节。

5.1.1 短包

一个短数据包包含一个 8 位数据 ID,后跟 2 个字节数据和一个 8 位 ECC。 短数据包的长度为 4 个字节。主要用于传输命令、参数、读写寄存器,也可以传输一些时序信息,比如Hsync、Vsync等。

5.1.2 长包

长数据包应由三个元素组成:32 位数据包头(PH)、具有可变字节数(0-65535)的特定应用数据有效负载和 16 位数据包尾(PF)。 包头进一步由三个元素组成:8 位数据标识符、16 位字数和 8 位 ECC。 包尾有一个元素,一个 16 位校验和。 长数据包的长度可以是 6 到 65,541 个字节。主要用于传输图像、视频等数据。

> Word Count 仅指数据的长度,以Byte为单位,而不包含后续的Checksum。

5.2 Data ID

任何数据包的第一个字节是 DI(数据标识符)字节。 下图即数据标识符 (DI) 字节的组成。 DI[7:6]:这两位将数据标识为定向到四个虚拟通道之一。 DI[5:0]:这六个位指定数据类型。

5.3 ECC

ECC可以纠正单比特错误并在数据包报头中检测 2 比特错误。

外设应支持正向和反向通信中的 ECC。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/188196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

上新!2023年汉字小达人市级比赛在线模拟题增加2个刷题试卷

各位小学三年级到五年级的上海学霸孩子们,刚刚结束了上海小学生古诗文大会的复赛,就紧锣密鼓地全身心投入到上海小学生汉字小达人的市级比赛的备赛中了。 为了助各位孩子一臂之力,我把在线模拟题进行了更新,新增了两个可以刷题的试…

SparkSQL之Optimized LogicalPlan生成过程

经过Analyzer的处理,Unresolved LogicalPlan已经解析成为Analyzed LogicalPlan。Analyzed LogicalPlan中自底向上节点分别对应Relation、Subquery、Filter和Project算子。   Analyzed LogicalPlan基本上是根据Unresolved LogicalPlan一对一转换过来的,…

细胞级浮游藻类智能检测系统

产品信息 新一代浮游藻类智能检测系统问世!英视江河首次将藻类检测精度提升到细胞级!英视江河致力于新一代浮游生物的识别、计数。特征是群体藻类和群体种个体均精准检测!目前设备已在山东、宁夏、内蒙多地实际应用。 郑州英视江河生态环境科…

SpringBoot——配置及原理

优质博文:IT-BLOG-CN 一、Spring Boot全局配置文件 application.properties与application.yml配置文件的作用:可以覆盖SpringBoot配置的默认值。 ◀ YML(is not a Markup Language:不仅仅是一个标记语言)&#xff1…

Android修行手册-ViewPager定制页面切换以及实现原理剖析

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

论文阅读——Prophet(cvpr2023)

一、Framework 这个模型分为两阶段:一是答案启发生成阶段(answer heuristics generation stage),即在一个基于知识的VQA数据集上训练一个普通的VQA模型,产生两种类型的答案启发,答案候选列表和答案例子&am…

强化学习,快速入门与基于python实现一个简单例子(可直接运行)

文章目录 一、什么是“强化学习”二、强化学习包括的组成部分二、Q-Learning算法三、迷宫-强化学习-Q-Learning算法的实现全部代码(复制可用)可用状态空间检查是否超出边界epsilon 的含义更新方程 总结 一、什么是“强化学习” 本文要记录的大概内容&am…

图形编辑器开发:缩放和旋转控制点

大家好,我是前端西瓜哥。好久没写图形编辑器开发的文章了。 今天来讲讲控制点。它是图形编辑器的不可缺少的基础功能。 控制点是吸附在图形上的一些小矩形和圆形点击区域,在控制点上拖拽鼠标,能够实时对被选中进行属性的更新。 比如使用旋…

LED面板显示屏驱动芯片

一、基本概述 TM1638是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存器、LED驱动、键盘扫描等电路。本产品质量可靠、稳定性好、抗干扰能力强。 二、主要应用场合 主要适用于家电设备(智能热水器、微波炉…

Hibernate 脏检查和刷新缓存机制

刷新缓存: Session是Hibernate向应用程序提供的操作数据库的主要接口,它提供了基本的保存,更新,删除和加载java对象的方法,Session具有一个缓存,可以管理和追踪所有持久化对象,对象和数据库中的相关记录对应,在某些时间点,Session会根据缓存中对象的变化来执行相关SQL语句,将对…

杂货铺 | Windows系统上解压缩tgz文件

文章目录 📚快速终端打开实现 & 解压缩实现步骤📚环境变量的一般配置步骤 & 问题解决思路 📚快速终端打开实现 & 解压缩实现步骤 将对应的tgz文件放入对应的文件夹。快速在指定文件夹下打开终端 打开对应的路径 双击地址栏 然后…

Cisco Packet Tracer配置命令——路由器篇

路由基础 路由器用于互联两个或多个网络,具有两项功能:为要转发的数据包选择最佳路径以及将数据包交换到正确的端口,概括为路由选择和分组转发。 路由选择 路由选择就是路由器根据目的IP地址的网络地址部分,通过路由选择算法确…

图的建立基本操作

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> // 添加头文件#define MAX_VERTEX_NUM 100 //图中最大顶点数//struct ArcNode* nextarc; //ArcNode* firstarc; //这两个是很有必要的&#xff0c;如果你没有这两个指针&#xff0c;你就无法判…

力扣114. 二叉树展开为链表(java,用树模拟链表)

Problem: 114. 二叉树展开为链表 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 1.展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左…

Selenium 4.11 正式发布--再也不用手动更新chrome driver 了

Selenium 4.11.0 正式发布了&#xff0c;先来看一下主要特性。 Chrome DevTools支持的版本现在是&#xff1a;v113、v114和v115&#xff08;Firefox仍然对所有版本使用v85&#xff09; 通过Selenium Manager支持Chrome For Testing&#xff08;CfT&#xff09; Selenium Manag…

LeetCode Hot100 105.从前序与中序遍历序列构造二叉树

题目&#xff1a;给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返回其根节点。 代码&#xff1a; class Solution {private Map<Integer, Integer> indexM…

midjourney过时了?如何使用基于LCM的绘图技术画出你心中的画卷。

生成 AI 艺术在近年来迅速发展&#xff0c;吸引了数百万用户。然而&#xff0c;传统的生成 AI 艺术需要等待几秒钟或几分钟才能生成&#xff0c;这对于快节奏的现代社会来说并不理想。 近日&#xff0c;中国清华大学和 AI 代码共享平台 HuggingFace 联合开发了一项新的机器学习…

性能压测工具:wrk

一般我们压测的时候&#xff0c;需要了解衡量系统性能的一些参数指标&#xff0c;比如。 1、性能指标简介 1.1 延迟 简单易懂。green:一般指响应时间 95线&#xff1a;P95。平均100%的请求中95%已经响应的时间 99线&#xff1a;P99。平均100%的请求中99%已经响应的时间 平…

2023年亚太杯数学建模A题水果采摘机器人的图像识别功能(matlab 部分代码)

对于1-4问针对的是附录1 中的数据 clc; close all; clear; % 图像文件夹路径 folder_path E:/新建文件夹/yatai/Attachment/Attachment 1/; % 图像文件列表 image_files dir(fullfile(folder_path, *.jpg)); % 假设所有图片都是jpg格式% 解析文件名中的数字&#xff0c;并转…

2023年汉字小达人市级比赛在线模拟题的使用顺序、建议和常见问题

今天是2023年11月25日&#xff0c;星期六&#xff0c;上午举办了2023年第八届上海小学生古诗文大会的复选活动&#xff08;复赛&#xff09;&#xff0c;结束了复选活动&#xff0c;很多学霸孩子们马上就开始投入到第十届汉字小达人的市级活动&#xff08;市级比赛&#xff09;…