大数跨境

技术洞见 | MIPI DSI协议数据包介绍

技术洞见 | MIPI DSI协议数据包介绍 牛芯半导体
2025-09-18
1
导读:本文转载自CSDN论坛作者G2突破手259的博客,转载文章仅供学习和研究使用。

本文转载自CSDN论坛作者G2突破手259的博客,转载文章仅供学习和研究使用。

在DSI链路的发送端,并行数据、信号事件和命令在协议层被转换成包,按照本节记录的包组织。协议层附加包协议信息和报头,然后通过Lane Management层向PHY发送完整的字节。数据包由PHY串行化,并通过串行链路发送。DSI链路的接收端执行与发送端相反的工作,将数据包分解为并行数据、信号事件和命令。
如果有多个Lane,Lane Management层将字节分配给独立的物理设备,每个Lane一个PHY。数据包协议和格式与所使用的通道数无关。


每次传输多个包


在最简单的形式中,一个传输可能包含一个包。如果要传输许多数据包,如果数据包单独发送,例如每次传输一个数据包,那么在LPS和高速模式之间频繁切换的开销将严重限制带宽。
DSI协议允许多个数据包连接,这大大提高了有效带宽。这对于诸如外设初始化之类的事件很有用,在这些事件中,许多寄存器可能在系统启动时加载单独的写命令。
在物理层有两种数据传输模式,HS和LP传输模式。在HS传输可以开始之前,发送器PHY向接收器发出一个SoT序列。此时,数据或命令报文可以以HS模式传输。在单个HS传输中可能存在多个数据包,并且传输结束总是在PHY层使用专用EoT序列发出信号。为了增强系统的整体鲁棒性,DSI在协议层定义了一个专用的EoT包(EoTp),用于发送HS传输结束的信号。为了与早期的DSI系统向后兼容,可以启用或禁用生成和解释此EoTp的功能。启用或禁用此功能的方法超出了本文的讨论范围。
图中的图表说明了在禁用EoTp支持的情况下分别发送多个数据包的情况。在HS模式下,数据包之间的时间间隔会导致每个数据包进行单独的HS传输,数据包之间会有物理层发出的SoT、LPS和EoT。这个限制不适用于LP传输。下面的图表演示了在单个HS传输中连接多个数据包的情况。
下图EoTp生成的HS传输案例。图中EoT短包以红色突出显示。上面的图表说明了主机打算使用两个单独的传输发送一个短数据包,然后是一个长数据包的情况。在这种情况下,在每次传输结束之前都会生成一个额外的EoT短包。与禁用EoTp生成的情况相比,这种机制提供了一个更健壮的环境,代价是增加了开销(每次传输额外四个字节),即系统仅依赖物理层EoT序列来发送HS传输结束的信号。启用EoTp带来的开销可以通过在单个传输中发送多个长和短数据包来最小化。


包组成


数据包的第一个字节是数据标识符(DI),包含指定数据包类型的信息。例如,在显示应用程序中的Video Mode系统中,数据包的逻辑单元可以是一条水平显示行。Command Mode系统发送命令和一组相关的参数,参数的数量取决于命令类型。
数据包大小分为两类:
  • 短数据包长度为4字节,包括ECC在内。大多数Command Mode命令和相关参数都使用短数据包。其他短数据包传递像H Sync和V Sync边沿这样的事件。因为它们是短数据包,所以可以向外设的逻辑传递准确的时序信息。
  • 长数据包使用两个字节的单词计数字段(Word Count field)指定有效载荷长度。有效载荷可以从0到2^16-1字节长度。因此,一个长数据包的长度可以达到65,541字节。长数据包允许传输大块的像素或其他数据。
Command Mode操作的一个特殊情况是视频速率(更新)流,它以任意长的像素流或其他数据流的形式传输到外设。由于所有DSI事务都使用数据包,因此视频流应被分解为单独的数据包。这种“打包”可以由硬件或软件完成。然后外设可以将这些数据包重新组装成一个连续的视频流以供显示。
设置最大返回包大小(Set Maximum Return Packet Size)命令允许主机处理器限制来自外设的响应包的大小。


字节顺序策略


所有包数据都以字节的形式通过接口。发送器按顺序先发送LSB数据,后发送 MSB数据。对于具有多字节字段的数据包,除非另有规定,否则应首先传输最低有效字节。
下图显示了一个完整的长数据包数据传输。注意,该图以标准位置表示法显示了字节值,即MSB在左边,LSB在右边,而bit是按时间顺序显示的,LSB在左边,MSB在右边,时间从左到右递增。


一般数据包结构


为底层协议通信定义了两种数据包结构:长数据包和短数据包。对于这两种包结构,数据标识符(DI)总是包的第一个字节。
长数据包格式
下图据包的结构。一个长数据包应该由三个元素组成:一个32-bit的包头(PH),一个可变字节数的特定于应用程序的数据负载,和一个16-bit的包尾(PF)。包头进一步由三个元素组成:一个8-bit的数据标识符(DI),一个16-bit的单词计数(WC),和8-bit的ECC。包尾有一个元素,一个16-bit校验和(CRC)。长数据包的长度为6 ~ 65535字节。
数据标识符(DI)为数据定义虚拟通道,为特定于应用程序的有效负载数据定义数据类型。
单词计数(WC)定义了在包头结束和包尾开始之间的数据有效载荷中的字节数。包头和包尾都不能包含在单词计数中。
纠错码(ECC)字节允许在包头中纠正单比特错误和检测2比特错误。这包括数据标识符和单词计数字段。
在包头结束后,接收器读取数据载荷的下一个Word Count *字节。在数据载荷块中,对数据字的值没有限制,即不使用嵌入代码。
一旦接收方读取了数据有效载荷,它就会读取包尾中的校验和。主机处理器应总是在包尾中计算并传输校验和。计算Checksum不需要外设。还要注意零字节数据载荷的特殊情况:如果载荷长度为0,则Checksum计算结果为(0xFFFF)。如果不计算校验和,则包尾应由两个字节的全零(0x0000)组成。
在一般情况下,数据有效载荷的长度应该是字节的倍数。此外,每种数据格式可能对有效载荷数据的长度施加额外的限制,例如四个字节的倍数。
每个字节应首先传输最低有效位。有效载荷数据可以按仅受数据格式要求限制的任何字节顺序传输。像单词计数和校验和这样的多字节元素应该先传输最低有效字节。
短数据包格式
下图据包的结构。短数据包应包含一个8-bit数据标识符(DI),后跟两个命令或数据字节和一个8-bit ECC;包尾不应该存在。短数据包的长度应为4字节。
纠错码(ECC)字节允许在短数据包中纠正单比特错误和检测2比特错误。


通用数据包元素


长数据包和短数据包有几个在本节中描述的共同元素。
数据标识符字节
任何数据包的第一个字节是数据标识符(DI)字节。下图标识符(DI)字节的组成。
DI [7:6]:这两位标识数据被定向到四个虚拟通道中的一个。
DI [5:0]:这6位指定数据类型。
虚拟通道标识符-VC字段,DI [7:6]
一个处理器最多可以用带标签的命令或数据块服务四个外设,使用针对不同外设的数据包包头的虚拟通道ID字段。
虚拟通道ID通过将数据包多路复用到公共传输通道上,使一个串行流能够为两个或多个虚拟外设提供服务。请注意,在单个传输中发送的数据包每个都有自己的虚拟通道分配,并且可以定向到不同的外设。尽管DSI协议允许与多个外设进行通信,但该规范只处理主机处理器与单个外设的连接。连接到多个物理外设的实现细节超出了本文档的范围。
数据类型字段DT [5:0]
数据类型字段指定数据包是长或短数据包类型和数据包格式。Data Type字段,以及长数据包的Word Count字段,通知接收方在数据包的剩余部分中期望有多少字节。这是必要的,因为没有特殊的数据包开始/结束同步代码来指示数据包的开始和结束。这允许数据包传输任意数据,但它也要求数据包头显式指定数据包的大小。
当接收逻辑已经倒数到一个包的末尾时,它应该假定下一个数据要么是一个新包的头,要么是EoT(传输结束)序列。
纠错码
纠错码允许在包头中纠正单比特错误和检测2比特错误。主处理器应该总是计算和传输一个ECC字节。外设应在正向和反向通信中支持ECC。


交叉数据流


多通道的一个应用是在单个显示模块上使用两个或多个独立驱动IC的高分辨率显示。每个驱动IC只对显示设备上的一部分列进行寻址。每个驱动IC捕获并仅显示针对该驱动的数据包内容,而忽略其他数据包。
交叉数据流和双向性
当多个外设具有双向能力时,应该有一种清晰和明确的方法将READ数据、事件和状态从预期的外设返回给主处理器。BTA和虚拟通道ID的组合确保不会混淆哪个外设应该响应来自外设的任何请求。返回的数据包应标记发送该数据包的外设的ID。
双向性的结果是任何来自主处理器的传输都不应该包含超过一个需要外设响应的数据包。这适用于通过Link连接到主机处理器的外设的数量。

往期推荐

01

牛芯半导体亮相ICDIA 2025展会,斩获“2025中国创新IC-强芯评选”生态贡献奖

▲ 点击阅读

02

牛芯半导体成功入围2024年度深圳高成长企业TOP100

▲ 点击阅读

03

牛芯DDR5 IP取得突破性进展

▲ 点击阅读


牛芯半导体(深圳)有限公司(简称“牛芯半导体”)成立于2020年,聚焦接口IP的开发和授权,并提供相关整体解决方案,致力成为全球领先的IP供应商。


牛芯半导体在主流先进工艺布局SerDes、DDR等中高端接口IP,产品广泛应用于消费电子、网络通信、数据存储、人工智能、汽车电子、医疗电子等领域。


未来,牛芯半导体持续响应IP市场需求,适应不断演进的接口技术和日益拓展的接口互联场景,赋能数智时代下的千行百业。

【声明】内容源于网络
0
0
牛芯半导体
牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
内容 0
粉丝 0
牛芯半导体 牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
总阅读0
粉丝0
内容0