基于FPGA的HDMI视频接口设计

时间:2024-04-08 11:54:20

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直播