HDMI介绍
HDMI(High-DefinitionMultimedia Interface)又被称为高清晰度多媒体接口,是首个支持在单线缆上传输,不经过压缩的全数字高清晰度、多声道音频和智能格式与控制命令数据的数字接口。HDMI接口由Silicon Image美国晶像公司倡导,联合索尼、日立、松下、飞利浦、汤姆逊、东芝等八家著名的消费类电子制造商联合成立的工作组共同开发的。
HDMI传输原理
HDMI采用TMDS (TimeMinimized Differential Signal)最小化传输差分信号传输技术 , TMDS是一种微分信号机制,采用的是差分传动方式 ,是一种利用2个引脚间电压差来传送信号的技术。每一个标准的HDMI连接,都包含了3个用于传输数据的TMDS传输通道,还有1个独立的TMDS时钟通道,以保证传输时所需的统一时序。在一个时钟周期内,每个TMDS通道都能传送10bit的数据流。而这10bit数据,可以由若干种不同的编码格式构成。
TMDS的原理
每一个 TMDS 链路都包括 3 个传输 RGB 信号的数据通道和 1 个传输时钟信号的通道。每一个数据通道都通过编码算法,将 8 位的视、音频数据转换成最小化传输、直流平衡的 10 位数据。这使得数据的传输和恢复更加可靠。小化传输差分信号是通过异或及异或非等逻辑算法将原始 8 位信号数据转换成 10 位,前 8 为数据由原始信号经运算后获得,第 9 位指示运算的方式,第 10 位用来对应直流平衡。
一般来说,HDMI 传输的编码格式中要包含视频数据、控制数据和数据包(数据包中包含音频数据和附加信息数据,例如纠错码等)。TMDS 每个通道在传输时要包含一个 2bit 的控制数据、8bit 的视频数据或者 4bit 的数据包即可。在 HDMI 信息传输过程中,可以分为三个阶段:视频数据传输周期、控制数据传输周期和数据岛传输周期,分别对应上述的三种数据类型,如下图所示。
HDMI的特点
1、更好的抗干扰性能,能实现最长20米的无增益传输。
2、针对大尺寸数字平板电视分辨率进行优化,兼容性好。
3、支持EDID(注1)和DDC2B(注2)标准,设备之间可以智能选择最佳匹配的连接方式。
4、拥有强大的版权保护机制(HDCP),有效防止盗版现象。
5、支持24bit色深处理,(RGB、YCbCr4-4-4、YCbCr4-2-2)。
6、接口体积小,各种设备都能轻松安装。
7、一根线缆实现数字音频、视频信号同步传输,有效降低使用成本和繁杂程度。
8、完全兼容DVI接口标准,用户不用担心新旧系统不匹配。
9、支持热插拔技术。
HDMI的接口类型
常见的HDMI类型有A、B、C三种类型。其中A型是标准的19针HDMI接口,普及率最高;B型接口尺寸稍大,但是有29个引脚,可以提供双TMDS传输通道。而C型接口和A型接口性能一致,但是体积较小,更加适合紧凑型便携设备使用。接口A、接口B、接口C,如下图所示。
HDMI的数据发送系统程序设计
该系统设计主要由上图几部分组成,分别是时钟模块、HDMI控制模块、图像数据模块,DVI数据输出编码模块。
时钟模块设计
该模块的作用就是产生图像的像素时钟pixel_clk和串化时钟serial_clk,这里调用Xilinx官方的IP实现功能。
HDMI_control模块设计
根据HDMI支持的VGA图像分辨率,输出对应的视频帧行信号。
一行数据包括:Hor Sync(行同步)、Hor Back Porch(行消隐)、Hor Active Video(行规频有效)和 Hor Front Porch(行前肩),VGA的行信号时序图如下图所示。
一场数据包括:Ver Sync(场同步)、Ver Back Porch(场消隐)、Ver Active Video(场规频有效)和 Ver Front Porch(场前肩),VGA的场信号时序图如下图所示。
VGA 时序主要分为行时序和场时序,行时序是以像素为单位的,场时序是以行为单位的。VGA 行时序对行同步时间、消隐时间、行规频有效时间和行前肩时间有特定要求,列时序也是如此,如果其中一部分时序出现问题就会造成显示出现问题,列举部分常用 VGA 分辨率时序参数如下表所示。
- 1. HDMI支持的分辨率参数
显示模式 | 时钟 | 行时序参数(单位:pixel) | 场时序参数(单位:行) | ||||||||
a | b | c | d | e | f | g | h | i | k | ||
640*480@60HZ | 25.175 | 96 | 48 | 640 | 16 | 800 | 2 | 33 | 480 | 10 | 525 |
800*600@60HZ | 40 | 128 | 88 | 800 | 40 | 1056 | 4 | 23 | 600 | 1 | 623 |
1024*768*60HZ | 65 | 136 | 160 | 1024 | 24 | 1344 | 6 | 29 | 768 | 3 | 806 |
1280*720*60HZ | 74.25 | 40 | 220 | 1280 | 110 | 1650 | 5 | 20 | 720 | 5 | 750 |
1280*1024*60HZ | 108 | 112 | 248 | 1280 | 48 | 1688 | 3 | 38 | 1024 | 1 | 1066 |
1920*1080*60HZ | 148.5 | 44 | 148 | 1920 | 88 | 2200 | 5 | 36 | 1080 | 4 | 1125 |
1920*1080*30HZ | 74.25 | 44 | 148 | 1920 | 88 | 2200 | 5 | 36 | 1080 | 4 | 1125 |
- 1. HDMI_control程序接口
名称 | 方向 | 位宽 | 说明 |
clk | I | 1 | 工作时钟 |
rst | I | 1 | 复位信号(active high) |
vs | O | 1 | 输出的场信号 (active high or low 可以设置) |
hs | O | 1 | 输出的行信号 (active high or low 可以设置) |
de | O | 1 | 输出的有效数据信号(active high) |
该模块程序根据根据VGA的帧行信号的参数来设计,这里选用1920*1080*60HZ作为例子进行讲解,该模块的程序代码如下所示。
如上图所示,VS信号(场信号)正常,这里设置VS信号是低电平有效,按照设置的1920*1080@60HZ的帧信号参数输出
如上图所示,HS信号(场信号)正常,这里设置HS信号是低电平有效,按照设置的1920*1080@60HZ的帧信号参数输出;
如上图所示,de信号(场信号)正常,这里设置de信号是高电平有效,按照设置的1920*1080@60HZ的帧信号参数输出。
基于FPGA的HDMI的方块移动演示-CSDN直播