HDMI
高清多媒体接口(High Definition Multimedia Interface,HDMI),是一种全数字化视频和声音发送接口,可以发送音频及视频信号。
HDMI 1.0 版本于 2002 年发布, 最高数据传输速度为 5Gbps;2013年发布的HDMI 2.0标准的理论带宽可达18Gbps; 而2017 年发布的 HDMI 2.1 标准的理论带宽可达 48Gbps。
从下图可以看到,每个数据都有两根信号线,并且有+和-,这就是差分数据,用两个差分信号线来减少干扰,提高稳定性,并且传输速度也会更快。
HDMI向下兼容DVI(Digital Visual Interface,数字视频接口),DVI只能传输视频信号。
HDMI和DVI接口协议在物理层均使用TMDS标准传输音视频数据
在设计HDMI显示的时候,步骤如下:
1、先设计一个需要分辨率的VGA时序
2、编码
3、并串转化
4、差分输出
TMDS
TMDS,过渡调制差分信号,也被称为最小化传输差分信号。
TMDS中,有四个通道,三个TMDS数据通道和一个TMDS时钟通道。
三个数据通道用来发送所有和音视频数据有关的数据
时钟通道为接收端提供参考频率,方便解码。
HDMI默认使用RGB(RGB888)三个数据通道,当然也可以是亮度和色度信息(YCrCb,444或者422),三个数据通道每个通道都有像素数据、控制信号、辅助信号。
1、链接架构
通道0上传输的数据为:B分量的视频数据,行场同步信号、辅助信号(辅助数据包的头)
通道1上传输的数据为:G分量的视频数据,控制信号CTL0和CTL1、辅助信号(音频数据)
通道2上传输的数据为:R分量的视频数据,控制信号CTL2和CTL3、辅助信号(音频数据)
行同步信号用于告诉接收端一行像素数据是否结束,场同步信号用于告诉接收端一帧像素数据是否结束。
控制信号用于表明接下来是在传输视频数据(视频数据周期)还是辅助数据(数据岛周期)
2、数据周期
不同的数据在TMDS数据通道中在三种不同的周期中发送:视频数据周期(Video Data Period)、数据岛周期(Data Island period)、控制周期(Control period)。
视频数据周期:传输活动视频线的活动像素。
数据岛周期:音频和辅助数据通过一系列数据包传输。
控制周期:当没有视频、音频或辅助数据需要传输时,使用控制周期。
在非控制期间的任何两个周期之间需要一个控制周期。
其中的消隐就是VGA时序中的显示后沿和显示前沿以及同步。
同步时间、显示后沿、显示前沿、有效数据在VESA分辨率标准中可以查到
如果是640×480 60HZ,如图
一、编码过程
在TMDS传输标准中,不论是视频信号、控制信号还是辅助信号,都是以10bit的数据传输,所以需要对这三个信号进行编码,分别采用不同的编码方式。
1、视频数据编码
2、控制信号编码
控制信号用于控制传输视频数据还是音频数据
三个TMDS通道中的每个通道的两个控制信号编码如下
3、差错缩减编码(TERC4)
对辅助数据进行编码
二、操作模式
1、控制数据周期
控制周期用于前导的传输。接收也使用控制周期进行字符同步。
控制数据周期CTL仅仅有以下两种可能(如果是DVI接口,则全为0,因为只传视频数据)
2、数据岛周期
数据岛周期用于传输音频数据和辅助数据的数据包。
数据岛中的前两个数据字符是主保护带(GB),数据岛中的最后两个数据字符是追随保护带,一共两个保护带。
在数据岛之后,所有三个通道都恢复到发送控制字符
通道0的数据岛数据是一个包的头,另外两个通道都是正式的辅助数据
并且有以下可能值
3、视频数据周期
视频数据周期以一个2位的视频前导码开始,视频数据周期没有追随保护带,只有一个保护带。
三、并串转换(串行化)
由编码器产生的TMDS字符串被串行化以在TMDS数据信道上传输。 每个字符的最低有效位(q_out [0])是要发送的第一位,最高有效位(q_out [9])是最后一位。
四、差分输出
串行化、差分输出,都是可以使用原语实现,比起自己写,并且更加方便快速稳定