分享

显示器EDID经验交流

 清扬视频 2017-01-09

显示器主要有两个接口,HDMI/VGA.从早期的VGA到现在的HDMI高清画面,无疑在显示技术上越高科技。姑且不论这两个接口画面的显示技术。我们先来看下显示器EDID部分。每次谈到EDID,我第一个概念就是VGA有128字节,HDMI有256字节。初一看,HDMI首先体现了它的强势所在。连内容都比人家多一倍。

       提到EDID 不得先提一下DDC及EDID的作用。DDC(Display Data Channel显示数据通道)指主机与显示设备的通讯方式。目前主要大多采用DDC2B(主机与显示设备双向通讯方式)方式获取EDID数据。EDID(Extended Display Identification Data外部显示设备标示数据),EDID的基本信息主要包含(制造厂商,产品名称,可支持分辨率,最大行场频,3D功能等)。目前EDID版本V1.3。其实EEDID已经出来,不过很少在使用过。DDC主要为主机获取显示器的EDID数据,以便主机可以提供给显示器合适的分辨率及查看显示器信息。作为客户我们有时候会不经意的接触到EDID,比如我们调节一个分辨率时,这时候我们就已经涉及到了。因为作为显示屏它所能支持的分辨率总是有限,为了不使客户不小心的调到一个显示屏不可支持的分辨率,导致画面黑屏,这时候我们的系统就会调用EDID的信息(可支持分辨率),来设身处地的为该显示屏打造用户可选的进度条。

显示器EDID经验交流 - steven - steven的博客
对于客户主机来说,显示屏就是一个外接设备。既然是外设,那肯定需要外设的信息,EDID就是外设的信息。 如果在这边没有监视器上没有抓取到即插即用的信息,则用户主机没有识别到显示器的信息。它仍然会作为默认监视器来使用,但系统对用户可选的分辨率进度调就编程显卡默认支持的分辨率了。这时候用户可要小心了,不要切到一个该显示器无法识别的分辨率,会导致黑屏或画异,要怎么处理只能靠你自己的本事了。(估计好多朋友都碰到过这样的事情)
显示器EDID经验交流 - steven - steven的博客
 

      EDID的存放方式有两种,存放在24c02 EEPROM或者直接存放在Flash IC上。主机通过寻址的方式向显示器发送请求获取EDID信息。注:存放在Flash IC上大多数需要在该IC启动后才能读取到EDID信息,而24c02则可以通过接口提供的5V电压直接工作来获取EDID信息。两种做法有利有弊,前一种主要是增加成本。而我们之前谈到系统有时候会抓取不到EDID或者错误的EDID,一种是因为我们的显示器一般是即插即用的,所以连接上显示器后,由主机或者更严格的说是显卡就回去读取显示器的信息。而该信息只读取一次,如果失败它就会被默认为默认监视器。所以识别失败后只能再次做拔插动作。而失败原因有好几种,例如:EDID存放在flash中,如果没有很好的上电时序,则EDID很难在flash中读取到。另一种跟显卡对DDC发送的数据DATA和clock的电压幅值有关系,如果显卡对传输数据的电压较苛刻,也会读取不到EDID。(不过一般厂商在显示器出厂时都会做主流显卡的兼容测试,所以不用担心这个问题)

      回归正传,其实HDMI的前128字节和VGA128字节内容是一致的,而后128字节主要描述HDMI独有的Audio,speaker,vendor,3D,vedio timing部分(该部分在HDMI1.4上都有介绍)。那为什么前128字节一致呢?答案是HDMI中包含了DVI timing,该DVI timing即VGA timing。我们在DVI转HDMI的接口上会用到。那什么是Vedio timing和VGA timing呢?VGA timing顾名思义就是VGA接口使用的timing,传送的是RGB信号,例1280*768等。Vedio timing则是HDMI专有的,传送component信号,例如:1080i,1080P。(关于DVI和HDMI的区别会在其它文章中体现)。当然这前128字节和后128字节不再一一说来,篇幅太长了。前128字节所包含内容如下:机种信息,厂商信息,生产日期,显示器色温信息,Feature supported一些特殊的功能,Video input define定义模拟信号还是数字信号,还定义可支持分辨率如下模块:

1、Established Timing:VESA定义的timing,总共有17个默认可选的timing(其中还包含3个MAC timing哦)

2、Standard Timing:由Hactive、aspect ratio和场频组成,Hactive指水平分辨率,aspect ratio指水平分辨率和垂直分辨率的比值,一般有16:10、16:9、4:3、5:4,比如1280 16:9 60组成起来就是1280 x 720 @ 60HZ。每组两个字节,可填写8组。

3、detail timing:用来包含该显示器最佳的分辨率,每个detail timing由18个字节组成。例如一个显示器最大可支持到1366 x 768 @60HZ,则以该分辨率来填写到detail timing中。该18个字节中,描述了Timing的主要信息,例:行场信息,active pixel,blanking大小,同步信号描述等。Detail timing中有时候会包含两种一样的分辨率,区别是:一个是RB(reduced blanking在另外的章节有讲),一个是不带RB的。

注:经验之谈,在VGA 信号且系统处在window XP下,如果EDID中最大分辨率为1366 * 768,且该EDID中还包含1280 * 1024,则1280 * 1024 @ 60 在系统操作界面的屏幕显示分辨率上用户无法选择到。

原因:window XP首先识别最大行active pixel为1366,则以该1366 * 768 @ 60作为屏幕显示分辨率进度条的最大可显示分辨率,这时候进度条之前的分辨率都必须在Hactive pixel和Vactive pixel小雨1366 * 768,否则无法再进度条上选择到。

    HDMI部分可以成为EDID的扩展部分,HDMI对比DVI增加了Audio,Color deep,latency,3D,COMPONENT信号等内容,所以该扩展部分就是用来描述这些内容的。首先我们简单的把HDMI 部分分类为:

1、Audio Data Block(linear pcm,AC-3,AAC等音频格式)

2、Speaker Allocation(FL/FR,RC等格式)

3、SVD(固定的Vedio部分,有指定的Video ID Code,最后还会与3D描述部分结合来指定显示3D的格式及分辨率)

4、Vendor Specifc:

(1)、Physical Address:这个很重要哦,主要用来指定HDMI EDID的地址。是唯一的一个物理地址,讲的HDMI时,我们还要涉及到逻辑地址的使用(以后在HDMI选址再描述)

(2)、支持的Deep color,例如:YCbCr4:4:4:,YCbCr4:2:2,RGB4:4:4.支持的bit color。

(3)、最大的TMDS clock描述,有支持Deep color或TMDS Clock大于165MHZ或着支持DVI Dual Link时才需要填写。它的计算法则如下:

显示器EDID经验交流 - steven - steven的博客
(4)、Audio and Video latency:该内容与SPIDF有关,一般不填写。
(5)、HDMI_Video_Present:主要是与3D部分有关系。
(6)
显示器EDID经验交流 - steven - steven的博客
5、detail Timing
HDMI也有detail Timing的描述,主要是component timing的。该部分detail timing比较宽裕,总共可以填写6个18字节的timing。
timing 内容与之前描述的VGA detail timing一致。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多