HDMI EDID 处理过程
Posted zhongguo135
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDMI EDID 处理过程相关的知识,希望对你有一定的参考价值。
DDC的参数
EDID是一种VESA 标准数据格式,其中包含有关监视器及其性能的参数,包括供应商信息、最大图像大小、颜色设置、厂商预设置、频率范围的限制以及显示器名和序列号的字符串。EDID数据标准:EDID(Extended Display Identification Data Standard)至今已发布到第三版本,即EDID Version 3,前面分别有EDID Version 1.0,Revision 0,EDID Version 1,Revision 1,EDID Version 2,Revision 0,EDID Version 2,Revision 1等版本。就数据信息量而分,EDID分为128 BYTE和256 BYTE,将来也许会有更多数据信息量的新版EDID公布
由于显示类型和功能的不断增加,128个字节变得捉襟见肘起来,EDID和DDC都进行了扩展,因此多重128字节的数据块可以进行交换。这就是在众多消费品上所用到的E-EDID。E-EDID是基于EDID结构1.4的,允许附加数据存储在多个扩展数据块中。在最小的配置中,E-EDID只包含一个数据块,即基本EDID—数据块0。每一个数据块长度都是128个字节。扩展数据块被顺序附加在基本EDID后面。如Table2.4所示。目前已经有几个扩展数据块被指定了选定的功能。除了扩展数据块Map,所有的扩展数据块都应该包含一个字节用于扩展数据块修订版本号。
E-EDID数据结构被HDMI采用,在HDMI规范中,同样使用DDC通道访问EDID存储器,以确定显示设备的功能和属性。因为 HDMI 标准要求每个 HDMI接口都保留有一份 EDID 数据,常见的做法是每个 HDMI口会有一个 EEPROM 来保存这份数据。外接 HDMI 主设备如 DVD 播放器在 HDMI 热插拔的时候就会通过 HDMI的DDC通道来读取EDID数据。EDID里面主要是定义了这显示设备所支持的图像分辨率,支持的声音格式,声音通道,及 3D 等等,其目的是告诉外接设备我所支持的特性,让 HDMI 主设备输出一个我所支持的时序。HDMI规范规定,EDID的第一个128Byte必须是符合EDID1.3的数据结构,第二个128Byte必须是符合EIA/CEA-861B的CEAEDID时序扩展数据结构。
在HDMI IP中支持CEA-861-D定义的E-EDID数据结构。E-EDID的I2C的从机地址是0xA0/0xA1。在开发板上 DDC 信号通过电平转换直接连接到FPGA的 IO 上,即I2C的时钟和数据线。可以通过FPGA 程序实现这个 EEPROM 的功能。第一个E-EDID扩展,应该包含一个CEA 扩展版本3,它在CEA-861-D的7.5部分定义。但是不包含CEA扩展版本1和扩展版本2。
EDID 扩展版本3:(CEA-861-D的7.5部分定义)
下图是从HDMI接收部分查询到的数据,我们与上面的扩展版本3对照来分析下。
从57~64是video Data Block
从23~01是Audio Data Block
从7e~00是Vendor Specific Data Block
从67~03是Vendor Specific Data Block
从E2~4B是Use Extended Tag
从E4~60是Use Extended Tag
从56~1a是18个数据长度
从66~1e是18个数据长度
方框中的两个数据02正好是第129个数据,地址为128.正好与CEA-861-D中定义的扩展版本3一样。02表示Tag = 2 ,03表示扩展修定版本为3.字节3对就的数据4fh(79)就是后面提到的d。那我们先来分析下从地址4到地址d-1(也就是78)都有哪些参数(上面提到是数据块集)。根据图中提示我们找到图28.
从表28中可以看到这些数据图有视频数据块、音频数据块、厂商指定数据块和扬声器分配数据块。这些数据块的顺序是可调的。在这些数据块中第一个字节称为标签码,高3位表示数据块类型,低5位表示数据的字节长度,它不包括第一个字节在内。下面是数据块类型表示:
如果标签码是7,那在这个数据块中的第二个字节是一个扩展的标签码。并且这个扩展的标签码是算在长度之内的。数据块的长度指示为5位,所以从标签码0~6数据块的长度为31,而标签码为7的数据块长度为30个字节。下图是对扩展标签码的定义。
那这些数据块具体怎样呢,这由HDMI自己定义,我们可以再看HDMI H1.4b关于扩展部分的定义。H1.4b中提到第一个CEA扩展应该包含一个HDMI VSDB。
HDMI Vendor-Specific Data Block(HDMI VSDB)h1.4b
第一个CEA扩展包含一个HDMI VSDB.如上图中找到的03 0c 00部分,从03到00总共为30个数据,这是由7E来定义的。
8.3.4 Video Capability Data Block (VCDB)
HDMI Forum Vendor Specific Data Block(HF-VSDB)
HF-VSDB在H2.0中定义。HF-VSDB用于接收器件指示H2.0支持的特征。
注意HF-VSDB不能与H14b VSDB相混淆。即使接收端支持HDMI2.0版本,也必须包含H14b VSDB(由HDMI H1.4b定义),在E-EDID中是否包含是可选的,除非接收端支持Table10-5中一项或者多项特性。
从上图方框中的D8 5D C4可以看出。
以上是关于HDMI EDID 处理过程的主要内容,如果未能解决你的问题,请参考以下文章