一.HDMI介绍
HDMI
全称(High Definition Multimedia Interface
)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。
HDMI
基于TMDS
协议传输,主要用于DVD
, 机顶盒等音视频source
到TV
,显示器等sink
设备的传输。
HDMI
向下兼容DVI
,但是DVI
(数字视频接口)只能用来传输视频,而不能同时传输音频,这是两者最主要的差别。
HDMI专业术语:
在介绍HDMI
时,我们会提到大量的专业术语:
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
框图
HDMI
系统架构由source
端和sink
端组成:source
是指发送HDMI
信号的一侧,sink
是指接收HDMI
信号的一侧。
以上是HDMI
的结构图,从中我们大致可以看出HDMI
信号的组成部分:
-
四路差分信号,包括三路
TMDS Data
信号和一路TMDS Clock
信号。TMDS
信号不仅仅用于传输video
信号,还传输audio
和辅助信息; -
一个
DDC
通道用于在source
端和sink
端交换状态, 用于告知source
端,sink
端具体可以接收什么样的数据; -
HDP
用于热插拔检测, 连接好过后sink
端会发送一个拉高的信号,source
端在接收到信号过后会向sink
端开始发送数据; -
CEC
是用户电气控制,一般用作遥控;CEC
是HDMI
可选协议; -
HEAC
以太网和音频返回;HEAC
是HDMI
可选协议;
因此,我们可以推断出:
- 要想传输音视频,只需要
TMDS
信号即可; - 要想使用遥控器,需要
CEC
; - 要想做到分辨率自适应屏幕,需要
DDC
; - 要支持热插拔,需要实现
HPD
;
物理结构:
HDMI
有A
、B
、C
、D
、E
五种引脚类型,目前常用的是Type A
:
其中:
A
:HDMI Type A
接口共有19pin
,宽度为13.9
毫米,厚度为4.45
毫米;B
:HDMI Type B
接口采用29pin
,宽度21
毫米;C
:HDMI Type C
常称为Mini HDMI
,它主要是为小型设备设计的;D
:HDMI Type D
是最新的接口类型,尺寸进一步缩小;E
:主要用于车载娱乐系统的音视频传输。由于车内环境的不稳定性,HDMI Type E
在设计上具备抗震性、防潮、耐高强度、温差承受范围大等特性;
引脚分布:
其中HDMI Type A
接口引脚分布如下:
其中:
- 1-9:是
TMDS data
传输用到的引脚,共有三组; 10-12
:是TMDS clock
传输用到的引脚,共有一组;- 13:
CEC
引脚; - 14:保留;
- 15,16:
DDC
的引脚,DDC
是基于I2C
协议传输,故引脚为SCL
和SDA
; - 17:
DDC/CEC
地; - 18:
5V
电源; - 19:
HPD
引脚,用于热插拔检测;
TMDS
协议:
TMDS
(Transition TYPE_Cmized Differential Signaling
)最小化传输差分信号。是美国Silicon Image
公司开发的一项高速数据传输技术。
TMDS
差分传输技术使用两个引脚来传输一路信号,利用这两个引脚间的电压差的正负极性和大小来决定传输数据的数值(0 或 1)。
TMDS
传输系统分为两个部分:发送端source
和接收端sink
。TMDS
链路包括3个传输数据的通道和1个传输时钟信号的通道;
- 发送端对这些数据进行编码和并/串转换,再将数据分别分配到独立的传输通道发送出去;
- 接收端接收来自发送端的串行信号,对其进行解码和串/并转换,然后发送到显示器的控制端;
三.电路原理图
电路接线图如下:
HDMI_AVDD_0V9_1
、HDMI_AVDD_0V9_1
电源由VCCA0V9_S3
提供,可以看做是常供电。
HDMI_AVDD_1V8
由VCC1V8_S3
供电,同样可以看做是常供电;
HDMI
接口侧:
电源信号:
电源VCCA0V9_S3
由RT9041B-10GE
提供的,这是一款稳压器IC
,其输入端为VCC3V3_S5
,RT9041B-10GE
由VCC1V8_S3
使能,VCC1V8_S3
作为使能引脚EN
的输入端;因此VCCA0V9_S3
可以看做是常供电。
四.EDID概述
EDID
:全称是Extended Display Identification Data
(外部显示设备标识数据);VGA
、DVI
的EDID
由主块128字节组成,HDMI
的EDID
增加扩展块(128字节),扩展块的内容主要是和音频属性相关的,DVI
和VGA
没有音频,HDMI
自带音频,扩展块数据规范按照CEA-861x
标准定义,未来可能增加到512
或256
的整数倍。
其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。形象地说,EDID
就是显示器的身份证、户口本、技能证书等证件的集合,目的就是告诉别人我是谁,我从哪来,我能干什么。
EDID
并非古而有之,在古老的CRT
时期是没有EDID
这个概念的,那为什么后来会有呢?
因为随着显示设备的发展,显示器的种类越来越多,模拟的、数字的、普屏的、宽屏的、17
寸、19
寸、22
寸……这让PC
傻了眼,分辨率和时序的种类太多了,而每种显示器又不可能支持所有的分辨率,那怎么知道该给显示器一个什么样的分辨率啊?显示出的效果是最佳效果吗?
不仅如此,随便输出一个分辨率还有损坏显示器硬件的可能,这可太危险了。于是,EDID
临危受命,担当起显示器和PC
之前的传话筒。
-
“
PC
你好,我是A
显示器,我能显示N
种分辨率,最佳分辨率是XXX
”。 -
“显示器你好,收到你的信息,现在就按最佳分辨率给你输出”。
这下大家明白了吧,EDID
就是为了能让PC
或其他的图像输出设备更好的识别显示器属性而出现的。
需要注意的是:EDID
信息是通过DDC
通道传输的,并且每个显示器可能有多个EDID
.
现在的显示器功能很强大,通常都提供多种视频接口,常见的有DVI
、VGA
、HDMI
、Display Port
等,由于每种接口的特性和带宽不同,使得不同接口的EDID
也不同。使用哪个接口,PC
读到的就是哪个接口的EDID
。
主块详解:
考虑到EDID
信息字节太多,我们不可能将所有字节表示的含义介绍一遍。这里我们我们仅仅挑选一些重要的字节进行介绍;
Header:
在EDID
的开头八个字节为EDID
的开始标志,简称头,固定为:
0H | 01H | 02H | 03H | 04H | 05H | 06H | 07H |
---|---|---|---|---|---|---|---|
00 | FF | FF | FF | FF | FF | FF | 00 |
Vendor
/ Product Identification
这十个字节表示产品ID和制造商信息。详细如下:
08H | 09H | 0AH | 0BH | 0CH | 0DH | 0EH | 0FH | 10H | 11H |
---|---|---|---|---|---|---|---|---|---|
制造商名称 | 产品代码 | 产品序列号 | 制造周 | 制造年份 |
制造商名称:3个字母组成,基于压缩的ASCII码见下表,例如“00001=A”… …”11010=Z”。这两字节排列如下:
地址 | 位 | |||||||
bit1 | bit2 | bit3 | bit4 | bit5 | bit6 | bit7 | bit8 | |
08H | - | (4 | 3 | 2 | 1 | 0) | (4 | 3 |
字符1 | 字符2 | |||||||
09H | 2 | 1 | 0) | (4 | 3 | 2 | 1 | 0) |
字符2 | 字符3 |
A | B | C | D | E | F | G | H | I | J | K | L | M |
00001 | 00010 | 00011 | 00100 | 00101 | 00110 | 00111 | 01000 | 01001 | 01010 | 01011 | 01100 | 01101 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
01110 | 01111 | 10000 | 10001 | 10010 | 10011 | 10100 | 10101 | 10110 | 10111 | 11000 | 11001 | 11010 |
产品代码:固定为4位16进制数,即两个字节,为客户提供,直接填写。
产品序列号:即产品的流水号(数值型),直接转成16进制或以ASCII格式转换。序列号也可用字符型,在后面DTD部分定义。
生产周:即在当年中的生产周,范围1~52,注意0为无效值。
生产年份:规定1990开始计算,即1990年为0,然后递增计算。
EDID Structure Version
/ Revision:
字节 | EDID版本及修改 | 备注 |
---|---|---|
12H | 版本号 | |
13H | 修改号 |
Basic Display Parameters
/ Features:
5 | 字节 | 基本的显示参数/特征 | |
---|---|---|---|
14H | 1 | 视频信号定义 | 见下表 |
15H | 1 | 最大水平图像尺寸 | cm |
16H | 1 | 最大垂直图像尺寸 | cm |
17H | 1 | 显示传输特性(Gamma) | (gamma x 100)-100,[1.00→3.55] |
18H | 1 | 电源管理标准(DPMS) | 见下表 |
视频信号定义:
字节 | 位 | 类型 | 详细描述 | |
---|---|---|---|---|
14H | 7 | 模拟/数字信号 | 模拟= 0,数字= 1 | |
如bit7=0,即模拟信号,bit6~0定义如下: | ||||
6 | 信号电平[6:5] | 参阅下列定义。 Bit6 Bit5 Operation 0 0 0.700,0.300(1.000Vp-p) 0 1 0.714,0.286(1.000Vp-p) 1 0 1.000,0.400(1.400Vp-p) 1 1 0.700,0.000(0.700Vp-p) | ||
5 | ||||
4 | setup | 一般为0 | ||
3 | 同步输入支持[3] | 如果设置1, 支持同步分离信号; | ||
2 | 同步输入支持[2] | 如果设置1, 支持同步复合信号(在水平同步行信号上); | ||
1 | 同步输入支持[1] | 如果设置1, 支持同步SOG信号; | ||
0 | 同步输入支持[0] | 如果设置1, 场同步扫描起点,脉冲须在复合同步信号或同步SOG信号被使用; | ||
如bit7=1,即数字信号,bit6~0定义如下: | ||||
6-1 | 保留 | |||
0 | DFP 1.x | If set = 1, Interface is signal compatible with VESA DFP 1.x TMDS CRGB, 1 pixel / clock, up to 8 bits / color MSB aligned,DE active high |
电源管理标准(DPMS
):
字节 | 位 | 特点支持 | 详细描述 |
---|---|---|---|
18H | 7 | Standby待机 | 是否支持Standby功能 |
6 | Suspend挂起 | 是否支持Suspend功能 | |
5 | Active Off/Very Low Power | 是否支持Off Mode功能 | |
[4:3] | 显示类型[4:3] | Bit4 Bit3 解释 0 0 黑白/灰度显示 0 1 RGB颜色显示 1 0 非RGB多彩色显示,如RGY 1 1 没有定义 | |
2 | 标准默认颜色空间sRGB | 如果置1,显示将使用默认的颜色空间sRGB作为基色 | |
1 | 推荐分辨率模式 | 如果置1,推荐分辨率为第一个详细描述的时序(Detailed Timing) | |
0 | 支持GTF | 如果置1,支持GTF标准分辨率 |
Color Characteristics:
字节 | 颜色特征 | 基于CIE出版15.2测定空间 |
---|---|---|
19H | Red / Green Low Bits红绿场xy坐标低2位值 | Rx1 Rx0 Ry1 Ry0Gx1 Gx0 Gy1 Gy0 |
1AH | Blue / White Low Bits蓝白场xy坐标低2位值 | Bx1 Bx0 By1 By0Wx1 Wx0 Wy1 Wy0 |
1BH | Red_x红场画面x坐标 | Red_x bits 9 →2 |
1CH | Red_y红场画面y坐标 | Red_y bits 9 →2 |
1DH | Green_x绿场画面x坐标 | Green_x bits 9 →2 |
1EH | Green_y绿场画面y坐标 | Green_y bits 9 →2 |
1FH | Blue_x蓝场画面x坐标 | Blue_x bits 9 →2 |
20H | Blue_y蓝场画面y坐标 | Blue_y bits 9 →2 |
21H | White_x白场画面x坐标 | White_x bits 9 →2 |
22H | White_y白场画面y坐标 | White_y bits 9 →2 |
Established Timings
(内建时序,描述了分辨率和刷新率)表示显示器是否支持一些通用时序。若支持,则相应的分辨率位为1。
字节 | 位 | 描述 | 信源 |
---|---|---|---|
23H | 7 | 720 x 400 @ 70Hz | IBM, VGA |
6 | 720 x 400 @ 88Hz | IBM, XGA2 | |
5 | 640 x 480 @ 60Hz | IBM, VGA | |
4 | 640 x 480 @ 67Hz | Apple, Mac II | |
3 | 640 x 480 @ 72Hz | VESA | |
2 | 640 x 480 @ 75Hz | VESA | |
1 | 800 x 600 @ 56Hz | VESA | |
0 | 800 x 600 @ 60Hz | VESA | |
24H | 7 | 800 x 600 @ 72Hz | VESA |
6 | 800 x 600 @ 75Hz | VESA | |
5 | 832 x 624 @ 75H z | Apple, Mac II | |
4 | 1024 x 768 @ 87Hz(I) | IBM | |
3 | 1024 x 768 @ 60Hz | VESA | |
2 | 1024 x 768 @ 70Hz | VESA | |
1 | 1024 x 768 @ 75Hz | VESA | |
0 | 1280 x 1024 @ 75Hz | VESA | |
25H | 7 | 1152 x 870 @ 75Hz | Apple, Mac II |
6-0 | 保留 |
Standard Timings
标准时序是对内建时序的扩充,最多可描述8个时序,每2个字节描述一种时序,这些时序都没有包含Established Timings
中;
字节 | 位 | 描述 | 源 |
---|---|---|---|
26H | (行有效像素/8)-31 | ||
27H | 7,6 5-0 | Aspect Ratio Bit7 Bit6 生效 00 1:1 01 4:3 10 5:4 11 16:9 刷新率-60 | Aspect Ratio=行像素/列像素 范围是;60-123Hz |
28H-29H | 同上 | 同上 | |
2AH-2BH | 同上 | 同上 | |
2CH-2DH | 同上 | 同上 | |
2EH-2FH | 同上 | 同上 | |
30H-21H | 同上 | 同上 | |
32H-33H | 同上 | 同上 | |
34H-35H | 同上 | 同上 |
比如:0x71 0x40
表示的含义如下:
- 行有效像素为:
(0x71+31)*8=1152
; - 宽高比为:
4:3
,所以列有效像素为1152*3/4=864
; - 刷新率为:
0+60=60Hz
;
Detailed Timings
详细时序这个区域可以说是整个EDID
中和我们关系最密切,也是我们需要了解最多和改动最频繁的区域。
它分为4个块(Block),每个块占用18个字节,一共72个字节。
每个块既可以是一个时序说明(Timing
)也可以是一个显示器描述符(Monitor Descriptor
)。
需要注意的是:Block 1
必须是时序说明;
- 对于
EDID
1.4及以上版本,第一个详细时序它描述的是显示器的最佳时序; - 对于
EDID
1.4以下版本,如果字节0x18
位[1]的值为1则表示第一个详细时序它描述的是显示器的最佳时序。