HDMI全称(High Definition Multimedia Interface)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。
HDMI基于TMDS协议传输,主要用于DVD, 机顶盒等音视频source到TV,显示器等sink设备的传输。HDMI向下兼容 DVI,但是 DVI(数字视频接口)只能用来传输视频,而不能同时传输音频,这是两者最主要的差别。
HDMI:High Definition Multimedia Interface高清多媒体接口,传输音视频。
HDCP:High-bandwidth Digital Content Protection 版权保护相关的,通过IIC获取。
EDID:Extended Display Identification Data 扩展显示标识数据,包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等。
DDC:Display Data Channel 显示数据通道,其实就是IIC通道,用来获取EDID、HDCP密钥等内容。
HDP:Hot Plug Detect热插拔检测。
CEC:Consumer Electronics Control 用户电气控制,CEC可以控制从设备的一些状态,即遥控器功能。
TMDS:Transition Minimized Differential Signaling最小化传输差分信号,一种差分传输技术
HEAC:HDMI Ethernet and Audio Return Channel 以太网和音频返回,HEAC需要额外的phy才能支持。
Source:A device with an HDMI output
Sink:A device with an HDMI input
CTS:Compliance Test Specification
HDMI有A、B、C、D、E五种引脚类型,目前常用的是Type A:
10-12是TMDS clock传输用到的引脚,共有一组;
13是CEC引脚,一种消费电子兼容的传输协议,用作遥控的;
14是保留引脚;
15,16是DDC的引脚,DDC是基于I2C协议传输,故引脚为SCL和SDA;
17是接地;
18是+5V power;
19是HPD引脚,用于热插拔检测。
HDMI 系统架构由Source端和Sink端组成:Source是指发送HDMI信号的一侧,Sink是指接收HDMI信号的一侧。
HDMI信号四路差分信号组成,包括三路TMDS Data信号和一路TMDS Clock信号。TMDS信号不仅仅用于传输video信号,还传输audio和辅助信息。
HDMI 提供一个 DDC 通道用于在source端和sink端交换状态。
HDP用于热插拔检测,CEC是用户电气控制,一般用作遥控,HEAC以太网和音频返回。CEC和HEAC是HDMI可选协议。
小结:
要想传输音视频,只需要TMDS信号即可;
要想使用遥控器,需要CEC;
要想做到分辨率自适应屏幕,需要DDC;
要支持热插拔,需要实现HPD
TMDS信号
TMDS 传输系统分为两个部分:发送端source和接收端sink。TMDS 链路包括 3 个传输数据的通道和1个传输时钟信号的通道。
发送端对这些数据进行编码和并/串转换,再将数据分别分配到独立的传输通道发送出去。
接收端接收来自发送端的串行信号,对其进行解码和串/并转换,然后发送到显示器的控制端。
TMDS不仅仅是对video进行编码,还包括audio和控制信号:
对于video周期采用的是video data encoding,将8bits数据转换成10bits数据
对于control周期采用的是CTL encoding,将2bits数据转换成10bits数据
对于DataIsland周期采用的是TERC4 encoding,将4bits数据转换成10bits数据
source端编码,数据加串
sink端解码,数据解串
HDMI传输由三组TMDS通道和一组TMDS clock通道组成,TMDS clock的运行频率是video信号的pixel频率,在每个TMDS 时钟通道周期,每个TMDS data通道都发送10bit数据。
channel0传输B数据和HSync、VSync
channel1传输G数据和CTL0、CTL1
channel2传输R数据和CTL2、CTL3
HDMI的TMDS数据传输可以分为三个传输周期:
Control Period控制周期:主要用于控制接下来传输的是data island还是video data
Data Island Period数据岛周期:各种类型的包信息,包括音频数据包、辅助数据包、图像信息包等
Video Data Period视频数据周期:视频像素数据,HDMI可以传输RGB和YUV两种格式的像素数据
1、左边是Control period:传输有Hsync、Vsync与Preamble。占用1、2两个通道共4bit输入;channel 0传输HSYNC, VSYNC, channel1[1:0]和channel2[1:0] 传输Preamble,用来判断接下来输入的是Video Data还是Data Island。
2、中间是Data Island period:传输有Hsync、Vsync,以及两个Packet Header与Packet,占用三通道共12bit输入,Channel0[3:2]用于传输Data Island Header(包头),Channel1[3:0]与Channel2[3:0]用于传输Data Island Content(包内数据)
3、右边是Video Data period :视频信号经过编码生成三路TMDS数据通道,共24位视频流数据,输入到HDMI Tx中。24位像素的视频信号通过TMDS通道传输,将每通道8位信号转换为10位,在每个10位像素周期传送一个最小化的信号序列,视频信号将被调制为TMDS信号传送出去。
Control Period(preamble)
在数据岛或者视频数据传输周期之前,每一个TMDS通道包含2bit的控制数据,一共6位控制数据。
TMDS Channel | D0 | D1 |
---|---|---|
0 | HSYNC | VSYNC |
1 | CTL0 | CTL1 |
2 | CTL2 | CTL3 |
每个TMDS通道使用了D1:D0共2bit,采用2bit到10bit的编码方式。在每个控制周期的最后阶段,CTL0、CTL1、CTL2、CTL3组成的文件头说明下一个周期是视频数据还是数据岛。
CTL0 | CTL1 | CTL2 | CTL3 | 数据周期类型 |
---|---|---|---|---|
1 | 0 | 0 | 0 | video data |
1 | 0 | 1 | 0 | data island |
视频数据周期用来传输视频线的像素,每个视频数据周期以报文头为前导,在报文头之后,视频数据周期以两个字符开始,做为视频前导保护边界。对于数据周期,没有末尾保护边界。
数据岛用来携带音频和辅助数据的报文。辅助数据包括Info frame和其他用于音视频信息描述的数
据。每个数据岛以2个字符长度的前导保护边界开始,并以2个字符宽度的末尾保护边界结束。
Channel0 | Bit0 | HSync |
Channel0 | Bit1 | VSync |
Channel0 | Bit2 | packet header |
Channel1 | Bit3:0 | packet |
Channel1 | Bit3:0 | packet |
小结:
audio是在dataisland周期发送的
video是在video周期发送的