MIPI-DSI学习笔记(一)

MIPI(Mobile Industry Processor Interface)协议是由ARM、NOKIA、TI等公司成立的一个联盟,目的是将手机内部的接口如摄像头、显示屏、射频/基带等接口标准化,从而减少移动设备的设计复杂性并增加其灵活性。

MIPI非常复杂,包含许多协议,本文重点在于讲述其中的DSI协议。

DSI(Display Serial Interface)是用于将图形数据输出到显示设备的接口,接下来,基于我将基于官方协议dsi version 1.3的理解,将其中的重点进行讲述。

1 DSI 结构

如下图fig.1为DSI发送端与接收端的连接关系。

基于上图我们可以知道,两端的连接分为clk与data,其中1条clk差分线为单向传输,即由Host device传输至Periphral,1~4条data差分线数量可配置,而其中,data0可在LP模式下支持双向传输,其余线仅支持单向传输(如果有);

2 DSI 分层

DSI 根据功能划分,将接口分为4个层次,如图fig.2所示:

2.1 PHY 层

         PHY层即物理层,是利用电路控制,以时钟机制将电路信号转换为串行输入\输出的bit流。物理层定义了clock 和data lane的传输介质,电学参数和时序关系。

2.2 Lane Manegement Layer

         为了调控数据传输性能,DSI的data lane的数量是可变的。根据带宽的大小,可将数据lane的数量在1~4之间调整。发送器将数据流分流为一或多个lane进行传输,接收器将一或多个数据分流整合为一个数据流。

2.3 Low Level Layer

在协议层,DSI解释了如何将字节流封装成Packet,并且解释了如何生成报头信息。发送端在发送数据的时候,会将数据按照信息类型进行封装,完成ECC(Error-checking)码和CRC码的添加。接收数据时,将依据ECC码和CRC码对数据进行完整性和正确性的检错纠错。

2.4 Application Layer

应用层是对传输数据的更高级的编码和解释,数据可能是具有指定格式的像素或编码的位流组成,也可能是显示模块内部的命令组成。在发送端对发送的命令或数据进行初步编码转化为MIPI-DSI所规定的格式,而在接收端则将接收的数据还原为应用模块所支持的数据格式及时序要求。

3 Command and Video Mode

DSI 支持对外设的来个那种基本操作模式,分别为 Command Mode和 Video Mode。

3.1 Command Mode

命令模式指的是事务主要采取将命令和数据发送到外围设备(如包含显示控制器的显示模块)的形式的操作。显示控制器可包括 local register 和 Frame buffer,此时显示设备可以从自身的Framebuffer取数据,这时数据不需要更新的时候,DSI 的Host device就可以休眠从而达到降低功耗的目的Host device 使用命令模式写入和读取register 和 frame buffer。此外,Host device 通过向显示控制器发送命令、参数和数据来间接控制外设的活动。Host device 还可以读取显示模块的register 或Frame buffer 的内容,因此,Command Mode 就需要双端口进行传输,即data 0;

3.2 Video Mode

Video Mode 是指以实时像素流的形式从Host device传输到peripheral的操作。在正常操作中,显示模块依赖于Host device以足够的带宽提供图像数据,以避免显示图像中的闪烁或其他可见伪影,因此Video Mode 只能使用High Speed Mode传输。为了降低复杂性和成本,只在视频模式下运行的系统可以使用单向数据路径,即data 1~4 ;

4 Virtual Channel Capability

DSI spec里面仅定义了Host device 到单个peripheral的处理,因此,DSI又结合了虚拟通道功能,用来处理Host device 与多个peripheral之间的通信。

DSI协议允许最多四个Virtual Channel,使多个外设的流量共享一个公共的DSI链路。例如,在一些高分辨率显示设计中,多个物理驱动器服务于同一个显示面板的不同区域。每个驱动程序都集成了自己的显示控制器,通过DSI连接到主机处理器。使用虚拟通道,显示控制器将数据定向到各个驱动程序,消除了对多个接口或复杂的多路复用方案的需要。Virtual Channel也可以由其中一个通道是双向命令模式通道且第二个通道是视频模式单向通道的设备所使用。Virtual Channel可由Host device接收交错视频的显示模块或DSI桥接设备使用,其中一个通道对应于所述第一场,另一个通道是交错视频帧的第二场。DSI规范对分配给每个用于指定交错字段的虚拟信道的具体值没有要求,为了清晰度,第一个交错的视频字段可以分配为DI[7:6] =2’b00,第二个交错的视频字段可以分配为DI[7:61]= 2'b01,因为最多链接4个显示设备,所以前两位就够用了。

5 DSI Physical Layer

信息通过一个或多个串行数据信号和伴随的串行时钟在主机处理器和外围设备之间传输。通过总线发送高速串行数据的动作称为HS传输或突发。在传输之间,差分数据信号或Lane进入低功耗状态(LPS)。

当接口不主动传输或接收高速数据时,它们应该处于LPS状态。

图3显示了HS传输的基本结构。N为发送的总字节数。

D-PHY底层协议指定最小数据单位为1字节,传输包含整数字节数。

5.1 Data Flow Control

在传输过程中,协议层和PHY层之间不存在握手,不允许协议层限制与PHY层之间的数据传输。数据包的发送和接收应完整且不中断。链路两端的协议层和数据缓冲应始终具有等于或大于PHY层电路的带宽。事实上,设计中应该确保接收方的带宽等于或大于发送方的带宽。

5.2 Bidirectionality and Low Power Signaling Policy

DSI接口中,PHY层和协议层之间有多个信号咳可以控制总线的方向,当Host device发送端需要从外设读取信息例如一个READ 信息或者状态时,就会在EoT后面发起一个Bus Turn-Around (BTA) 的 Command。当Peripheral接收到总线BTA命令时,它的PHY层将TurnRequest作为协议层的输入。这告诉接收协议层,它应该准备向主机处理器发送响应。通常,刚接收到的包告诉协议层,一旦总线可以传输给主机处理器,就应该发送什么信息。在发送它的响应之后,外围设备同样地通过向自己的PHY层发送TurnRequest将总线控制交还给主机处理器。

DSI实现的物理层由1到4个数据通道和1个时钟通道组成。

在Command Mode中,data0 lane应该双向的,其余的可配置数据通道应是单向的。

在Video Mode中,data0 lane 是双向的,也可以是单向的;额外的数据通道应是单向的。

对于这两种接口,clk lane 只能由host device驱动,不能由外设驱动。正向LP Mode传输只能使用data0 lane,并且其反向传输只能使用低功耗模式。

外设应能够接收任何低功率或高速模式的传输。注意,当采用LP模式传输时,传输带宽会大大降低。对于双向通道,数据传输应采用外设到处理器,或反向,仅使用低功耗(LP)模式。

5.3  Command Mode Interfaces

5.4 Video Mode Interfaces

5.5 Bidirectional Control Mechanism

6 Multi-Lane Distribution and Merging

DSI是一个lane可扩展的接口。多通道实现应使用一个单一的公共时钟信号,由所有数据通道共享。

在发送器中,如图5所示,这一层将数据包字节序列分布在N个Lane上,其中每个Lane是一个独立的逻辑和接口电路块。

在接收端,如图6所示,该层从N个通道收集传入的字节,并将这些字节合并为完整的数据包,传递给下面的数据包分解器。

6.1 Multi-Lane Interoperability and Lane-number Mismatch

        所使用的通道数应是一个静态参数。在系统设计或初始配置时,它应该是固定的,不能动态更改。通常,Peripheral的带宽需求及其个对应的Lane配置决定了系统中使用的Lane数量。Host device应配置成支持外设所需的相同数量的Lanes。具体而言,具有N- lane能力的Host device(N > 1)应能够使用更少的lane运行,以确保与具有M 个 lane的外设的互操作性,其中N > M。

6.1.1 Clock Considerations with Multi-Lane 

6.1.2 Bidirectionality and Multi-Lane Capability

Peripheral通常对将数据返回到Host device的带宽要求不高。为了保持设计简单和提高互操作性,所有符合DSI的系统只能在LP模式下使用 Lane 0将数据从Peripheral返回到Host device。

6.1.3 SoT and EoT in Multi-Lane Configurations

由于HS传输由任意数量的字节组成,而字节数可能不是通道数的整数倍,因此有些通道可能会先于其他通道耗尽数据。因此,Lane Management 层在缓冲最后一组小于n字节的字节时,将其“有效数据”信号去断言到的所有Lane中,因为没有进一步的数据。虽然所有Lane都以平行的sot同时启动,但每个Lane都独立运行,可能比其他Lane先完成HS传输,提前一个周期(字节)发送EoT。链路接收端的N个物理层并行收集字节,并将它们送入Lane 管理层。通道管理层重构传输中的原始字节序列。图8和图9说明了在不同的channal 和Packet 长度时终止HS传输的各种方式

(1):能被2整除和不能被2整除的情况说明:

(2):能被3整除和不能被3整除的情况说明:

6.2 Multi-DSI Receiver Configuration with DSI Sub-Links

6.2.1 Architecture for a Multi-DSI Receiver Configuration

通过使用DSI子链路分割DSI链路连接到两个、三个或四个DSI接收器,这个配置选项允许一个DSI 发射机分成两个、三个或四个共享一个公共逻辑时钟的子链路,如图Fig.10所示。使用普通的逻辑时钟通常可以最大限度地减少子链路和一个DSI发射机之间的skew,并增加一个DSI发射机支持的DSI链路连接数。在应用处理器中,拆分DSI链路可以增加个DSI接收器连接到一个DSI发射器。随着面板分辨率的增加,需要多个DSI链接,以便在不添加单独的DSI链接的情况下将显示流路由到面板的不同部分。多接收器配置通常用于将一个DSI发射器连接到一个显示面板,面板模块包含多个DSI 接收器,它们将显示数据路由到面板的各个部分。如电脑的多屏幕显示等应用。

 6.2.2 Lane Mapping for a Multi-DSI Receiver Configuration

多个dsi发送器对用多个接收器时,按照单channal的方法处理。

7 Low-Level Protocol Errors and Contention 

以下部分规定了检测低级协议 错误、争用恢复以及使用 DSI 的主机处理器和外围设备的相关定时器所需的最低功能。

 7.1 Low-Level Protocol Errors

PHY 中的逻辑可以检测某些类别的低级协议错误。这些错误应通过PHY-协议接口传送到协议层。以下错误应被外设识别并存储为状态位,并且向向Host device。

  • SoT Error  
  • SoT Sync Error 
  • EoT Sync Error 
  • Escape Mode Entry Command Error  
  • LP Transmission Sync Error 
  • False Control Error  

  7.1.1 SoT Error

高速传输开始 (SoT) 的前导序列对任何单比特和多比特错误具有容错性。因此,如果检测到错误,接收到的同步位和后续数据包可能仍然未损坏,但有效载荷数据完整性的置信度较低。该条件应与带有 SoT 错误标志的协议进行通信。 SoT 错误是被外设PHY 检测到。如果需要确认响应,则外设应使用数据类型 0x02(确认和错误报告)发送响应,并将返回数据包中的 SoT 错误位设置给Host device。外设不能根据可能损坏的接收到的 HS 传输采取其他措施。

 7.1.2 SoT Sync Error 

如果 SoT 前导序列以无法预期正确同步的方式损坏,则应标记 SoT Sync错误。 HS 传输中的后续数据可能已损坏,不应使用。

外设PHY 检测到 SoT 同步错误。如果需要确认响应,外设应使用数据类型 0x02(确认和错误报告)发送响应,并将返回数据包中的 SoT 同步错误位设置到Host device。由于数据可能已损坏,因此不应在外设中对任何命令进行解释或操作。外设中不应进行任何 WRITE 活动。

7.1.3 EoT Sync Error

DSI 是一种面向字节的协议。所有未损坏的 HS 传输都包含整数个字节。如果在 EoT序列期间,外设PHY检测到最后一个字节与字节边界不匹配,则应标记 EoT同步错误。如果需要一个确认响应,外围设备应发送一个确认和错误报告包。外设应在向主机处理器返回数据包的错误报告字节中设置 EoT同步错误位。

可能的情况下,外设不应对预期的命令采取任何行动,尤其是 WRITE 活动。由于直到数据包结束才识别此错误,因此在检测到错误之前,某些不可逆的操作可能会占用此位。

7.1.4 Escape Mode Entry Command Error

如果链路开始 Escape Mode 序列,但 Escape Mode Entry 命令未被接收 PHY Lane 识别,则接收器应标记 Escape Mode Entry Command 错误。从发送方的角度来看,这种情况可能是一个合法命令,接收协议无法识别或理解该命令。在双向系统中,链路两端的接收器应检测并标记无法识别的 Escape Mode 序列。

只有外设会报告此错误。

7.1.5 LP Transmission Sync Error

如果在低功耗传输结束时接收到的数据未同步到字节边界,则该错误标志被置位。在双向系统中,链路两端的接收器应检测并标记 LP传输同步错误。

只有外围设备会报告此错误。

7.1.6 False Control Error

如果外设检测到 LP-10(LP 请求)之后没有跟随有效转义或turn around 序列的其余部分,或者如果它检测到 LP-01(HS 请求)之后没有桥接状态 (LP-00),则错误控制错误应在错误状态寄存器中被捕获,并在下一次 BTA 后报告给主机。此错误 应在本地标记到接收协议层,例如当主机检测到 LP-10 后没有跟随有效转义或turn around序列的 个余数时。

通信双方,错误与检测报告的分类如下图所示

 8 DSI Protocol

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

 8.1 Multiple Packets per Transmission

在其最简单的形式中,传输可能包含一个数据包。如果要传输很多数据包,如果单独发送个数据包,LPS 和高速模式之间频繁切换的开销将严重限制带宽,例如每次传输一个数据包。(PHY在发送SoT之后,才能在HS模式下传输数据)

DSI 协议允许连接多个数据包,这大大提高了的有效带宽。这对于诸如外围设备初始化之类的事件很有用,在这些事件中,许多寄存器可能会在系统启动时使用单独的写入命令加载。PHY层有两种数据传输模式,HS和LP传输模式。

发送器 PHY 向接收器发出 SoT 序列,之后可以在 HS 模式下传输数据或个命令包。单个 HS传输中可能存在多个数据包,并且始终使用专用 EoT序列在 PHY 层发出传输结束信号。

为了增强系统的整体鲁棒性,DSI 在协议层定义了一个专用的 EoT 数据包 (EoT),用于发出 HS 传输结束的信号。为了与早期 DSI 系统向后兼容,可以启用或禁用生成和解释此 EoT 的功能。

图 19 中的上图说明了在禁用 EoTp支持的情况下单独发送多个数据包的情况。在 HS 模式下,数据包之间的时间间隔应导致每个数据包的单独 HS 传输,由 PHY 层在数据包之间发布 SoT、LPS 和 EoT。图 19 中的底部图展示了在单个 HS 传输中连接多个数据包的情况。

图 20 描述了启用 EoT生成的 HS 传输情况。在图中,EoT短数据包以红色突出显示。上图说明了主机打算发送一个短的数据包,然后是使用两个单独传输的长数据包的情况。在这种情况下,在每次传输结束之前都会生成一个额外的 EoT短数据包。与禁用 EoT生成的情况(即系统仅依赖 PHY 层 EoT 序列发出HS 结束信号)相比,此机制提供了更稳健的环境,但是增加了开销(每次传输四个额外字节)传播。通过在单次传输中发送多个长数据包和个短数据包,可以最大限度地减少启用 EoTp 带来的开销,如图 20 中的底部图表所示。

  8.2 Packet Composition

数据包的第一个字节,即数据标识符 (DI),包括指定数据包类型的信息。

例如,在显示应用程序中的视频模式系统中,数据包的逻辑单元可以是一个水平显示行。

命令模式系统发送命令和一组相关的参数,参数的数量取决于命令类型。

数据包的大小分为两类:

短数据包:长度为4个字节,短数据包用于大多数命令模式命令和相关参数。其他短数据包传送事件,如 HSync 和 VSync 边缘。因为它们是短数据包,它们可以将准确的时序信息传送到外设的逻辑。其结构如下图所示:

Data ID 简称为 DI:1 个 Byte,使用高2位 [7:6] 表示virtual channal。

Data 0 和 Data 1:分别为 1 个 Byte,表示要传输的数据;

ECC:1 个Byte;

长数据包:一个长包应由三个元素组成:一个 32 位包头(PH)、一个具有可变字节数的特定应用数据有效负载和一个 16 位包尾(PF)。主要用用于传输大量图象数据或部分控制命令。

Data ID :1 个 Byte,使用高2位 [7:6] 表示Virtual Channal。

WC(Word Count):占 2 个 Bytes,表示要传输的数据数据长度,所以 传输的有效数据长度可以从 0 ~ 65535;

ECC:1 个Byte;

Data 0 ~ Data WC-1:实际有效的数据;

CheckSum:2 Bytes 的校验和;

数据长度部分范围是 0 ~ 65535,所以整个 Long Packet 的长度范围为:(6~65541);


 8.3 Common Packet Elements

长数据包和短数据包有几个在本节中描述的共同元素,因此可以统一介绍:

8.3.1 Data Identifier Byte

任何数据包的第一个字节是 DI(数据标识符)字节。

下图显示了数据标识符 (DI) 字节的组成。

DI[7:6]:这两位将数据标识为定向到四个虚拟通道之一

DI[5:0]:这六个位指定数据类型。

 8.3.2 Error Correction Code

纠错码允许在数据包标头中纠正1bit的错误和检测 2 bit的错误。

Host device 应始终计算并发送 ECC 字节。外围设备应支持正向和反向通信中的 ECC。

8.4 Interleaved Data Streams 

多通道的一种应用是在单个显示模块上使用两个或多个单独的驱动器 IC 的高分辨率显示器。每个驱动器 IC 仅寻址显示设备上的一部分列。每个驱动程序 IC 仅捕获并显示针对该驱动程序的数据包内容,而忽略其他数据包。

 其数据交错流的实现原理如下:

8.4.1 Interleaved Data Streams and Bidirectionality 

当多个外设具有双向能力时,外设会将 READ 数据、事件和状态从预期的外设返回给主机处理器。 BTA 和虚拟通道ID的组合确保不会混淆期望响应来自外设的任何请求的外设。返回的数据包应使用发送数据包的外围设备的 ID 进行标记。双向性的结果是来自主机处理器的任何传输都应包含不超过个需要外围设备响应的数据包。这适用于通过链接连接到主机处理器的可能是的外围设备的数量。

8.5 Processor to Peripheral Direction (Processor-Sourced) Packet Data Types

从Host device 发送到外设(例如显示模块)的事务类型集如下表所示:

 

 8.6 Processor-to-Peripheral Transactions – Detailed Format Description

8.5节表格中罗列了 Host Peocessor 向外设发送数据的Type,现在根据这些Type对其进行细节说明。

8.6.1 Sync Event (H Start, H End, V Start, V End), Data Type = XX 0001 (0xX1) 

同步事件是短数据包,因此可以准确地表示事件,例如开始和结束的同步脉冲。由于“开始”和“结束”是独立且不同的事件,同步脉冲的长度以及相对于活动像素数据的位置,例如前后显示时序,可准确传至外设。同步事件定义如下:

  • Data Type = 00 0001 (0x01)       V Sync Start 1326 
  • Data Type = 01 0001 (0x11)       V Sync End 1327 
  • Data Type = 10 0001 (0x21)       H Sync Start 1328 
  • Data Type = 11 0001 (0x31)       H Sync End

为了尽可能准确地表示时序信息,V Sync Start 事件表示 VSA 的开始 ,并且还暗示 VSA 第一行的 H Sync Start 事件。类似地,V Sync End事件意味着 VSA 最后一行的 H Sync Start 事件。

隔行扫描视频的第一场遵循相同的规则来暗示 H Sync Start。外围设备(显示器)在接收隔行扫描的第二个视频场时,不应在 V Sync Start 和 V Sync End 时序处暗示 H Sync Start。同步事件应该成对发生,同步开始和同步结束。如果需要传送准确的脉冲长度信息或者单个时间点(事件),则可以将单个同步事件(通常为同步开始)发送到外设。

同步事件可以与消隐数据包连接到,准确传达线路间定时,并避免每个事件在 LPS 和 HS 之间切换的开销。但是请注意,将数据线保持在 HS 模式会带来功率损失。不需要传统同步/消隐/像素时序的显示模块应以高速突发传输像素数据,然后将总线置于低功耗模式,以降低功耗。

推荐的突发大小是像素的扫描线,可能会暂时存储在显示模块上的行缓冲区中。 

8.6.1.1 Sync Event Payloads

V sync 的开始事件 Data0 表示传输数据中是否存在特殊数据,如果 Data 0 =0x00,外设会忽略剩余有效载荷(data1)的内容。如果data0不是0,那么就要根据data1中的进行解释。下表是data0各个位数解释:

 如果data0不是00,那么就要解释data1中的数,data1各个位的解释如下图:

DSI 支持使用在视频模式下运行的显示外设查看3D立体图像。

将数据传送到显示外围设备的方法应在帧开始时使用VSS 中的短包data 1 有效载荷来指定。

Host Processor应在每次更改3D 控制信息时发送 3D 控制信息。

8.6.2 EoTp, Data Type = 00 1000 (0x08) 

该短包用于向数据链路层指示 HS 传输结束。 [MIPI04]定义了由一系列全 1 或 0 组成的 EoT 序列,具体取决于 HS 传输中最后一个数据包 1367 的最后一位。

EoTp 的主要目标是在 HS 传输模式期间增强系统的整体稳健性。因此,DSI 发送器在 LP 模式下发送时不应生成 EoTp。 DSI 接收器的数据链路层应检测和解释到达的 EoTps,而不管传输模式(HS 或 LP 模式)如何,以便将其自身与物理层分离。下图

一个支持EoTp模式的Packet的固有格式如下:

  • Data Type = DI [5:0] = 0b001000 
  • Virtual Channel = DI [7:6] = 0b00
  • Payload Data [15:0] = 0x0F0F
  • ECC [7:0] = 0x01

与 EoTp 关联的虚拟通道标识符固定为 0,而与同一传输中虚拟通道的数量无关。

8.6.3 Color Mode Off Command, Data Type = 00 0010 (0x02) 

Color Mode Off 是一个短数据包命令,它将视频模式显示模块从低颜色模式返回到正常显示操作。

8.6.4 Color Mode On Command, Data Type = 01 0010 (0x12) 

Color Mode On 是一个短数据包命令,用于将 Video Mode 显示模块切换到低色模式以节省功耗。

8.6.5 Shutdown Peripheral Command, Data Type = 10 0010 (0x22) 

Shutdown Peripheral 命令是一个短数据包命令,用于关闭显示模块的视频模式以节省功耗。请注意,接口应保持通电以接收开启、或唤醒命令。

8.6.6 Turn On Peripheral Command, Data Type = 11 0010 (0x32) 

打开外设命令是短数据包命令,用于打开显示模块中的视频模式以进行正常显示操作。

8.6.7 Generic Short WRITE Packet with 0,1,or 2 parameters, Data Types= 00 0011 (0x03), 01 0011 (0x13), 10 0011 (0x23), Respectively

Generic Short WRITE 命令是一种用于向外设发送通用数据的 Short 数据包类型。

完整的数据包长度为四个字节,包括一个ECC字节。

bits[5:4],表示有效参数的个数(0, 1,或2)。

  • bits[5:4] = 00 :0 个 parameter;
  • bits[5:4] = 01 :1 个 parameter;
  • bits[5:4] = 10 :2 个 parameters;

对于单字节参数,该参数应在DI字节之后的第一个数据字节发送,第二个数据字节应设置0x00。

8.6.9 Generic READ Request with 0, 1, or 2 Parameters, Data Types = 00 0100 (0x04), 01 0100 (0x14), 10 0100(0x24), Respectively 

Generic READ Request是一个从外围设备请求数据的短数据包。

返回的数据可以是短数据包格式或长数据包格式。请注意,Set Max Return Packet Size命令限制了返回数据包的大小,以便Host Processor在从外设接收数据时防止缓冲区溢出情况。

如果返回的数据块大于指定的最大返回包大小,则读取响应将需要多次传输。如果所请求的数据块大于最大数据包大小,则Host Processor应在单独的传输中发送多个Generic READ请求。

完整的数据包长度为四个字节,包括一个ECC字节。

两个最高位的bits[5:4],表示有效参数的个数(0, 1,或2)。

对于单字节参数,该参数应在DI字节之后的第一个数据字节发送,第二个数据字节应设置为Ox00。因为这是一个读命令,所以BTA应该由Host Processor根据这个请求进行断言。外设应通过以下方式之一响应通用READ请求:

1.如果外设检测到错误,它会发送确认和错误报告。如果检测到请求中的ECC错误并纠正,则外设在同一次传输中发送请求的READ数据包,并附加Acknowledge and error Report数据包。

2.如果外围设备没有检测到错误,如果启用了Checksum,它将发送具有适当ECC和Checksum的请求的READ包(Short或Long)。

8.6.10 DCS Commands 

对于DCS短命令,Data Identifier Byte 后的第一个字节是DCS Command Byte。

如果DCS命令不需要参数,则第二个有效负载字节应为0x00。如果 DCS 命令需要多个参数,则该命令应作为长包类型发送。

8.6.10.1 DCS Short Write Command, 0 or 1 parameter, Data Types = 00 0101 (0x05), 01 0101 (0x15), Respectively 

DCS短写命令用于向外设(如显示模块)写入单个数据字节。

报文是由一个Data ID字节、一个DCS Write命令、一个可选参数字节和一个ECC字节组成的短报文。如果有有效的参数字节, Data Type [4]应设置为1,如果没有有效的参数字节,应设置为0。如果不需要参数,则参数字节为0x00。如果向双向外设发送DCS短写命令,然后是BTA,除非在host到外设的传输中检测到错误,否则外设应响应ACK触发消息。如果外设在传输中检测到错误,外设应响应与确认和错误报告。如果外设是单向dsi上的视频模式显示,BTA将会被忽略。

哇,DSI spec实在是太多了,不得不分开发了。从一开始的带着自己的理解写,到后面干脆纯翻译了,自己也有点懵懵的,后面的我消化一下再继续发。。。。。。

  • 5
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值