9.6.2. 功能描述

9.6.2.1. DSI介绍

DSI模块简单接口如下 DSI发送接收接口关系图 ,1对时钟信号,按照应用的不同,数据信号可选1-4对,其中只有DSI_data0信号对为双向,其余为单向,并且DSI_data0仅在LP模式(Low-power mode,低速模式)下允许双向。

DSI主设备DSI可进行LP发送、LP接收以及HS发送(High-speed mode,高速模式),从设备显示器可进行LP接收、LP发送以及HS接收。

主设备可以发送像素数据或者命令给从设备,也可以读取从设备状态或者像素信息,接口遵循DPI-2以及DBI-2。

../../../_images/dsi_conn.png

图 9.47 DSI发送接收接口关系图

9.6.2.2. DSI信号电平

DSI通过驱动电平来决定信号对的状态。

HS模式的信号为差分对,高速传输;而LP模式则独立驱动两个信号线,低速传输,低功耗;如下 DSI信号电平

../../../_images/dsi_signal.png

图 9.48 DSI信号电平

这意味着HS模式只有HS-0,HS-1两种电平状态,LP模式有LP-00、LP-01、LP-10和LP-11四种电平状态,如下 DSI电平信号关系表

表 9.3 DSI电平信号关系表

信号状态

DP(差分对正极)

DN(差分对负极)

HS-0

HS低

HS高

HS-1

HS高

HS低

LP-00

LP低

LP低

LP-01

LP低

LP高

LP-10

LP高

LP低

LP-11

LP高

LP高

9.6.2.3. 数据包结构

DSI数据包分为长包和短包结构。

一个长包数据包括32位包头,即8位Data ID、16位WC、8位ECC;0-65535个字节数据;以及16位checksum,一个长包长度为6-65541字节,如下 长包结构

../../../_images/dsi_long_packet.png

图 9.49 长包结构

  • SOT – Start of Transmission

  • ECC – Error-Correcting Code

  • EOT – End of Transmission

一个短包包括8位Data ID、2字节数据,8位ECC,如下 短包结构

../../../_images/dsi_short_packet.png

图 9.50 短包结构

其中Data ID组成如下 Data ID ,VC为Virtual Channel ID;DT为Data Type。

../../../_images/dsi_id.png

图 9.51 Data ID

9.6.2.4. 多通道数据分配

如上所诉,DSI根据应用不同使用1-4对数据信号通道。

在PHY和更高功能块之间的层可支持多通道操作,作为发送者,这一层在N个通道上分配一系列数据字节,其中每个通道是一个独立的接口,串行数据由byte0开始依次从Lane 0到Lane N分配,如下 数据分配 。作为接收者,则反之。

../../../_images/dsi_distribute.png

图 9.52 数据分配

9.6.2.5. Command模式

Command模式是指DSI主设备采取发送命令和数据的形式控制从设备显示器。

从设备显示器存在本地寄存器和压缩或未压缩的帧缓冲器,DSI主设备使用命令模式对寄存器和帧缓冲器进行写入和读取数据。此类从设备显示器可以在某些场景应用中关闭DSI接口传输减少功耗。

DSI处理器通过向显示器发送命令、参数和数据,间接控制外设显示器的活动,处理器还可以读取显示设备的状态或者帧缓冲器里的内容。

此外,Command模式操作需要双向接口。

与video 模式相比,command模式传输视频像素数据没有太多的时序限制,只需dpivsync_edpiwms来限制连续的像素流数据,如下 command模式

假设数据包长度配置(EDPI CMD大小寄存器中的EDPI_CMD_SIZE)为6个像素数据,每个像素占24位,dpivsync_edpiwms拉高后,当接收到6个像素数据时,WMS(write memory start,0x2C)命令写入command FIFO,在此之后每6个像素数据都产生一个WMC(write memory continue,0x3C)命令,直到dpivsync_edpiwms拉低。若最后dpivsync_edpiwms拉低时像素数据不足6个,则以剩余数据长度发送。

../../../_images/dsi_cmd1.png

图 9.53 command模式

9.6.2.6. Video模式

Video模式是指DSI主设备到从设备显示器的传输采取实时像素流的形式进行传输,包括Burst Mode和Non-burst Mode,而Non-burst Mode又分为带Sync Pulse和带Sync Event。

正常操作中,从设备显示器依赖于DSI主设备以足够的带宽提供图像数据以避免显示图像中的闪烁或其他可见异常。此外,Video模式中数据传输只能用HS模式传输。

一些video模式架构显示器可以包括简单的定时控制器和部分帧缓冲器,用于在待机或低功耗下保持部分屏幕或低分辨率图像模式,这允许DSI接口关闭以减少功耗。

Video模式传输像素数据存在一定的时序要求,以下为传输数据包中关于时序成分的定义:

  • VSS:DSI Sync Event Packet,V Sync Start

  • VSE:DSI Sync Event Packet,V Sync End

  • BLLP:DSI Packet,非像素数据包传输或者LP模式传输包括BTA(Bus Turn Around)操作时间段

  • HSS:DSI Sync Event Packet,H Sync Start

  • HSA:DSI Blanking Packet,Horizontal Sync Active或者LP模式

  • HSE:DSI Sync Event Packet,H Sync End

  • HFP:DSI Blanking Packet,Horizontal Front Porch或者LP模式

  • HBP:DSI Blanking Packet,Horizontal Back Porch或者LP模式

  • RGB:DSI Packet,任意的像素流数据或者空包

  • LPM:LP模式包括BTA

对于所有的时序,一帧的第一行以VSS开始,其他行则以VSE或者HSS开始。

注意时序同步包(例如VSS和HSS)在时间上的位置是最重要的,因为这直接影响显示面板的视觉效果。

带Sync Pulse的Non-burst Mode:

此模式目标是通过DSI串行通信准确地传送DPI类型的时序信息,包括匹配的DPI像素传输速率,以及同步脉冲等时序的宽度。

因此使用发送同步脉冲的开始和结束的分组来定义同步周期,如下 sync pulse模式

其中相关的data type:VSS(0x01)、VSE(0x11)、HSS(0x21)、HSE(0x31);显示为HAS、HBP和HFP的周期由消隐包填充,计算长度以匹配外围显示设备的数据表指定周期,处于这些时间段,DSI置于LP-11状态以节省功耗。

../../../_images/dsi_sync_pulse.png

图 9.54 sync pulse模式

带Sync Event的Non-burst Mode:

此模式是带Sync Pulse模式的简化,仅传输每个同步脉冲的开始,如下 sync event模式

从设备显示器可以根据需要将接收的每个同步时序包重新生成同步脉冲。

../../../_images/dsi_sync_event.png

图 9.55 sync event模式

Burst Mode:

此模式中,像素数据包可以使用时间压缩在较短的时间内完成传输,这可以降低DSI的总体功耗,并且为链路上任何方向的其他数据传输提供更大的时间块,如下 burst模式

../../../_images/dsi_burst1.png

图 9.56 burst模式

9.6.2.7. APB Slave Generic Interface

Video 模式以及command模式的像素数据通过eDPI接口传输,此外DSI模块存在APB GEN接口传输通用信息,例如应用于显示屏的初始化配置,LP-RX等。

DSI模块支持MIPI规范的读写命令数据包的传输,这些数据包是使用APB寄存器访问构建的。

GEN_PD_CFG寄存器基于操作有两个不同的功能,当发送命令模式数据包时,写入该寄存器的数据作为有效数据发送;当进行读取操作时,则该寄存器内容为读取数据。

GEN_PH_CFG寄存器包含命令模式包头类型(Data Type)以及头数据字长,写此寄存器则触发数据包的传输,这意味着在长包的传输中,长包数据需提前写进GEN_PD_CFG。

可通过GEN接口传输的有效数据包类型如下:

  • Generic Write Short Packet 0 Parameters(0x03)

  • Generic Write Short Packet 1 Parameters(0x13)

  • Generic Write Short Packet 2 Parameters(0x23)

  • Generic Read Short Packet 0 Parameters(0x04)

  • Generic Read Short Packet 1 Parameters(0x14)

  • Generic Read Short Packet 2 Parameters(0x24)

  • Maximum Read Packet Configuration(0x37)

  • Generic Long Write Packet(0x29)

  • DCS Write Short Packet 0 Parameters(0x05)

  • DCS Write Short Packet 1 Parameters(0x15)

  • DCS Read Short Packet 0 Parameters(0x06)

  • DCS Write Long Packet(0x39)

CMD PKT状态寄存器显示相关联的FIFO状态。

9.6.2.8. Virtual Channels

使用virtual channels,当显示器具有不同的virtual channels标志时,系统可以同时寻址多个显示器。

当video mode使用虚拟通道时,可以使用GEN接口在传输视频流数据时发出命令,这样就可以通过正在进行的视频流传输中发送命令,寻址不同的虚拟通道,从而启用具有多个显示器的接口。

在video mode期间,视频流传输具有最大优先级,因此来自GEN 接口的传输仅在视频流传输中存在可用时间时才进行。

当command mode 使用虚拟通道时,可以使用GEN接口在command mode传输时发出更多的命令,这也解决了具有不同虚拟通道的多个显示器的问题。

因为在command mode下,与video mode相比没有特定的定时要求,所以优先考虑视频流数据包,然后再考虑通用接口数据包。

9.6.3. 编程指南

9.6.3.1. 初始化流程

DSI初始化流程配置如下 DSI初始化流程图

../../../_images/dsi_cfg.png

图 9.57 DSI初始化流程图