显示协议学习

HDMI

HDMI 系统架构由信源端和接收端组成。某个设备可能有一个或多个 HDMI 输入,一个或多个 HDMI 输出。这些设备上,每个 HDMI 输入都应该遵循 HDMI 接收端规则,每个 HDMI输出都应该遵循 HDMI 信源端规则。如图所示,HDMI 线缆和连接器提供四个差分线对,组成 TMDS 数据和时钟通道。这些通道用于传递视频,音频和辅助数据。

另外,HDMI 提供一个 VESA DDC 通道。 DDC是用于配置和在一个单独的信源端和一个单独的接收端交换状态。可选择的 CEC 在用户的各种不同的音视频产品中,提供高水平的控制功能。可选择的 HDMI 以太网和音频返回(HEAC),在连接的设备中提供以太网兼容的网络数据和一个和 TMDS 相对方向的音频回返通道。

aa76c89224624966ae73731e11d48a2f.png

 音频,视频和辅助数据在三个 TMDS 数据通道中传输。一个 TMDS 时钟,典型地是以视频像素速率,在 TMDS 时钟通道中传输,它被接收端做为一个频率参考,用于对三个 TMDS 数据通道的数据复原。信源端,TMDS 编码将每个 TMDS 数据的 8 比特数据转换成 10 位的DC‐平衡的最小变换序列,串行地,以每个 TMDS 时钟周期 10 位地,在差分线对上发送。视频数据,一个像素可以是 24,30,36,48 比特。视频的默认 24 比特色深,在等于像素时钟的 TMDS 时钟上传递。更高的色深使用相应的更高的 TMDS 时钟率。视频格式 TMDS时钟率低于 25M(比如 13.5M 的 480i/NTSC)可以使用重复像素发送的策略。视频像素可以用 RGB, YCbCr4:4:4, YCbCr4:2:2 格式编码。为了在 TMDS 通道上发送音频和辅助数据,HDMI 使用一个报文结构。为了得到音频和控制数据所需要的高可靠性,这个数据报文用 BCH 纠错码,使用特殊的差错矫正,对发送的 10 位数据编码。基本的音频功能,由单一的 IEC 60958 L0PCM 音频流组成,采样率为 32KHz, 44.1KHz ,48kHz. 这可以解决任何标准立体声。可选择地,HDMI 可以传输采样率为 192KHz 的音频流,使用 3 到 8 个通道。HDMI 可以传递 IEC61937 压缩音频流,比特率为 24.57 Mbps。HDMI 也可以传递 2-8 通道的单比特音频和一个压缩形式的单比特音频(DST).DDC 用于信源端,读取接收端的扩展显示标识数据(E‐EDID), 为了发现接收端配置和性能。

专业名词

HDMI:High Definition Multimedia Interface 高清多媒体接口,传输音视频。

HDCP:High-bandwidth Digital Content Protection 版权保护相关的,通过IIC获取。

EDID:Extended Display Identification Data 扩展显示标识数据,包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等。

DDC:Display Data Channel 显示数据通道,其实就是IIC通道,用来获取EDID、HDCP密钥等内容。

HDP:Hot Plug Detect热插拔检测。

CEC:Consumer Electronics Control 用户电气控制,CEC可以控制从设备的一些状态,即遥控器功能。

TMDS:Transition Minimized Differential Signaling最小化传输差分信号,一种差分传输技术

HEAC:HDMI Ethernet and Audio Return Channel 以太网和音频返回,HEAC需要额外的phy才能支持。

Source:A device with HDMI output 带有HDMI输出的设备

Sink:A device with an HDMI input 带有HDMI输入的设备

CTS:Compliance Test Specification 合规性测试规范

信号和编码

一个 HDMI 连接包括三个 TMDS 数据通道,一个 TMDS 时钟通道。TMDS 时钟通道以某种定常的速率运行,该速率和视频的像素率成比例。在每个 TMDS 时钟通道周期中,三个 TMDS 数据通道每个都发送 10 比特数据。这个 10 位的字被编码,采用某种不同的编码技术。输入到信源端的输入流,包含视频像素,数据包,和控制数据。数据包包括音频数据和辅助以及相关的纠错码。这些数据项被不同地处理,在每个 TMDS 通道的 TMDS 编码器中表示为或者 2 比特控制数据,或者 4 比特报文数据,或者 8 比特视频数据。信源端在每个时钟周期内,对这些数据类型进行编码或者对某个边界字符编码。

channel0传输B数据和HSync、VSync channel1传输G数据和CTL0、CTL1 channel2传输R数据和CTL2、CTL3

6e30f65c7fe745eb8dc0714c7356b618.png

 显示模式

  HDMI 连接可以处于三种操作模式之一:视频数据周期,数据岛周期,控制周期。在视频数据周期,活跃的视频线中发送视频像素。在数据岛周期中,音频和辅助数据使用一系列数据包来发送。在两个非控制周期之间是控制周期。下图示例各周期的关系:

  Control Period控制周期:主要用于控制接下来传输的是data island还是video data

  Data Island Period数据岛周期:各种类型的包信息,包括音频数据包、辅助数据包、图像信息包等

  Video Data Period视频数据周期:视频像素数据,HDMI可以传输RGB和YUV两种格式的像素数据

1c3d93d6ef774d58a01808b5a3b264c3.png

 f5651a6c6fab4e3e880639f9cd472058.png

 

  • 左边是Control period:传输有Hsync、Vsync与Preamble。占用1、2两个通道共4bit输入;channel 0传输HSYNC, VSYNC, channel1[1:0]和channel2[1:0] 传输Preamble,用来判断接下来输入的是Video Data还是Data Island。

  • 中间是Data Island period:传输有Hsync、Vsync,以及两个Packet Header与Packet,占用三通道共12bit输入,Channel0[3:2]用于传输Data Island Header(包头),Channel1[3:0]与Channel2[3:0]用于传输Data Island Content(包内数据)

  • 右边是Video Data period :视频信号经过编码生成三路TMDS数据通道,共24位视频流数据,输入到HDMI Tx中。24位像素的视频信号通过TMDS通道传输,将每通道8位信号转换为10位,在每个10位像素周期传送一个最小化的信号序列,视频信号将被调制为TMDS信号传送出去

  1. 控制模式

数据岛或者视频数据传输周期之前,每一个TMDS通道包含2bit的控制数据,一共6位控制数据。

f7f7e8648e8b4c21a8973b874d71b259.png

 

  1. Video Data Period

视频数据周期用来传输视频线的像素,每个视频数据周期以报文头为前导,在报文头之后,视频数据周期以两个字符开始,做为视频前导保护边界对于数据周期,没有末尾保护边界。每通道 8 位总共每像素 24 位

  1. Data Island Period

数据岛用来携带音频辅助数据的报文。辅助数据包括Info frame和其他用于音视频信息描述的数据。每个数据岛以2个字符长度的前导保护边界开始,并以2个字符宽度的末尾保护边界结束。数据岛周期使用相同的最小化差分编码, TMDS 纠错编码,每通道每 TMDS 时钟传输4 比特,总共12 比特。

 a6fe99cb31ad48f78b6521c4d27d3cb2.png

 数据岛包构造

数据岛内的所有数据都包含在32个时钟数据包中。数据包包括一个数据包头、一个数据包主体(由四个子数据包组成)以及相关的纠错位。每个子数据包包括56位数据,并由额外的8位BCH ECC奇偶校验位保护。

子数据包0和其对应的奇偶校验位组成BCH块0。该块被映射到通道1和通道2的位0上。通过这种方式,BCH块0的64位在32个像素的过程中传输。同样,BCH块1(子数据包1加上奇偶校验位)被映射到通道1和通道2的位1上。

在下面的表格中,头部字节表示为HB0、HB1和HB2,子数据包字节表示为SB0到SB6。

子数据包0的第0到6字节(SB0-SB6)也被指定为数据包字节0到6(PB0-PB6)。

子数据包1的第0到6字节(SB0-SB6)也被指定为数据包字节7到13(PB7-PB13)。

子数据包2的第0到6字节(SB0-SB6)也被指定为数据包字节14到20(PB14-PB20)。

子数据包3的第0到6字节(SB0-SB6)也被指定为数据包字节21到27(PB21-PB27)。

fe49ca65dc1f4ea6b1a04f03ae3e8009.png

 

Control And Configuration

HDMI包括四个独立的通信通道:TMDS、DDC以及可选的CEC和HEC。

  1. TMDS(Transition Minimized Differential Signaling)通道:用于传输音频和视频数据以及辅助数据,包括描述活动音频和视频流的AVI和Audio InfoFrames。

  2. DDC(Display Data Channel)通道:由HDMI源设备用于读取E-EDID数据结构,以确定Sink设备的能力和特性。

  3. HDMI源设备通常会读取Sink的E-EDID,并仅传递Sink支持的音频和视频格式。此外,HDMI Sink设备也要检测InfoFrames并适当处理接收到的音频和视频数据。

  4. CEC(Consumer Electronics Control)通道(可选):用于更高级别的用户功能,例如自动设置任务或通常与红外遥控器使用相关的任务。

  5. HEC(HDMI Ethernet Channel)通道(可选):作为一个基于100Base-TX的高速双向数据通道。有关更多信息,请参阅Supplement 2。

这些通道允许HDMI设备之间进行复杂的通信,以便传输音频、视频和其他信息,并支持各种功能,包括自动设置和远程控制。

b27784e5b5f14826b4d885e9e4081e04.png

MIPI-DSI

MIPI-DSI属于MIPI子协议,为 Display工作组制定的关于显示模组接口的规范标准。MIPI-DSI使用D-PHY作为物理层传输。D-PHY采用1对源同步的差分时钟和1~4对差分数据线来进行数据传输。数据传输采用DDR方式,即在时钟的上下边沿都有数据传输

LP(单信号0V~1.2V):低功耗模式,10Mbps传输速度、异步传输,主要用于传输控制命令。

HS(差分信号100mv~300mv):高速模式,80M~1Gbps传输速度、同步传送,用于传输高速图像数据。

HS差分和LP单信号如图所示

7b5f9183a9f648d3a336eea8763a7b51.png

D-PHY三种模式

其中前两种模式都属于LP状态下的两种模式,高速模式属于HS状态, Escape Mode被定义为LP状态下的一种比较特殊的操作模式。

Escape Mode:数据通道的可选操作模式,允许以非常低的功率传输低比特率命令和数据。

在正常的操作时,数据通道处于高速模式或者控制模式。 Burst Mode和Escape Mode之间不可以直接来回切换,必须通过Control Mode进行中转,即 Burst Mode ↔ Control Mode ↔ Escape Mode

165503bf2c8246f9bce7141af5be3c14.png

MIPI-DSI利用单端和差分信号线进行数据传输,LP模式下进行单端数据传输,HS模式下进行差分数据传输,使用可以双向传输的Data0+/Data0-数据Lane进行配置。

MIPI-DSI数据传输格式

MIPI-DSI的数据传输格式以数据包为基本单元传输,数据包的类型分为 短数据包和长数据包。

  • 短数据包:4 bytes(固定长度)主要用于传输命令、读写寄存器;

数据包包头:

· 数据标识符(DI)*1byte:含虚拟数据通道【7:6】和数据类型【5:0】。

· 数据包*2 byte:要传送的数据,长度固定两个字节。

· 误差校正码(ECC)*1byte:可以把一个位的错误纠正。

  • 长数据包:6~65541 bytes(动态长度)主要用于传输大量图像数据或者部分控制命令。

数据包报头(4 bytes):DI,WC,ECC

· 数据标识符(DI)*1byte:含虚拟数据通道【7:6】和数据类型【5:0】。

· 字节数(WC)*2 byte:要传送的数据,长度固定两个字节。

· 误差校正码(ECC)*1byte:可以把一个位的错误纠正。

· 有效传送数据(6~65541 bytes):最大字节=2^16。 

· 数据包页脚(2 byte):校验。

 DSI四层模型

73aec935131345aebd6287be7c5ab875.png

 

从下往上依次为物理层、通道管理层、协议层、应用层,四层各司其职,共同实现DSI协议。下面先简单介绍下四层的作用,再重点讲解这四层的工作原理、详细作用。

  • 物理层:硬件电路控制,将所有的数据转换为电平信号,以输出或者输入。这一层之间的连接就是DSI的接口连接了,指定传输解释,时钟等

  • 通道管理层:对数据进行管理,将数据分给给Data通道或者从Data通道接收到后进行重组,以便交给下一层,接收端从通路中获得数据并合并

  • 协议层:对数据进行封包、检验等。主要进行数据的检验。

  • 应用层:初始化参数或者图像数据就在这一层发送或者接收。

mipi传输模式

High-Speed100mv~300mv也叫 Burst Mode,用于高速的数据传输,其实就是图像数据传输;在这种模式下,吞吐率可以达到 2500 Mbps,也就是 2.5Gbps/per Lane;

Low-Power0~1.2V模式用于一些控制信息,比如,传一些指令之类的;在这种模式下的最大速率是 10Mbps;

7286e5783f4546ca92ac8dcbd301eefb.png

 

如图所示,HS 代表了 High-Speed,HS模式下,为差分信号传输,信号电平在100mV~300mV(200mV的压摆);LP模式下,为单端信号传输,信号电平在0~1.2V(1.2V压摆)。

整个高速收发的开始和结束的时序图如下所示:

bf7ddb98136f4f99981f70246552d5d0.png

 3e55bd69983f42c791ea1ea3f881bb48.png

 里面标注了 LP-11 到 LP-01,在到 LP-00 的整个过程;可以看到,这里是需要有持续时间的要求的

396a571e0e824fc89369b86132259e6c.png

液晶基础时钟概念通用概念

PORCH:液晶时序当中,常常用到的一些参数HSYNC、HBP、HACTIVE、HFP,VSYNC、VBP、VAVTIVE、VFP,概念如下:

HFP: Horizon front porch

HBP: Horizon back porch

VFP: Vertical front porch

VBP: Vertical back porch

HACTIVE: Horizon display period

VAVTIVE: Vertical display period

H-total = HSYNC+HBP+HACTIVE+HFP

V-total = VSYNC+VBP+VACTIVE+VFP

简单说H-total 和V-total分别表示,为了传送一帧图像,每一行数据需要实际传送的像素数(H-total )和总共需要传输几行(V-total),而这两个值不等于分辨率原因在于图像传输有一些时序要求,方便数据的同步等,所以每一行都会用一些无用(非图像数据)的像素(pixel)传输。

  1. DSI时钟概念

Total pixel = H-total x V-total x fps(一般是60) Total pixel表示1S传输多少个像素

Bitclk = Total pixel x 位深/lane number Bitclk表示1S内一个数据通道传输的Bit数

Byteclk = bitclk/8

pclk(Dsi pixel clock) = (Byteclk * lane number)/bpp(byte) = Total pixel bpp简单说就是表示一个像素点需要用几个Byte表示,所以pclk就是表示1s内所有的lane传输的总Byte数/每个像素占用的字节数 = 所有的lane传输的总pixel数,与Total pixel 值相等

UI = 1/Bitclk UI是MIPI时序中很多时间要求的基本单位,我们可以从液晶IC的时序要求手册上看到它的身影,很多时序的上升沿、时序间隔等以UI为单位,用xx UI来表示时序要求。

实际测的MIPI时钟:= Bitclk /2 (因为是双边沿采样,一个时钟可以穿两个bit的数据)

对于任何液晶接口,其时钟计算的基本原则就是:时钟 = 1s内液晶接口传送的数据量,很多平台时钟概念有不同的表示,但是最终都是依赖这个计算原则来算的。所以mipi接口时钟(就是你用示波器去测量Clock lane的波形频率,是最终体现在接口上的实实在在的能测量到的时钟)公式如下

dsi clk = Bitclk / 2 = H-total x V-total x fps x 位深 / lane number / 2

有的平台最终结果还要乘以1.2或者加上100M等

有的平台计算Bitclk:Bitclk = Total pixel x 位深 x 1.2 / lane number 加主要是为了提高时钟,因为MIPI传输协议中,实际传输数据还会包括包头、包尾等更多的非图像数据,而没有乘以1.2计算出来的时钟是刚好够传输图像的时钟,如果不乘以1.2,那么时钟就会过小,因为被协议数据占据了一部分时钟,这样会导致时钟过低,从而液晶无法正常显示。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值