HDMI协议解析

本文从软件工程师角度对HDMI spec进行解析,基于的spec版本为1.4,也是设备支持最多最成熟的版本,目前最新版本为2.0。

1 概述

HDMI(High-Definition Multiface Interface)是Hitachi, Panasonic, Philips, SiliconImage, Sony, Thomson, Toshiba几家公司共同发布的一款音视频传输协议,主要用于DVD, 机顶盒等音视频source到TV,显示器等sink设备的传输。传输基于的是TMDS(Transition Minimized Differential Signaling)协议。此外,使用TMDS也是DVI标准的主要特点 。

2 物理结构

hdmi_block
上图是HDMI block结构图,可以看出HDMI用于audiovisual source和sink之间的连接,HDMI cable由3组差分信号传输TMDS数据,1组差分信号传输clock。此外,HDMI还有一个DDC的通道连接到sink的EDID。CEC和HEAC都是HDMI的可选协议。
hdmi_pin
HDMI定义了五种类型的connector,上图是最常见的type A。
1-9是TMDS data传输用到的引脚,共有三组;
10-12是TMDS clock传输用到的引脚,共有一组,TMDS clock就是pixel clock;
13是CEC引脚,一种消费电子兼容的传输协议;
14是保留引脚;
15,16是DDC的引脚,DDC是基于I2C协议传输,故引脚为SCL和SDA;
17是接地;
18是+5V power;
19是HPD引脚,用于建立连接。

3 传输

概述

HDMI传输由三组TMDS通道和一组TMDS clock通道组成,TMDS clock的运行频率是video信号的pixel频率,在每个cycle,每个TMDS data通道发送10bit数据。
hdmi_transblock
上图是HDMI传输的示意图,从图中可知,HDMI传输如下四种类型数据:
(1)Preamble控制信息,图中的CTLx,可用来表示后面传输的是data island还是video data。通过channel1和2的D[1:0]传输,占用4bit。
(2)Data Island,即数据包,如Audio数据包。通过3个channel的D[3:0]传输,占用12bit。
(3)Video Data,视频数据。示意图中传输的是RGB格式图像,R,G,B分别通过channel2,1,0传输,每个颜色8bit,共24bit。
(4)HSYNC, VSYNC。使用channel0的D[1:0]传输,占用2bit。
8bit的数据在source经过TMDS encoder后得到10bit数据,经过serializer后串行输出;在sink端先进行复原成10bit的数据,再通过TMDS decoder得到8bit的源数据。
此外,HDMI视频是stream式的传输,不涉及packet式的传输。

hdmi_timing
上图是传输720x480p video的hdmi timing图。
在video data period,有效的video数据进行传输;
在data island period,audio和auxiliary数据以包的形式进行传输;
在control period,CTLx和HSYNC, SYNC进行传输。
data island period和control period都是在消隐区进行。图中行消隐占用138像素,场消隐占45行。
period_encode
上图中是对时序图中描述的三种period分别传输的数据和编码类型进行说明。video数据从8bit/channel encode后变为10bit/channel, data island的packet数据从4bit/channel encode后为10bit/channel, control数据从2bit/channel encode为10bit/channel。

Control Period

hdmi_control_period
只有两种类型的preamble信息组合,CTL0:3=1000代表接下来的是video data period,CTL0:3=1010代表接下来的是data island period。HSYNC, VSYNC此时也有可能发生变化。

Video Data Period

video data period以2个字符(pixel)长度的leading gurad band开始,guard band如下:
ch0: q_out[9:0] = 0b1011001100
ch1: q_out[9:0] = 0b0100110011
ch2: q_out[9:0] = 0b1011001100

Data Island Period

data island period传输audio数据和辅助数据,辅助数据包括Infoframe和其他用于音视频信息描述的数据。data island period以2个字符长度的leading guard band开始,并以2个字符宽度的trailing guard band 结束。guard band如下:
ch0: q_out[9:0] = n.a
ch1: q_out[9:0] = 0b0100110011
ch2: q_out[9:0] = 0b0100110011
data island传输的packet类型和格式详见spec说明。
三个传输阶段的过渡过程如下图所示:
hdmi_tmds_period
(1) 左一是control period, 分别占用三个channel的D[1:0],channel 0传输HSYNC, VSYNC, channel1,2 传输Preamble
(2) 左二是data island period,分别占用了三个channel的D[3:0],channel 0的D[1:0]传输HSYNC, VSYNC, channel0的D[3:2]传输packet header, channel 1,2的D[3:0]传输packet。并且两端以guard band隔离
(3)右二接下来又是control period
(4)右一是 video data island, 占用了全部三个通道,并且开始以guard band 隔离

4 Video

支持三种pixel encoding:RGB4:4:4, YCbCr4:4:4, YCbCr4:2:2
video format除了CEA-861-D中格式外,还会支持一些较特殊的格式
color depth可支持一个像素24, 30, 36和48bits
下面分别是24bit/pixel的RGB444, YCbCr422, YCbCr444的pixel encoding示意图。RGB444每个颜色占8bit, YCbCr422中Y占12bit,C占12bit,YCbCr444中Y,Cb,Cr都占用8bit。
hdmi_rgb444
hdmi_ycbcr422
hdmi_ycbcr444

Deep Color模式
Pixel Packing
24 bit mode: 1 pixel/group, 1 fragment/group
30 bit mode: 4 pixel/group, 5 fragment/group
36 bit mode: 2 pixel/group, 3 fragment/group
48 bit mode: 1 pixel/group, 2 fragment/group
1fragment/TMDS clock, 如30bit下的4pixel,需要5次传输完成,每次1个fragment。
hdmi_packing_30bit

5 Audio

Audio数据以Audio Sample Packet或High Bitrate Audio Stream Packet的形式传输,但是HDMI没有传输audio clock,因此sink设备需要进行audio clock regeneration。原理如下:
hdmi_audio_clock
128∗fs=N×fTMDS/CTS
N和CTS会在Audio Clock Regeneration Packet中进行传输,TMDS clock可通过硬件获取,因此sink端可算出source传输的audio clock。

6 Control

InfoFrame

Infoframe以Infoframe packet的形式传输,它的大小不超过30字节加上一个checksum字节。具体infoframe的格式及内容需要查看spec。
AVI(Auxiliary Video Information) Infoframe
Audio Infoframe
HDMI Vendor Specific Infoframe, 传输4kx2k或3D格式时需要发送此packet

EDID & DDC

sink设备在ROM中存放EDID信息,source在收到HPD后会通过DDC通道读取EDID得到显示设备的属性。EDID包含两部分,前128字节符合EDID1.3数据结构,128字节的扩展EDID,符合CEA extension verison3。CEA extension verison3如下图所示。
hdmi_edid_extension
HDMI VSDB
HDMI sink设备在第一个扩展EDID中包含HDMI VSDB,source在读取EDID后会根据是否有此block来判断设备是HDMI还是DVI。

Hotplug

source会监测HPD pin的状态,当source和sink连接后,如果HPD为高电平,说明sink设备正常可以工作,source可通过DDC读取EDID,如果为低电平,说明sink已断开。
sink可通过拉低HPD超过100ms来向source表明EDID发生了变化,此时source会重新读取EDID。

HDCP

涉及内容较多,会在单独章节中讲解。

HDMI接口定义 连线方法:H代表HDMI,D代表DVI-I H1-D2 : T.M.D.S DATA2+ H2-D3 : T.M.D.S DATA2屏蔽 H3-D1 : T.M.D.S DATA2- H4-D10 : T.M.D.S DATA1+ H5-D11 : T.M.D.S DATA1屏蔽 H6-D9 : T.M.D.S DATA1- H7-D18 : T.M.D.S DATA0+ H8-D19 : T.M.D.S DATA0屏蔽 H9-D17 : T.M.D.S DATA0- H10-D23: T.M.D.S DATA CLOCK+ H11-D22: T.M.D.S DATA CLOCK屏蔽 H12-D24: T.M.D.S DATA CLOCK- H13 :CEC (Consumer Electronics Control可选择的电子消费控制器) H14 : Reserved (in cable but N.C. on device) H15-D6 : SCL(DDC时钟线) H16-D7 : SDA(DDC数据线) H17-D15: DDC/CEC Ground H18-D14: +5V电源线 H19-D16: 热插拔探测线 当信源设备和接收设备通过HDMI线连接后,会首先接通1-17及19管脚,最后再连接第18脚。当接收设备第18脚被连通,并接收到+5V电压时,会把第19脚的HPD信号变为高电平,通知源端可以开始接收带有接收端设备各种信息的E-EDID数据(Enhanced Extended Display Identification Data),此时源端则可以开始通过DDC(Display Data Channel)接收E-EDID信息。至此,源端和接收端之间的初始化完毕,并在二者之间建立了一条数据通道。 在此通道建立以后,设备是否能够自动跳转到HDMI发送/接收状态则需要由设备本身的软件来进行控制,“热插拔”只能够起到建立物理连接的作用。 我们可以粗略地计算一下,目前HDMI的传输速率可以达到165MHz,(也就是他的带宽达到165M)也就是说每秒可以传输1.65亿个像素。而无损传输1080p/60Hz的高清节目则需要124.416MHz的速率(1920x1080x60=124416000),经计算可得知使用TypeA类HDMI接口(具体见后)可以实现 1080p/80Hz的节目信号。而如果使用TypeB类HDMI则更可以达到340MHz的传输速率! HDMI 的英文全称是“ High Definition Multimedia ”,即:高清晰度多媒体接口。 它可以提供高达 5Gbps 的数据传输带宽,可以传送无压缩的音频信号及高分辨率视频信号。同时无需在信号传送前进行数/模或者模/数转换,可以保证最高质量的影音信号传送。应用 HDMI 的好处是:只需要一条 HDMI 线,便可以同时传送影音信号,大大简化家庭影院系统的安装。 HDMI 在引脚上和 DVI 兼容,只是采用了不同的封装。与 DVI 相比。 HDMI 可以传输数字音频信号,并增加了对 HDCP 的支持,同时提供了更好的 DDC 可选功能。 HDMI 最远可传输 15 米 ,足以应付一个 1080p 的视频和一个 8 声道的音频信号。 HDM1 支持 EDID 、 DDC2B ,因此 HDMI 的设备具有“即插即用”的特点,信号源和显示设备之间会自动进行“协商”,自动选择最合适的视频倍频格式。 HDMI 接口端子排列见附图,其端子定义及其与' DVI 接口端子的对应关系见附表。 1对时钟差分线。 3对数据传输差分线。 CEC : 实现单线控制的信号,一个遥控器可以控制所有支持HDMI的数字产品。 它是单一的一条信号线,是HDMI规格化的装置之间的控制信号与控制的一种协议。 现时在很多不同品牌上都可看到CEC的身影,只是每一制造商给它的名字有异。 如松下电器(Panasonic)的VIERA Link,三星电子(Samsung)的Anynet+,LG电子的SIMPLINK,索尼(Sony)的BRAVIA SYNC,索普(Sharp)的Fami Link等。功能上大致都是借着CEC信号让用者可控制HDMI接口上所连接的装置。如单键播放(One Touch Play),系统待机(System Standby)。 即是如果用者将影碟放进蓝光播放器时,电视会由于CEC信号的通知而自动开机,然后视频通道亦会自动切换到播放器连接的通道上。而当用者关掉电视时,CEC信号亦会通知HDMI相连接的装置一同进入待机。由于这样,所以就可以完全变成单一遥控器控制所有HDMI连接的装置。 技术规范中如此定义:The CEC channel is optionally used for higher-level user functions such as automatic setup tasks or tasks typically associated with infrared remote control usage. HPD: hot plug detect.热插拔探测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值