VGA学习之EDID 那些事
arm吧
全部回复
仅看楼主
level 7
在最近的工作中遇到了不少问题,其中很多都是和EDID相关的。EDID这东西很简单,但是如果不了解其基本原理和概念的话,会给我们的工作带来不少麻烦。因此,我决定将我对EDID的理解和调试EDID的一些经验写成一篇文章,供大家学习和参考,希望能对大家的工作有所帮助。接触EDID的时间不长,有问题的地方大家一起讨论。
EDID的全称是Extended Display Identification Data(扩展显示标识数据),共有128字节。其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。
使用EDID为了能让PC或其他的图像输出设备更好的识别显示器属性,EDID并非古而有之,在古老的CRT时期是没有EDID这个概念的,那为什么后来会有呢?因为随着显示设备的发展,显示器的种类越来越多,模拟的、数字的、普屏的、宽屏的、17寸、19寸、22寸„„这让PC傻了眼,分辨率和时序的种类太多了,而每种显示器又不可能支持所有的分辨率,那怎么知道该给显示器一个什么样的分辨率啊?显示出的效果是最佳效果吗?不仅如此,随便输出一个分辨率还有损坏显示器硬件的可能,这可太危险了。于是,EDID临危受命,担当起显示器和PC之前的传话筒。“PC你好,我是A显示器,我能显示N种分辨率,最佳分辨率是XXX”。“显示器你好,收到你的信息,现在就按最佳分辨率给你输出”。
EDID就是为了能让PC或其他的图像输出设备更好的识别显示器属性而出现的。
经常听到有同志一会说“EDID信息”,一会说“DDC信息”。那么哪种说法更准确?EDID和DDC的关系又是什么?
DDC的全称是Display Data Channel(显示数据通道),顾名思义,它是一个通道。我们可以说DDC是用来传送EDID信息的,也可以说EDID信息是通过DDC传送的,所以,“DDC信息”的说法并不准确。至于DDC究竟是怎么传送EDID的,我们后面再说
每个显示器不一定只有一个EDID。 现在的显示器功能很强大,通常都提供多种视频接口,常见的有DVI、VGA、HDMI、Display Port等,由于每种接口的特性和带宽不同,使得不同接口的EDID也不同。使用哪个接口,PC读到的就是哪个接口的EDID。我们的设备主要使用DVI、VGA、VIDEO几种接口。由于VIDEO接口的几种制式如PAL、NTSC等,其分辨率场频都是固定的,没有使用EDID的必要,故不在讨论之列。
本文下面的问题都围绕DVI、VGA两种接口展开
EDID的用处:
PC 1台或N台设备 显示器 或投影机 输入 输出 这是一个典型的应用场景,PC将视频信号发送到我们的设备上,经过一系列的传输或切换,设备将视频信号发送到显示器或投影机上,也就是说,我们的设备
位于PC和显示器之间。首先,在输入端,设备需要让PC知道自己是能够输入视频信号的,换句话说,设备要“欺骗”PC,让PC认为自己是一台显示器。如果不这样的话,PC可能会拒绝输出任何视频信号的(仅限于DVI接口,VGA接口不需要EDID也能输出),这叫“不见兔子不撒鹰”。除此之外,设备还要告诉PC自己支持的显示时序。而在输出端,当设备需要自建输出时序(如大屏控制器的输出卡)而不是简单的复制输入时序(如各种矩阵设备)的时候,就需要知道显示器支持的显示时序,从而让自己输出的信号能在显示器上正常显示。在这些地方,EDID就发挥作用了。在输入端PC通过读取设备上的EDID来获悉设备支持的显示时序,而同样,在输出端设备需要读取显示器的EDID来确定自己的输出时序。
上面说过PC上的VGA接口不需要EDID信息也能输出,而且公司的VGA输入设备里绝大多数也没有EDID,那么VGA接口有EDID吗?它是必需的吗? VGA接口也有EDID,但不是必需的。 液晶显示器、型号较新的CRT显示器和投影机在VGA接口都是有EDID的,而型号较老的CRT显示器和投影机则没有。当PC连接一个没有EDID的VGA设备时,会将其识别成一个“默认监示器”。这时,PC只能输出一些内置的默认分辨率和时序,如果需要的分辨率不在默认的分辨率当中,那PC是没办法输出的。这时候,就需要在VGA设备中添加EDID,来使PC支持需要的分辨率。
2015年01月27日 07点01分 1
level 7
EDID信息包含了显示器需要的128字节.
128个字节的附加块可以存储在初始的EDID块之后的EDID扩展块(又名VDIF)。这些块包含addtional具体的时序信息。有所述EDID中的标志,以指示这些块的存在。
对照[url]http://详细的EDID定义[/url],下面我简单分析一下这些数据:
0 1 2 3 4 5 6 7 8 9
000 | 00 FF FF FF FF FF FF 00 4C 2D
010 | A3 08 37 33 55 5A 19 16 01 03
020 | 0E 30 1B 78 2A 90 C1 A2 59 55
030 | 9C 27 0E 50 54 BF EF 80 71 4F
040 | 81 C0 81 00 81 80 95 00 A9 C0
050 | B3 00 01 01 02 3A 80 18 71 38
060 | 2D 40 58 2C 45 00 DD 0C 11 00
070 | 00 1E 00 00 00 FD 00 38 4B 1E
080 | 51 11 00 0A 20 20 20 20 20 20
090 | 00 00 00 FC 00 53 32 32 42 31
100 | 35 30 0A 20 20 20 20 20 00 00
110 | 00 FF 00 48 54 4D 43 36 31 31
120 | 39 35 30 0A 20 20 00 AC
00–07: 标头资讯"00h FFh FFh FFh FFh FFh FFh 00h"
(8-9) 制造商ID SAM
"00001=A”; “00010=B”; ... “11010=Z”。第7位元(位址08h) 是0, 第一个字元(字母)是位于位元6 → 2 (位址08h), 第二个字元(字母)是位于位元1和0 (位址08h)和位元7 → 5(位址09h),第三个字元(字母)是位于位元4 → 0 (位址09h)
4C 2D--------------0 10011(S) 00001 (A) 01101(M)
(10-11) 生产ID码: 08A3 (储存方式是LSB开始)。由制造商分配
(12-15) 32位ID 序号 : ZU37 。
非必需格式。通常储存由LSB 优先。对应ascii
(16) 制造周。 : 25
这个由制造商改变。法一是去计算一月的1-7 当做第一周,一月8-15 当做第二周并且以此类推。一些计算是以星期几(星期日-星期六)为基础。有效范围是1-54。
(17) 制造年份。 : 2012 加上1990才是确实的年份。
(18) EDID 版本号码: 1
(19) EDID 修订版号码: 3
(20) 影像输入定义: 模拟 0.700, 0.300 (1.000 V p-p)
分离同步, 合成同步, 绿色同步
Bit 7: 0=类比, 1=数位
假如Bit 7 是数字:Bit 0:1=相容DFP 1.x
假如Bit 7 是模拟:
Bit 6-5: 影像等级
00=0.7, 0.3,
01=0.714, 0.286
10=1, 0.4
11=0.7, 0
bit 4: 白黑设定
bit 3: 分离同步
bit 2: 合成同步
bit 1: 绿色同步
bit 0: 锯齿垂直同步
(21)最大水平图形尺寸: 48 cm
(22)最大垂直图形尺寸 : 27 cm
(23)显示伽玛: 2.20。除以100再加1才是真正的值
(24)电源管理和支援的特征:
活跃关闭/低电源, RGB 色彩, 偏好时序模式
bit 7: 待命
bit 6: 暂停
bit 5: 活跃关闭/低电源
bit 4-3: 显示型态00=黑白, 01=RGB 色彩, 10=非RGB 多色彩, 11=未定义
bit 2: 标准色彩空间
bit 1: 偏好时脉模式
bit 0: 预设GTF 支援
25-34: 色度调节
Red Chromaticity : Rx = 0.635 Ry = 0.345
Green Chromaticity : Gx = 0.328 Gy = 0.609
Blue Chromaticity : Bx = 0.151 By = 0.055
Default White Point: Wx = 0.312 Wy = 0.329
25: 低有效位关于红色X1X0 (bit 7-6), 红色Y1Y0 (bit 5-4), 绿色X1X0 (bit 3-2),绿色Y1Y0 (bit1-0)。
26: 低有效位关于蓝色X1X0 (bit 7-6), 蓝色Y1Y0 (bit 5-4), 白色X1X0 (bit 3-2),白色Y1Y0 (bit 1-0)。
27–34: 高有效位关于红色X9-2, 红色Y9-2, 绿色X9-2, 绿色Y9-2, 蓝色X9-2, 蓝色Y9-2, 白色X9-2, 白色Y9-2。
正确值是介于0.000和0.999,但编码值是介于000h和3FFh。
(35) Established Timings I 建立时序1
720 x 400 @ 70Hz (IBM, VGA)
640 x 480 @ 60Hz (IBM, VGA)
640 x 480 @ 67Hz (Apple, Mac II)
640 x 480 @ 72Hz (VESA)
640 x 480 @ 75Hz (VESA)
800 x 600 @ 56Hz (VESA)
800 x 600 @ 60Hz (VESA)
(36)建立时序II
800 x 600 @ 72Hz (VESA)
800 x 600 @ 75Hz (VESA)
832 x 624 @ 75Hz (Apple, Mac II)
1024 x 768 @ 60Hz (VESA)
1024 x 768 @ 70Hz(VESA)
1024 x 768 @ 75Hz (VESA)
1280 x 1024 @ 75Hz (VESA)
(37) 制造商保留的时序
1152 x 870 @ 75Hz (Apple, Mac II)
(38-53) Standard Timings 标准时脉识别
第一个bit组水平结果。加上31,再乘上8, 得到正确值。
第二个bit组bit7-6: 外观比例。

正确的
垂直结果依赖水平结果。
00=16:10, 01=4:3, 10=5:4, 11=16:9 (00=1:1 在v1.3之前)
bit5-0:垂直频率。加上60 去得到正确的值。
1152x864 @ 75 Hz (4:3屏幕高宽比)
1280x720 @ 60 Hz (16:9屏幕高宽比)
1280x800 @ 60 Hz (16:10屏幕高宽比)
1280x1024 @ 60 Hz (5:4屏幕高宽比)
1440x900 @ 60 Hz (16:10屏幕高宽比)
1600x900 @ 60 Hz (16:9屏幕高宽比)
1680x1050 @ 60 Hz (16:10屏幕高宽比)
(54-71) 详细时脉描述1:监视器详细时序 (1920x1080 @ 60Hz)
54–55: 像素时钟
56: 水平活跃(单位为像素)
57: 水平空白(单位为像素)
58: 水平活跃高(高四位bit)
水平空白高(低四位bit)
59: 垂直活跃(单位为线)
60: 垂直空白(单位为线)
61: 垂直活跃在高有效位(高四位bit)
垂直空白在高有效位(低四位bit)
62: 水平同步偏移量(单位为像素)
63: 水平同步脉冲宽度(单位为像素)
64: 垂直同步偏移量(单位为线) (高四位bit)
垂直同步脉冲宽度(单位为线) (低四位bit)
65: 高有效位关于水平同步偏移量(bit 7-6)
高有效位关于水平同步脉冲宽度(bit 5-4)
高有效位关于垂直同步偏移量(bit 3-2)
高有效位关于垂直同步脉冲宽度(bit 1-0)
66: 水平图像尺寸(单位为公厘)
67: 垂直图像尺寸(单位为公厘)
68: 高有效位关于水平图像尺寸(高四位bit)
高有效位关于垂直图像尺寸(低四位bit)
69: 水平边界线(单位为像素且只表示一边)
70: 垂直边界线(单位为线且只表示一边)
71: 交错与否(bit7)
立体与否(bit 6-5) ("00" 表示否)
分离同步与否(bit 4-3)
垂直同步正与否(bit2)
水平同步正与否(bit 1)
立体模式(bit 0) (若是6-5 是00 则没使用)
(72-89) 详细时脉描述2:监视器参数范围
水平扫描时钟: 30kHz-81kHz
垂直扫描时钟 : 56Hz-75Hz
像素时钟: 170 MHz
Secondary GTF : Not Supported
(90-107) 详细时序描述3 :监视器名称S22B150
(108-125) 详细时序描述4 :监视器序列号HTMC611950
(126-127) Extension Flag and Checksum
扩展块标记: 0 扩展块有效标记。在EDID 1.3之前,这是被忽略的, 并且应该被设成0。
校验和- : 172 这个位元组应该被程式化使得所有128 位元组的加总等于00h.
扩展EDID主要包含几个部分:
1.图像和声音模式,如模拟还是数字,
2.颜色模式,如YCbCr(4:4:4),YCbCr(4:2:2)
3.简短的timing描述,这里指定了一些在段1里面没有描述的timing信息。比如640x480p@60HZ 4:3等
4.声音的简短描述,比如PCM(2通道,32KHZ,44.1HZ,48HZ,16bit,20bit,24bit)
AC-3,Dolby Digital+(6通道,32KHZ,44.1KHZ,48KHZ,最大比特率640k
bp
s)
喇叭(左右声道)
5.VSDB:生产商特别信息,比如包含了CEC物理地址,3D信息,deep color信息等
6.CheckSum
2015年01月27日 07点01分 2
1