文档章节

如何获取显示器的EDID信息

DB_Terrill
 DB_Terrill
发布于 08/16 11:30
字数 3546
阅读 13
收藏 0

Q1: 为什么要写这篇文章?

A1:在最近的工作中遇到了不少问题,其中很多都是和EDID相关的。可以说,作为一家以“显示”为生的企业,我们时时刻刻在与EDID打交道。EDID这东西很简单,但是如果不了解其基本原理和概念的话,会给我们的工作带来不少麻烦。因此,我决定将我对EDID的理解和调试EDID的一些经验写成一篇文章,供大家学习和参考,希望能对大家的工作有所帮助。为了方便阅读和理解,文章写成问答的形式。由于本人接触EDID的时间不长,文章中难免有错误和疏漏之处,希望大家给予指正。好,闲话少说,咱们书归正传。

Q2:EDID是什么?

A2:EDID的全称是Extended Display Identification Data(扩展显示标识数据),共有128字节。其中包含有关显示器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串等等。形象地说,EDID就是显示器的身份证、户口本、技能证书等证件的集合,目的就是告诉别人我是谁,我从哪来,我能干什么。

Q3:为什么要使用EDID?

A3:为了能让PC或其他的图像输出设备更好的识别显示器属性

EDID并非古而有之,在古老的CRT时期是没有EDID这个概念的,那为什么后来会有呢?因为随着显示设备的发展,显示器的种类越来越多,模拟的、数字的、普屏的、宽屏的、17寸、19寸、22寸……这让PC傻了眼,分辨率和时序的种类太多了,而每种显示器又不可能支持所有的分辨率,那怎么知道该给显示器一个什么样的分辨率啊?显示出的效果是最佳效果吗?不仅如此,随便输出一个分辨率还有损坏显示器硬件的可能,这可太危险了。于是,EDID临危受命,担当起显示器和PC之前的传话筒。“PC你好,我是A显示器,我能显示N种分辨率,最佳分辨率是XXX”。“显示器你好,收到你的信息,现在就按最佳分辨率给你输出”。这下大家明白了吧,EDID就是为了能让PC或其他的图像输出设备更好的识别显示器属性而出现的。

Q4:经常听到有同志一会说“EDID信息”,一会说“DDC信息”。那么哪种说法更准确?EDID和DDC的关系又是什么?

A4: DDC的全称是Display Data Channel(显示数据通道),顾名思义,它是一个通道。我们可以说DDC是用来传送EDID信息的,也可以说EDID信息是通过DDC传送的,所以,“DDC信息”的说法并不准确。至于DDC究竟是怎么传送EDID的,我们后面再说。

Q5:每个显示器只有一个EDID吗?

A5:不一定。

现在的显示器功能很强大,通常都提供多种视频接口,常见的有DVI、VGA、HDMI、Display Port等,由于每种接口的特性和带宽不同,使得不同接口的EDID也不同。使用哪个接口,PC读到的就是哪个接口的EDID。我们的设备主要使用DVI、VGA、VIDEO几种接口。由于VIDEO接口的几种制式如PAL、NTSC等,其分辨率场频都是固定的,没有使用EDID的必要,故不在讨论之列。本文下面的问题都围绕DVI、VGA两种接口展开

Q6:说了半天,EDID对我们到底有什么用?

 

A6:要回答这个问题,首先要弄清我们设备的应用场景,请看下图

                 

这是一个典型的应用场景,PC将视频信号发送到我们的设备上,经过一系列的传输或切换,设备将视频信号发送到显示器或投影机上,也就是说,我们的设备位于PC和显示器之间。首先,在输入端,设备需要让PC知道自己是能够输入视频信号的,换句话说,设备要“欺骗”PC,让PC认为自己是一台显示器。如果不这样的话,PC可能会拒绝输出任何视频信号的(仅限于DVI接口,VGA接口不需要EDID也能输出),这叫“不见兔子不撒鹰”。除此之外,设备还要告诉PC自己支持的显示时序。而在输出端,当设备需要自建输出时序(如大屏控制器的输出卡)而不是简单的复制输入时序(如各种矩阵设备)的时候,就需要知道显示器支持的显示时序,从而让自己输出的信号能在显示器上正常显示。在这些地方,EDID就发挥作用了。在输入端PC通过读取设备上的EDID来获悉设备支持的显示时序,而同样,在输出端设备需要读取显示器的EDID来确定自己的输出时序。

Q7:上面说过PC上的VGA接口不需要EDID信息也能输出,而且公司的VGA输入设备里绝大多数也没有EDID,那么VGA接口有EDID吗?它是必需的吗?

 

A7: VGA接口也有EDID,但不是必需的。

液晶显示器、型号较新的CRT显示器和投影机在VGA接口都是有EDID的,而型号较老的CRT显示器和投影机则没有。当PC连接一个没有EDID的VGA设备时,会将其识别成一个“默认监示器”。这时,PC只能输出一些内置的默认分辨率和时序,如果需要的分辨率不在默认的分辨率当中,那PC是没办法输出的。这时候,就需要在VGA设备中添加EDID,来使PC支持需要的分辨率。

Q8:如何获取显示器的EDID?

A8:使用“SoftMCCS”软件。安装软件后打开,可以看到软件界面如下:

操作步骤如下:

1、打开SoftMCCS软件

2、如果接了多台显示器,则在左上角的栏中选择需要读取EDID的显示器型号,如“DELL E198WFP”

3、点击左上角“File -> Save EDID as”,将EDID信息保存在自己想要的位置,文件名可以自己指定,文件类型要选择“Raylar EDID file (*.dat)”

用文本编辑工具(如写字板)打开刚刚保存的EDID文件,如下图

 

可以看到右下方有128个16进制数,这就是刚刚保存的EDID信息了

Q9:EDID里都包含什么信息?哪些是我们关心的?

A9:刚才我们已经通过“SoftMCCS”软件获取了EDID数据文件,下面要介绍另一个软件来分析这个数据,“Phoenix EDID Designer”。软件只有一个exe文件,不需要安装。点击打开按钮,然后找到并打开我们刚刚保存的EDID文件,打开后如下图

打开之后默认是只读的,数据都是灰色,为了看起来更清楚,点击 取消只读属性,如下图所示

 

图中红线圈出的部分中可以看到5个选项卡,EDID中的信息基本都包含在其中,我们逐个看一下。

打开EDID文件后默认显示的是“General”选项卡,里面介绍了显示器中一些基本的信息,一般与我们无关,也不用修改。

点击“Basic Display Parameter”选项卡,如下图所示

这里面对我们有用的信息只有“Video Input Definition”(视频输入描述)。在Q7中曾经提到,VGA接口也是有EDID的。而VGA的EDID和其他数字接口EDID的最大区别就是视频输入描述。VGA接口的输入是Analog,而如图中DVI接口的EDID,选则Digital输入。

“Color/Established Timings” 

“Established Timings”(内建时序)表示显示器是否支持一些通用时序。若支持,则在相应的分辨率时序前打钩。例如,由上图中可知显示器不支持720*400@88Hz和1024*768@87Hz这两种时序。

“Standard Timings”(标准时序)

标准时序是对内建时序的扩充,最多可描述8个时序,图中我们看到的是1-4个时序,点击红色方框中的“5-8”可看到后4个时序。以时序1(Timing ID #1)为例,“Enable”前打钩表示显示器支持此时序;“H Active”表示一行中的有效像素;“Refresh”表示刷新率,也叫场频率,单位Hz,注意这里的刷新率值必须大于等于60Hz;“Aspect Ratio”表示图像的宽高比,等于一行中的有效像素和图像的有效行数之比。例如时序1中行有效像素是1440,宽高比是16:10,我们就可以知道图像的有效行数是1440/16*10=900。

“Detailed Timings”(详细时序)

 

详细时序这个区域可以说是整个EDID中和我们关系最密切,也是我们需要了解最多和改动最频繁的区域。它分为4个块(Block),可通过左上角的按钮在各个块之间切换(软件的显示有问题,4个按钮分别为Block 1、2、3、4)。每个块既可以是一个时序说明(Timing)也可以是一个显示器描述符(Monitor Descriptor)。需要注意的是:Block 1必须是时序说明,它描述的是显示器的最佳时序。

上图中的显示的就是Block 1,注意右上角的Timing / Monitor Descriptor切换的部分是灰色的,这证实了我们刚才的说法:Block 1只能表示时序。

左下角的Timing部分描述了时序的主要参数,含义见下表(软件显示有问题,参数名称显示不完整,表格中的参数也仅对应其在软件中的位置)。H Image、H Border、V Image、V Border几个参数一般用不到,表格中没有列出

参数

含义

参数

含义

Pixel

像素时钟频率

Interlaced

前面打钩表示是隔行显示

H   Active

一行中有效的像素

V   Active

一场中有效的行数

H   Blank

一行中的消隐期长度,单位是像素

V   Blank

一场中的消隐期长度,单位是行

H   sync

行同步前沿宽度,即从行有效像素结束到行同步开始的像素数

V   sync

场同步前沿宽度,即从一场中有效行结束到场同步开始的行数

H   sync

行同步信号宽度,单位是像素

V   sync

场同步信号宽度,单位是行

 

表中各参数的位置关系如下图所示

 

由图中可知,消隐期=前沿+同步+后沿,这4个参数已知其中3个就可以推算出另一个。

软件右下角的Sync Scheme描述了同步信号的信息。左边是同步方式,一般选择“Digital Separate”(数字分离);右边是同步信号的极性,选择表示极性为正,即高有效。

Q:如何修改EDID文件?

大多数情况下,我们需要的EDID文件可由已知的EDID文件修改得到,步骤如下:

1、打开Phoenix EDID Designer软件

2、用软件打开需要修改的EDID文件

3、去掉只读属性

4、修改相应的EDID信息。一般需要修改的地方有:

(1)视频输入描述。VGA接口要选Analog,DVI接口要选Digital

(2)详细时序。将Block 1中的时序修改成需要的时序,将其他Block中的“显示器名称”修改成需要的名称

5、点击File->Save EDID as保存修改后的EDID文件

Q:修改EDID文件的时候需要注意什么?

A:修改EDID的时候要特别注意以下几方面:

1、视频输入描述不要选错,VGA接口选Analog,DVI接口选Digital,否则可能造成显卡无输出。如果需要一个VGA的EDID,最好修改前的EDID就是VGA的,而不是用一个DVI的EDID改成VGA的

2、同一种分辨率可能有多种刷新率,如60Hz、75Hz;多种时序,如Normal,Reduced Blanking等。修改EDID的时候要注意设备或显示器支持哪一种,不要改错。具体的时序说明参见VESA的标准文档

Q:如何在设备上加入EDID?

A:Q4中提到,DDC是传送EDID的通道,PC和设备之间的DDC连接如下图所示 

图中视频接口包括VGA、DVI等等。DDC实际上是一个I­­2C总线,PC通过它连接到一个I­2C Flash存储器上(一般是24LC21A),里面存储的就是EDID的128字节信息。在设备上加入EDID,就是将Flash接到DDC上,接法见下表。

接口

SDA

SCL

VGA

12

15

DVI

7

6

表中是DDC通道在VGA和DVI接口中对应的线序

然后就是将EDID信息写入Flash中。对于大屏控制器和融合器,目前的软件已经支持在PC端更新设备EDID,使用方法参见黄工的文档。而对于其他一些设备,可以使用专用的编程器来烧写Flash。针对生产部常用的EasyPRO 100B编程器,烧写步骤如下:

1、打开Phoenix EDID Designer软件

2、用软件打开需要烧写的EDID文件(dat格式)

3、点击File Export,将EDID文件保存为hex格式

4、用编程器软件调用hex文件进行烧写,具体过程不再赘述

本文转载自:https://blog.csdn.net/wangpeiyao5566/article/details/45270773

共有 人打赏支持
下一篇: Android Server
DB_Terrill
粉丝 24
博文 139
码字总数 24776
作品 0
大连
其他
私信 提问
[翻译完成] 树莓派配置文档config.txt说明

原文连接:http://elinux.org/RPiconfig.txt 由于树莓派并没有传统意义上的BIOS, 所以现在各种系统配置参数通常被存在"config.txt"这个文本文件中. 树莓派的config.txt文件会在ARM内核初始化...

八宝粥
2013/05/23
0
0
树莓派分辨率设置

部分摘自:树莓派实验室-自定义树莓派的显示分辨率 前言 config.txt中默认设置在大部分的硬件系统下都能很好地工作,但是视频输出常常出现问题。这个问题产生的主要原因是过扫描(overscan)...

遇见你
2016/02/18
506
0
读取显示器EDID信息

Deubg命令: a100 mov di, 130 mov ax, 4f15 mov bl, 01 xor dx, dx int 10 inc cx cmp ax, 014f jz 100 int 3 g d es:130 q 用debug ,可以看到lcd的edid。。 在dos下呼叫Int10是简单的,在......

长平狐
2012/09/03
1K
0
将 UWP 的有效像素(Effective Pixels)引入 WPF

在很久很久以前,WPF 诞生之初,有一个神奇的单位,它的名字叫做——设备无关单位(DIP,Device Independent Unit)。微软给它描绘了一片美好的愿景——在任何显示器上显示的尺寸是相同的。 ...

WPwalter
2017/11/23
0
0
ATEN宏正发表全新8x8 HDMI矩阵式影音切换器

VM0808H具备绝佳的弹性与控制力,适用于多屏幕HDMI架构 全球数字信息分享领导厂商 – 宏正自动科技(ATEN International,6277)今日针对旗下VanCryst™专业级影音产品线发表全新8x8 HDMI矩阵...

小衛
2016/03/02
7
0

没有更多内容

加载失败,请刷新页面

加载更多

POSIX正则

简介 因为之前对于POSIX类的正则表达式使用的比较少,也就没有上心去记忆,最近因为使用的比较多,就仔细的看了一下做了一个简单的总结。 表达式 \p{Lower} 小写字母字符:[a-z] \p{Upper} 大...

trayvon
51分钟前
1
0
soapui的安装使用

https://blog.csdn.net/weiqing723/article/details/78865734

暗中观察
57分钟前
0
0
ACID学习记录

ACID的C即一致性,打比方,多个线程并发执行转账业务:A转给B一块钱,无论成功与否(A+B)的总额是不会变的。事务执行前与执行后数据内在的逻辑始终是成立的。这里就是转账前与转账后两人存款的...

wmzsonic
今天
0
0
手写tomcat+servlet

写程序一定要有思路,思路很重要! 一、我们分两步第一步先实现手写tomcat,第二部写servlet 所用技术: 1、soket通信 IO流 2、http请求与相应 3、解析xml 4、java反射技术 导入所需要的jar...

jason_kiss
今天
1
0
Beetl模板的基础用法 【变量、循环、条件】---《Beetl视频课程》(2)

本期视频做了一个博客的首页列表; 内容简介:springboot 集成 beetlsql;使用for循环,使用if控制语句,使用虚拟属性,定义变量等等 一起学beetl目录:https://my.oschina.net/u/1590490?ta...

Gavin-King
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部