转载本博客文章,请注明出处
【HDMI原理】HDMI之EDID信息解读
1、EDID功能及用途
EDID全称为Extended Display Identification Data,是由VESA协会制定的显示器标准信息格式。具体来说,EDID其实就像是显示器的身分证,其内容会包含显示器的相关信息,如显示器名称、产品序号、支持分辨率、声音格式等等。目的是为告诉输出端显示器支持的能力,确保计算机或是机顶盒等影音输出装置,在连接上显示器后,能根据信息输出正确的影音格式,因此可以避免无法显示或显示比例不正常等状况发生,带给用户更好的体验。
目前此项技术已广泛应用于影音显示接口如 DisplayPort、HDMI。在实际设计上,为了要容纳先前提到的EDID信息于显示器中,一般会使用储存装置如 ROM 来进行储存,并且在HDMI接口会利用I2C的接口来进行双向的数据传输。
图1:EDID传输架构
以HDMI接口为例,EDID的沟通过程:
1)一般情况下,当信号源成功连接到显示器时,显示器会将HPD电压拉高,表示连接成功。HPD电压的变化可以触发显示器的自动配置,以适应所连接的信号源的分辨率和其他显示设置。这样,显示器可以正确地显示信号源的内容,并与其进行正常的通信。
2)在连接成功后,输出端可以通过SDA(Serial Data Line)和SCL(Serial Clock Line)两条数据线与显示器进行通信,以请求读取显示器的EDID(Extended Display Identification Data)信息。根据HDMI规范,输出端可以通过硬件设计,在显示器关机时通过提供的5V电源将HPD电压拉高。这意味着即使显示器处于关机状态,输出端仍然可以读取显示器的EDID信息。这样可以提供更好的兼容性和功能支持,使输出端能够在任何时候获取到显示器的正确信息。
3)当输出端能够正确读取显示器的EDID格式时,可以根据双方的能力进行预设的影音输出设置。这通常包括选择适当的分辨率、刷新率和色彩空间等参数,以确保最佳的显示效果。然而,如果显示器的EDID格式有误或者显示适配器无法正确理解EDID信息,可能会导致一些问题。根据不同的显示适配器厂商的设计方式,计算机可能会将屏幕识别为非即插即用(Non-PNP)设备,并输出大部分显示器所支持的最基本分辨率,例如HDMI的最低要求640x480p@60Hz。在其他情况下,显示适配器可能会显示为"Inactive"(不活动)并呈现反灰,表示没有任何画面输出。这可能是因为显示适配器无法正确读取或解析显示器的EDID信息,无法确定适合的配置。
2、EDID历史版本更新
EDID相关标准在不断更新,从下表可以看到EDID的版本由EDID1.0演进至E-EDID1.4,再到最新的Display ID 2.0格式。EDID从原先只能容纳单一个128Byte的Block的EDID1.0版本,到目前发展到能利用Extension Block格式在EDID内放置多个Block,最多可放置256个Block的E-EDID1.4版本。而在现今 HDMI 接口中,并非使用最新的Display ID格式,因协会为确保与旧有产品间的兼容性,目前仍采用 E-EDID1.3架构。
3、Extension Blocks简介
对于EDID信息的解读,首先需要了解EDID的基本结构。EDID是由多个块(Blocks)组成的,其中最基本的块被称为Block0或Base Block。Block0是EDID的第一个块,它包含了一些基本的显示器信息。Block0的大小为128个字节(Byte),每个字节使用16进制格式进行数据填写。每个字节(Byte)都包含了特定的信息,如显示器的制造商ID、产品序号、制造日期、支持的分辨率和刷新率等。这些信息被以特定的格式编码,并按照规定的顺序填写在Block0中的相应位置。除了Block0之外,EDID还可以包含其他块,如扩展块(Extension Blocks),用于提供更多的显示器信息和功能支持。这些块的数量和内容可以根据具体的显示器和EDID版本而有所变化。
EDID Block0