本文从软件工程师角度对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用于audiovisual source和sink之间的连接,hdmi cable由3组差分信号传输tmds数据,1组差分信号传输clock。此外,hdmi还有一个ddc的通道连接到sink的edid。cec和heac都是hdmi的可选协议。
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传输的示意图,从图中可知,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式的传输。
上图是传输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分别传输的数据和编码类型进行说明。video数据从8bit/channel encode后变为10bit/channel, data island的packet数据从4bit/channel encode后为10bit/channel, control数据从2bit/channel encode为10bit/channel。
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说明。
三个传输阶段的过渡过程如下图所示:
(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。
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。
5 audio
audio数据以audio sample packet或high bitrate audio stream packet的形式传输,但是hdmi没有传输audio clock,因此sink设备需要进行audio clock regeneration。原理如下:
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 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
涉及内容较多,会在单独章节中讲解。
青海移动发布了全国首个政企行业专网
pi调节器与PID控制的区别 _Matlab的pi调节器参数选取_MATLAB里面的PI控制问题
阻湿态微生物穿透测试仪的产品特点介绍
联发科发布Wi-Fi 7产品,今年上市助力VR游戏与远程办公
一部仙童史:半个半导体史
一文解析HDMI spec传输协议
3D的感知技术及实践
5G网络为边缘计算的发展与落地奠定了坚实的基础
锂电池保护IC的功能原理
在家就能轻松运动!莫比智能动感单车,让你无需再去健身房
制图国家标准
基本共射放大电路工作原理以及共射放大电路的组成
基于NCP3121的分布式电源解决方案
随着安防数据化技术的不断发展,技术要求也越来越高
GMX002 0-10V调光器扩流模块,0-10V转0-10V,100mA输出
小米6什么时候发布?小米6真机上手:小米6发布前售价、配置预测总结
长寿命远程无线传感器的关键
工程师分享的PCB设计经验
Spectrum仪器推出可定制化多通道测试与测量系统
从产业、消费者及技术细看Google“DayDream”