HDMI协议

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anpingbo/article/details/72717580

1.  信号定义

Type A:


TMDS Data:采用差分传输,共有三路。

TMDS Data shield:

TMDS clock:A类型的时钟频率小于55MHz,即最大传输165Mpixels/sec。

TMDS clock shield:

SCL:串口通信时钟。

SDA:串口通信数据通路。

CEC:用户可以通过CEC协议对设备进行控制。

Hot Plug Detect:对供电电源进行检测信号,提示电源超过或者不足。

1.  链路层Frame结构

各种信号类型和传输界面如下:


可以将数据分成三种类型:video data、data island、control。具体如下表:



整个传输的帧结构如下:



1.1.      Control

控制preamble信号和HSYNC、VSYNC信号传输。Preamble信号出现在每个video data和data island信号之前,用于确定是哪种信号类型,如下:



1.1.      Video data

这部分传输图像像素,在发送有效图像像素之前,有2bit leading guard band。在链路层,对这部分数据没有要求,但是在物理层其根据TMDS通道产生,如下:

case (TMDS Channel Number):

0: q_out[9:0] = 0b1011001100;

1: q_out[9:0] = 0b0100110011;

2: q_out[9:0] = 0b1011001100;

Endcase

1.1.      Data island

这部分可以传输audio data或者其它附加信息。在传输前,有8bit preamble。然后以2bit leading guard band开始。接下来不同的TMDS通道传输数据如下:

TMDS 1:D0——HSYNC,D1——VSYNC,D2——packetheader1,packet header2,……,D3——1。

TMDS 2,3:D0、D1、D2、D3——packet。

最后为2bit Trailing guard band。其在物理层被翻译为:

case (TMDS Channel Number):

0: q_out[9:0] = n.a.;

1: q_out[9:0] = 0b0100110011;

2: q_out[9:0] = 0b0100110011;

Endcase

整个data island中包含的packet数量范围为:1-18。允许在video data之间出现0个data island。

Packet包含4个子packet,每个子packet含有64bit数据,前56bit为有效数据,后8bit数据为8bit ECCparity。每个子packet都占据TMDS 1、2通道。具体如下:



子packet数据bit位顺序为从对应的TMDS通道pixel顺序由左至右,由TMDS1到TMDS2。

后8bit采用BCH编码,其生成多项式为:


 data island packetdefinitions

Data island数据包包头为32位,前1个字节为数据包类别,2字节包含了包的一些特别信息,最后1个字节为ECC校验。包类型为如下图:



2.4.1 InfoFrame Packet

这个可以传送信息帧的格式,信息帧格式在EIA/CEA-861B标准中进行了定义。包头和数据结构如下:



2.4.2 General Control Packet

这个可以选择发送,用于提高TMDS时钟的稳定性,降低噪声。如果AVMUTE被置1,传输槽会认为无声音和图像传输。


1.  物理层编码

物理层有三对传输线,用于串行发送TMDS数据。

1.1.      Control signal

控制信号包括HSYNC、VSYNC以及CTL0……2。其具体映射到物理传输线上为:



1.1.      Video data

Video数据8bit被编码为10bit,这样可以降低TMDS物理路径上电位转变次数。算法如下:

D

输入数据,8bit

Cnt

记录1和0的差异数量:正数,为1多出的数量,负数为多出0的数量。

Cnt(t-1)是前8bit输入数据的量。

q_m

中间量

q_out

最终10bit输出

N1{x}

X中1的数量

N0{x}

X中0的数量



解码如下:


1.  Video中像素编码方式

1.1.    像素重复

使用HDMI协议,对于像素速率低于25MPixels/s,需要进行pixel的重复发送,比如729X789i。

1.2.    RGB格式



1.1.    YCBCR4:2:2格式


1.1.    YCBCR4:4:4格式




猜你喜欢

转载自blog.csdn.net/anpingbo/article/details/72717580