EDID

延伸显示能力识别(Extended display identification data,简称EDID)包含显示器分辨率、厂商名称与序号等信息。一般EDID存在于显示器PROMEEPROM内。一般如要读取EDID都是通过I2C,slave address是0x50[1]。目前HDMI 1.0 - 1.3c使用EDID结构1.3版。

许多现成的套装软件都可以读取并显示EDID信息,像是read-edid[2] 和 Powerstrip[3] 可以使用于Windows之上,又如XFree86 〔将EDID 数据输出到log档, 如果 verbose logging 是在 (startx -- -logverbose 6)〕可以使用于Linux平台上,以及BSD Unix。在Linux平台上也可以看到raw EDID的十六进位格式,只要你运行 "xrandr --verbose"。Mac OS X平台上可自然的读取EDID信息 (见 /var/log/system.log or hold down Cmd-V on startup) 并加以程序化,像是 SwitchResX[4] 或 DisplayConfigX[5] 可以显示其信息。

EDID 1.3 数据格式

字节串行
0x00-0x13: 标头信息
  0x00–0x07: 标头信息 "00h FFh FFh FFh FFh FFh FFh 00h"
  0x08–0x09: 制造商ID。 这个识别码是经由微软来分配。 
              "00001=A”; “00010=B”; ... “11010=Z”,每个字符是5bits。 第7bit (地址 08h) 是0, 第一个字符(字母)
              是位于bit 6 ~ 2 (地址 08h), 第二个字符(字母)是位于bit 1和0 (地址 08h) 和 bit7 ~ 5
              (地址 09h),第三个字符(字母)是位于bit4 ~ 0 (地址 09h)。
              Ex:
                 制造商ID : CEA -> 00011 00101 00001
                 EDID Byte 8~9: 0CA1
        
  0x0A–0x0B: 生产ID码 (保存方式是LSB开始)。 由制造商分配。
  0x0C–0x0F: 32比特序号。 非必需格式。 通常保存由 LSB 优先。为了去维持和之前需求的兼容性,假如一个ASCII
              序号在详细时脉部分被提供,这个字段应该设置至少一个字节不是零。
  0x10: 制造周。 这个由制造商改变。 法一是去计算一月的 1-7 当做第一周,一月 8-15 当做第二周并且以此
        类推。 一些计算是以星期几(星期日-星期六)为基础。有效范围是 1-54。
  0x11: 制造年份。 加上1990才是确实的年份。
  0x12: EDID 版本号码。 "01h"
  0x13: EDID 修订版号码。 "03h"

0x14-0x18: 基本显示参数
  0x14: 影像输入定义
        比特 7: 0=模拟, 1=数字
        假如 比特 7 是数字:
          比特 0: 1=兼容DFP 1.x
        假如 比特 7 是模拟:
          比特 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: 锯齿垂直同步
  0x15: 最大水平图形尺寸 (单位为公分)。
  0x16: 最大垂直图形尺寸 (单位为公分)。
  0x17: 显示伽玛。 除以100再加1才是真正的值。
  0x18: 电源管理和支持的特征:
      bit 7: 待命
      bit 6: 暂停
      bit 5: 活跃关闭/低电源
      bit 4-3: 显示型态
        00=黑白, 01=RGB 色彩, 10=非 RGB 多色彩, 11=未定义
      bit 2: 标准色彩空间
      bit 1: 偏好时脉模式
      bit 0: 缺省 GTF 支持

0x19-0x22: 色度调节
  0x19: 低有效位关于红色 X1X0 (比特 7-6), 红色 Y1Y0 (比特 5-4), 绿色 X1X0 (比特 3-2),
        绿色 Y1Y0 (比特 1-0)。
  0x1A: 低有效位关于蓝色 X1X0 (比特 7-6), 蓝色 Y1Y0 (比特 5-4), 白色 X1X0 (比特 3-2),
        白色 Y1Y0 (比特 1-0)。
  0x1B–0x22: 高有效位关于红色 X9-2, 红色 Y9-2, 绿色 X9-2, 绿色 Y9-2, 蓝色 X9-2, 
        蓝色 Y9-2, 白色 X9-2, 白色 Y9-2。
  正确值是介于0.000和0.999,但编码值是介于000h和3FFh。

0x23: 创建时脉 I
      比特 7-0: 720×400@70 Hz, 720×400@88 Hz, 640×480@60 Hz, 640×480@67 Hz,
           640×480@72 Hz, 640×480@75 Hz, 800×600@56 Hz, 800×600@60 Hz

0x24: 创建时脉 II
      比特 7-0: 800×600@72 Hz, 800×600@75 Hz, 832×624@75 Hz, 1024×768@87 Hz (交错的),
           1024×768@60 Hz, 1024×768@70 Hz, 1024×768@75 Hz, 1280×1024@75 Hz

0x25: 制造商保留的时脉
      00h 是无
      比特 7: 1152x870 @ 75 Hz (麦金塔 II, 苹果)

0x26–0x35: 标准时脉识别。
            第一个字节
            水平结果。  加上31,再乘上8, 得到正确值。
            第二个字节
              比特 7-6: 外观比例。 正确的垂直结果依赖水平结果。
              00=16:10, 01=4:3, 10=5:4, 11=16:9 (00=1:1 在v1.3之前)
              比特 5-0: 垂直频率。 加上 60 去得到正确的值。

0x36–0x47: 详细时脉描述 1
  0x36–0x37: 像素时脉 (单位为 10 kHz) 或 0  (55 MSB  54 LSB)
  假如像素时脉并非无效:
    0x38: 水平活跃 (单位为像素)
    0x39: 水平空白 (单位为像素)
    0x3A: 水平活跃高 (4 高比特)
           水平空白高 (4 低比特)
    0x3B: 垂直活跃 (单位为线)
    0x3C: 垂直空白 (单位为线)
    0x3D: 垂直活跃在高有效位 (4 高比特)
           垂直空白在高有效位 (4 低比特)
    0x3E: 水平同步偏移量 (单位为像素)
    0x3F: 水平同步脉冲宽度 (单位为像素)
    0x40: 垂直同步偏移量 (单位为线) (4 高比特)
           垂直同步脉冲宽度 (单位为线) (4 低比特)
    0x41: 高有效位关于水平同步偏移量 (比特 7-6)
           高有效位关于水平同步脉冲宽度 (比特 5-4)
           高有效位关于垂直同步偏移量 (比特 3-2)
           高有效位关于垂直同步脉冲宽度 (比特 1-0)
    0x42: 水平图像尺寸 (单位为公厘)
    0x43: 垂直图像尺寸 (单位为公厘)
    0x44: 高有效位关于水平图像尺寸 (4 高比特)
           高有效位关于垂直图像尺寸 (4 低比特)
    0x45: 水平边界线 (单位为像素且只表示一边)
    0x46: 垂直边界线 (单位为线且只表示一边)
    0x47: 交错与否 (比特 7)
           立体与否 (比特 6-5) ("00" 表示否)
           分离同步与否 (比特 4-3)
           垂直同步正与否 (比特 2)
           水平同步正与否 (比特 1)
           立体模式 (比特 0) (若是6-5 是 00 则没使用)
  假如像素时脉是无效:
    0x38: 0
    0x39: 区块型态
           FFh=监视器序号, FEh=ASCII 字符串, FDh=监视器变动限制, FCh=监视器名称,
           FBh=色彩点数据, FAh, 标准时脉数据, F9h=现在未定义, 
           0Fh=由制造商定义
    0x3A: 0
    0x3B–0x47: 区块内容描述符。
           假如区块型态是 FFh, FEh, 或 FCh, 整个区域是字符串。
           假如区块型态是 FDh:
             0x3B–0x3F:
               最小垂直频率, 最大垂直频率, 
               最小水平频率 (单位为 kHz), 最大水平频率 (单位为 kHz), 像素时脉 
               (单位为 MHz (正确值需乘上10))
             0x40–0x41: 第二 GTF 触发器
               假如编码值是 000A, 字节 59-63 是使用。 假如编码值是 0200, 
               字节 67–71 是使用。
             0x42: 开始水平频率 (单位为 kHz)。  乘上2得到实际值。
             0x43: C。 除以 2 得到实际值。
             0x44-0x45: M (以LSB优先保存)。
             0x46: K
             0x47: J。 除以 2 得到实际值。
           假如区块型态是 FBh:
             0x3B: W 索引 0。 假如设置成 0, 字节 60-63 是没使用。 假如设置成 1, 61–63 是 
                    分配到白点索引 #1
             0x40: W 索引 1。 假如设置成 0, 字节 65-68 是没使用。 假如设置成 2, 65–68 是 
                    分配到白点索引 #2
             白点索引结构:
               第一个比特
                 比特 3-2: 低有效位关于白 X (比特 3-2), 白 Y (比特 1-0)
               第二到第三字节: 高有效位关于白 X, 白 Y。
               第四字节: 伽玛。 除以100, 再加上1得到实际值。
               解码白 X 和白 Y, 看字节 25-34。
           假如区块型态是 FAh:
             0x3B–0x46: 标准时脉识别。  2 字节对于每一个纪录。
                          关于结构细节, 看字节 38-53。

0x48–0x59: 详细时脉描述 2 或监视器描述符

0x5A–0x6B: 详细时脉描述 3 或监视器描述符

0x6C–0x7D: 详细时脉描述 4 或监视器描述符

0x7E: 额外的旗标。 额外的数值采用这个区块。
      在EDID 1.3之前, 这是被忽略的, 并且应该被设成 0。

0x7F: 校验和 - 这个字节应该被程序化使得所有 128 字节的加总等于 00h.

参见

  • 电脑标准列表

注释

  1. . [2009-11-11]. (原始内容存档于2011-02-10).
  2. . [2009-11-11]. (原始内容存档于2010-12-11).
  3. . [2009-11-11]. (原始内容存档于2011-03-08).
  4. . [2009-11-11]. (原始内容存档于2009-02-08).
  5. . [2009-11-11]. (原始内容存档于2011-07-18).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.