一、EDID簡介
EDID: Extended Display Identification Data (外部顯示設備標識數據)----指DDC通訊中傳輸的顯示設備數據。
Q1:EDID是什么?
A1:EDID的全稱是Extended Display Identification Data(擴展顯示標識數據),VGA、DVI的EDID由主塊128字節組成,HDMI的EDID增加擴展塊(128字節),擴展塊的內容主要是和音頻屬性相關的,DVI和VGA沒有音頻,HDMI自帶音頻,擴展塊數據規范按照CEA-861x標准定義,未來可能增加到512或256的整數倍。
其中包含有關顯示器及其性能的參數,包括供應商信息、最大圖像大小、顏色設置、廠商預設置、頻率范圍的限制以及顯示器名和序列號的字符串等等。形象地說,EDID就是顯示器的身份證、戶口本、技能證書等證件的集合,目的就是告訴別人我是誰,我從哪來,我能干什么。
Q2:為什么要使用EDID?
A2:為了能讓PC或其他的圖像輸出設備更好的識別顯示器屬性
EDID並非古而有之,在古老的CRT時期是沒有EDID這個概念的,那為什么后來會有呢?因為隨着顯示設備的發展,顯示器的種類越來越多,模擬的、數字的、普屏的、寬屏的、17寸、19寸、22寸……這讓PC傻了眼,分辨率和時序的種類太多了,而每種顯示器又不可能支持所有的分辨率,那怎么知道該給顯示器一個什么樣的分辨率啊?顯示出的效果是最佳效果嗎?不僅如此,隨便輸出一個分辨率還有損壞顯示器硬件的可能,這可太危險了。於是,EDID臨危受命,擔當起顯示器和PC之前的傳話筒。“PC你好,我是A顯示器,我能顯示N種分辨率,最佳分辨率是XXX”。“顯示器你好,收到你的信息,現在就按最佳分辨率給你輸出”。這下大家明白了吧,EDID就是為了能讓PC或其他的圖像輸出設備更好的識別顯示器屬性而出現的。
Q3:經常聽到有同志一會說“EDID信息”,一會說“DDC信息”。那么哪種說法更准確?EDID和DDC的關系又是什么?
A3: DDC的全稱是Display Data Channel(顯示數據通道),顧名思義,它是一個通道。我們可以說DDC是用來傳送EDID信息的,也可以說EDID信息是通過DDC傳送的,所以,“DDC信息”的說法並不准確。
Q4:每個顯示器只有一個EDID嗎?
A4:不一定。
現在的顯示器功能很強大,通常都提供多種視頻接口,常見的有DVI、VGA、HDMI、Display Port等,由於每種接口的特性和帶寬不同,使得不同接口的EDID也不同。使用哪個接口,PC讀到的就是哪個接口的EDID。我們的設備主要使用DVI、VGA、HDMI幾種接口。由於VIDEO接口的幾種制式如PAL、NTSC等,其分辨率場頻都是固定的,沒有使用EDID的必要,故不在討論之列。
Q5:EDID對我們到底有什么用?
A5:要回答這個問題,首先要弄清我們設備的應用場景,請看下圖
這是一個典型的應用場景,PC將視頻信號發送到我們的設備上,經過一系列的傳輸或切換,設備將視頻信號發送到顯示器或投影機上,也就是說,我們的設備位於PC和顯示器之間。首先,在輸入端,設備需要讓PC知道自己是能夠輸入視頻信號的,換句話說,設備要“欺騙”PC,讓PC認為自己是一台顯示器。如果不這樣的話,PC可能會拒絕輸出任何視頻信號的(VGA接口不需要EDID也能輸出)。除此之外,設備還要告訴PC自己支持的顯示時序。而在輸出端,當設備需要自建輸出時序(如大屏控制器的輸出卡)而不是簡單的復制輸入時序(如各種矩陣設備)的時候,就需要知道顯示器支持的顯示時序,從而讓自己輸出的信號能在顯示器上正常顯示。在這些地方,EDID就發揮作用了。在輸入端PC通過讀取設備上的EDID來獲悉設備支持的顯示時序,而同樣,在輸出端設備需要讀取顯示器的EDID來確定自己的輸出時序。
二、EDID主塊詳解
1. EDID主塊結構
2. Header:
在EDID的開頭八個字節為EDID的開始標志,簡稱頭,固定為:
00H |
01H |
02H |
03H |
04H |
05H |
06H |
07H |
00 |
FF |
FF |
FF |
FF |
FF |
FF |
00 |
3. Vendor / Product Identification
這十個字節表示產品ID和制造商信息。詳細如下:
08H |
09H |
0AH |
0BH |
0CH |
0DH |
0EH |
0FH |
10H |
11H |
制造商名稱 |
產品代碼 |
產品序列號 |
制造周 |
制造年份 |
制造商名稱:3個字母組成,基於壓縮的ASCII碼見下表,例如“00001=A”… …”11010=Z”。這兩字節排列如下:
地址 |
位 |
|||||||
bit1 |
bit2 |
bit3 |
bit4 |
bit5 |
bit6 |
bit7 |
bit8 |
|
08H |
- |
(4 |
3 |
2 |
1 |
0) |
(4 |
3 |
|
字符1 |
字符2 |
||||||
09H |
2 |
1 |
0) |
(4 |
3 |
2 |
1 |
0) |
字符2 |
字符3 |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
00001 |
00010 |
00011 |
00100 |
00101 |
00110 |
00111 |
01000 |
01001 |
01010 |
01011 |
01100 |
01101 |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
01110 |
01111 |
10000 |
10001 |
10010 |
10011 |
10100 |
10101 |
10110 |
10111 |
11000 |
11001 |
11010 |
產品代碼:固定為4位16進制數,即兩個字節,為客戶提供,直接填寫。
產品序列號:即產品的流水號(數值型),直接轉成16進制或以ASCII格式轉換。序列號也可用字符型,在后面DTD部分定義。
生產周:即在當年中的生產周,范圍1~52,注意0為無效值。
生產年份:規定1990開始計算,即1990年為0,然后遞增計算。
4. EDID Structure Version / Revision
字節 |
EDID版本及修改 |
備注 |
1(12H) |
版本號 |
|
1(13H) |
修改號 |
|
5. Basic Display Parameters / Features
5 |
字節 |
基本的顯示參數/特征 |
|
14H |
1 |
視頻信號定義 |
見下表 |
15H |
1 |
最大水平圖像尺寸 |
cm |
16H |
1 |
最大垂直圖像尺寸 |
cm |
17H |
1 |
顯示傳輸特性(Gamma) |
(gamma x 100)-100,[1.00→3.55] |
18H |
1 |
電源管理標准(DPMS) |
見下表 |
字節 |
位 |
類型 |
詳細描述 |
|
14H |
7 |
模擬/數字信號 |
模擬= 0,數字= 1 |
|
如bit7=0,即模擬信號,bit6~0定義如下: |
||||
6 |
信號電平[6:5] |
參閱下列定義。 Bit6 Bit5 Operation 0 0 0.700,0.300(1.000Vp-p) 0 1 0.714,0.286(1.000Vp-p) 1 0 1.000,0.400(1.400Vp-p) 1 1 0.700,0.000(0.700Vp-p) |
||
5 |
||||
4 |
setup |
一般為0 |
||
3 |
同步輸入支持[3] |
如果設置1, 支持同步分離信號; |
||
2 |
同步輸入支持[2] |
如果設置1, 支持同步復合信號(在水平同步行信號上); |
||
1 |
同步輸入支持[1] |
如果設置1, 支持同步SOG信號; |
||
0 |
同步輸入支持[0] |
如果設置1, 場同步掃描起點,脈沖須在復合同步信號或同步SOG信號被使用; |
||
如bit7=1,即模擬信號,bit6~0定義如下: |
||||
6-1 |
保留 |
|
||
0 |
DFP 1.x |
If set = 1, Interface is signal compatible with VESA DFP 1.x TMDS CRGB, 1 pixel / clock, up to 8 bits / color MSB aligned,DE active high |
字節 |
位 |
特點支持 |
詳細描述 |
18H |
7 |
Standby待機 |
是否支持Standby功能 |
6 |
Suspend掛起 |
是否支持Suspend功能 |
|
5 |
Active Off/Very Low Power |
是否支持Off Mode功能 |
|
[4:3] |
顯示類型[4:3] |
Bit4 Bit3 解釋 0 0 黑白/灰度顯示 0 1 RGB顏色顯示 1 0 非RGB多彩色顯示,如RGY 1 1 沒有定義 |
|
2 |
標准默認顏色空間sRGB |
如果置1,顯示將使用默認的顏色空間sRGB作為基色 |
|
1 |
推薦分辨率模式 |
如果置1,推薦分辨率為第一個詳細描述的時序(DTD) |
|
0 |
支持GTF |
如果置1,支持GTF標准分辨率 |
6. Color Characteristics
字節 |
顏色特征 |
基於CIE出版15.2測定空間 |
19H |
Red / Green Low Bits 紅綠場xy坐標低2位值 |
Rx1 Rx0 Ry1 Ry0 Gx1 Gx0 Gy1 Gy0 |
1AH |
Blue / White Low Bits 藍白場xy坐標低2位值 |
Bx1 Bx0 By1 By0 Wx1 Wx0 Wy1 Wy0 |
1BH |
Red_x紅場畫面x坐標 |
Red_x bits 9 →2 |
1CH |
Red_y紅場畫面y坐標 |
Red_y bits 9 →2 |
1DH |
Green_x綠場畫面x坐標 |
Green_x bits 9 →2 |
1EH |
Green_y綠場畫面y坐標 |
Green_y bits 9 →2 |
1FH |
Blue_x藍場畫面x坐標 |
Blue_x bits 9 →2 |
20H |
Blue_y藍場畫面y坐標 |
Blue_y bits 9 →2 |
21H |
White_x白場畫面x坐標 |
White_x bits 9 →2 |
22H |
White_y白場畫面y坐標 |
White_y bits 9 →2 |
7. Established Timings
提供一些基本固定的VESA, Apple, Mac, IBM VGA等輸出的Timing
字節 |
位 |
描述 |
信源 |
23H |
7 |
720 x 400 @ 70Hz |
IBM, VGA |
6 |
720 x 400 @ 88Hz |
IBM, XGA2 |
|
5 |
640 x 480 @ 60Hz |
IBM, VGA |
|
4 |
640 x 480 @ 67Hz |
Apple, Mac II |
|
3 |
640 x 480 @ 72Hz |
VESA |
|
2 |
640 x 480 @ 75Hz |
VESA |
|
1 |
800 x 600 @ 56Hz |
VESA |
|
0 |
800 x 600 @ 60Hz |
VESA |
|
24H |
7 |
800 x 600 @ 72Hz |
VESA |
6 |
800 x 600 @ 75Hz |
VESA |
|
5 |
832 x 624 @ 75H z |
Apple, Mac II |
|
4 |
1024 x 768 @ 87Hz(I) |
IBM |
|
3 |
1024 x 768 @ 60Hz |
VESA |
|
2 |
1024 x 768 @ 70Hz |
VESA |
|
1 |
1024 x 768 @ 75Hz |
VESA |
|
0 |
1280 x 1024 @ 75Hz |
VESA |
|
25H |
7 |
1152 x 870 @ 75Hz |
Apple, Mac II |
6-0 |
保留 |
|
8. Standard Timing Identification
這16個字節提供最多8種分辨率的識別,每一種分辨率都是由2個字節的模式格式和刷新率得到的。這些分辨率都沒有包含Established Timings中。備注:這2個字節的識別碼都是由VESA標准分辨率來定義的,它們都是VESA分辨率的一部分,未使用的字節應該設為01H. 詳細設定見表12。
字節 |
位 |
描述 |
源 |
|
|
標准分辨率定義1 |
注釋 |
26H |
|
(水平活動像素 /8)-31 |
一個字節能夠的水平活動像范圍是 256-2以 8 個像素為增加 |
27H |
7,6
5-0 |
畫面比 Bit7 Bit6 生效 0 0 1 : 1 畫面比 0 1 4 : 3 畫面比 1 0 5 : 4 畫面比 1 1 16 :9 畫面 比 刷新率( Hz ) -60 |
畫面比 = 水平像素 / 垂直活動
范圍是 60-123Hz |
28H-29H |
|
同上 |
同上 |
2AH-2BH |
|
同上 |
同上 |
2CH-2DH |
|
同上 |
同上 |
2EH-2FH |
|
同上 |
同上 |
30H-21H |
|
同上 |
同上 |
32H-33H |
|
同上 |
同上 |
34H-35H |
|
同上 |
同上 |
9. Detailed Timing Descriptions(DTD)
共72個字節分為四個詳細時序描述塊(DTD),每部分18個字節,故最多可以對四個TIMING進行詳細描述。
Detailed Timing Descriptions(DTD)還可以用來描述顯示器的其他特性,如機型名、最大頻率范圍,字符型序列號SN,字符串描述信息等,如下結構:
10. Extension Flag
擴展標志:除主塊128字節外,如果有擴展塊則該字節置1,VGA和DVI的值為0,HDMI的值為1
11. Checksum
校驗和:使前127字節加上此字節等於0。
三、EDID擴展塊(CEA-861D)詳解
1. CEA-861D(HDMI)結構
地址 (+80H) |
值 |
描述 |
格式 |
00H |
02H |
Tag(02H) |
|
01H |
03H |
版本號 |
|
02H |
|
DTD開始地址,暫用d表示 |
d為擴展塊中詳細時序描述(DTD)開始地址 |
03H |
|
Native DTD數量及YCbCr444/422,過掃描支持設置 |
Bit7:是否支持過掃描 Bit6:是否支持basic audio Bit5:是否支持YCbCr 4:4:4 Bit4:是否支持YCbCr4:2:2 低4bits:Native DTD個數 |
<d |
|
各功能塊參數設置 |
各功能塊包括: Video Data Block Audio Data Block Speaker Allocation Data Block Vendor Specific Data Block 等等.... 大部分功能塊長度可變 |
d |
|
DTD開始地址,根據剩下空間情況,可定義n個DTD(每個18字節),所以DTD占用空間為n*18 |
Detailed Timing Descriptor(DTD 詳細時序描述),每一個DTD包括18字節,具體結構EDID主塊中已有定義。 |
d+(n*18) |
00H |
剩下的保留字節(Padding) |
00H填充 |
7FH |
|
Checksum |
使前127字節加上此字節等於0 |
2. Tag
固定數值02H,EDID標准分配給CEA-861x標准的擴展標識。
3. Revision
CEA擴展塊版本號,目前使用03版本
4. 數字信號特性
此字節各位定義如下:
Bit7:是否支持過掃描
Bit6:是否支持basic audio
Bit5:是否支持YCbCr 4:4:4
Bit4:是否支持YCbCr4:2:2
低4bits:Native DTD個數
Data
5. Data Blocks(各功能塊參數設置)
各Data Block結構如下:
注:L表是length,即長度,表中有說明
其中各Data Block的Tag Code值定義如下:
1.Video Data Block
根據Data Block結構,首字節的bit7~5為Video Data Block = 2,bit4~0為Video Data Block長度,后面跟的字節為多個CEA short Video Descriptor,結構如下:
Video Identification Code見CEA-861D標准定義,如下:
2.Audio Data Block
根據Data Block結構,首字節的bit7~5為Audio Data Block = 1,bit4~0為Video Data Block長度,后面跟的字節為1個或多個CEA short Audio Descriptor,每個CEA short Audio Descripto由三個字節組級,分為LPCM,AC3,MPEG2等各種Audio Format Code, Audio Format Code及CEA short Audio DZescriptor結構如下:
3.Speaker Allocation Data Block
根據Data Block結構,首字節的bit7~5為Speaker Allocation Data Block = 4,bit4~0為Speaker Allocation Data Block長度(固定為3),后面跟的3字節,結構如下:
注:F為前置,L為左置,R為右置,C為中置,Fxx=0表示預留位
4.Vendor Specific Data Block(VSDB)
廠商定義塊,根據Data Block結構,首字節的bit7~5為Vendor Specific Data Block= 3,bit4~0為Vendor Specific Data Block長度,后面結構參照HDMI標准中的VSDB規范,如下是HDMI1.4a(HDMI1.4a使用CEA-861D)中的VSDB結構:
6. Detailed Timing Descriptions(DTD)
Detailed Timing Descriptions(DTD),每塊18字節,詳細結構見EDID主塊對此部分的解釋。
7. Padding(保留字節)
保留字節,用00填充。
8. Checksum
校驗和:使前127字節加上此字節等於0。