HDMI之EDID使用說明

重要參考網站:

http://www.extron.cn/product/videotools.aspx  (4K 數據速率計算器)

http://www.google.com/patents/CN100590688C?cl=zh (顯示控制設備的顯示時序參數自適應調整方法)

http://www.edidreader.com/ (在線EDID解析,牆外網站。。。。)

http://blog.csdn.net/qiuen311/article/details/40887859 ( HDMI的拔插的uevent的流程)

http://blog.csdn.net/mlj1668956679/article/details/8820391      http://www.oschina.net/question/565065_58438    (Android 4.0 HDMI相關代碼)





以下文章轉自:http://blog.csdn.net/Jkf40622/article/details/48311455

HDMI之EDID使用說明

來源:http://wenku.baidu.com/view/8f82728471fe910ef12df8f4.html

Q1: 爲什麼要寫這篇文章?

A1在最近的工作中遇到了不少問題,其中很多都是和EDID相關的。可以說,作爲一家以“顯示”爲生的企業,我們時時刻刻在與EDID打交道。EDID這東西很簡單,但是如果不瞭解其基本原理和概念的話,會給我們的工作帶來不少麻煩。因此,我決定將我對EDID的理解和調試EDID的一些經驗寫成一篇文章,供大家學習和參考,希望能對大家的工作有所幫助。爲了方便閱讀和理解,文章寫成問答的形式。由於本人接觸EDID的時間不長,文章中難免有錯誤和疏漏之處,希望大家給予指正。好,閒話少說,咱們書歸正傳。

Q2:EDID是什麼?

A2:EDID的全稱是Extended Display Identification Data(擴展顯示標識數據),共有128字節。其中包含有關顯示器及其性能的參數,包括供應商信息、最大圖像大小、顏色設置、廠商預設置、頻率範圍的限制以及顯示器名和序列號的字符串等等。形象地說,EDID就是顯示器的身份證、戶口本、技能證書等證件的集合,目的就是告訴別人我是誰,我從哪來,我能幹什麼。

Q3:爲什麼要使用EDID?

A3:爲了能讓PC或其他的圖像輸出設備更好的識別顯示器屬性

EDID並非古而有之,在古老的CRT時期是沒有EDID這個概念的,那爲什麼後來會有呢?因爲隨着顯示設備的發展,顯示器的種類越來越多,模擬的、數字的、普屏的、寬屏的、17寸、19寸、22寸……這讓PC傻了眼,分辨率和時序的種類太多了,而每種顯示器又不可能支持所有的分辨率,那怎麼知道該給顯示器一個什麼樣的分辨率啊?顯示出的效果是最佳效果嗎?不僅如此,隨便輸出一個分辨率還有損壞顯示器硬件的可能,這可太危險了。於是,EDID臨危受命,擔當起顯示器和PC之前的傳話筒。“PC你好,我是A顯示器,我能顯示N種分辨率,最佳分辨率是XXX”。“顯示器你好,收到你的信息,現在就按最佳分辨率給你輸出”。這下大家明白了吧,EDID就是爲了能讓PC或其他的圖像輸出設備更好的識別顯示器屬性而出現的。

Q4:經常聽到有同志一會說“EDID信息”,一會說“DDC信息”。那麼哪種說法更準確?EDID和DDC的關係又是什麼?

A4: DDC的全稱是Display Data Channel(顯示數據通道),顧名思義,它是一個通道。我們可以說DDC是用來傳送EDID信息的,也可以說EDID信息是通過DDC傳送的,所以,“DDC信息”的說法並不準確。至於DDC究竟是怎麼傳送EDID的,我們後面再說。

Q5:每個顯示器只有一個EDID嗎?

A5:不一定。

現在的顯示器功能很強大,通常都提供多種視頻接口,常見的有DVI、VGA、HDMI、Display Port等,由於每種接口的特性和帶寬不同,使得不同接口的EDID也不同。使用哪個接口,PC讀到的就是哪個接口的EDID。我們的設備主要使用DVI、VGA、VIDEO幾種接口。由於VIDEO接口的幾種制式如PAL、NTSC等,其分辨率場頻都是固定的,沒有使用EDID的必要,故不在討論之列。本文下面的問題都圍繞DVI、VGA兩種接口展開

Q6:說了半天,EDID對我們到底有什麼用?

A6:要回答這個問題,首先要弄清我們設備的應用場景,請看下圖

                 

這是一個典型的應用場景,PC將視頻信號發送到我們的設備上,經過一系列的傳輸或切換,設備將視頻信號發送到顯示器或投影機上,也就是說,我們的設備位於PC和顯示器之間。首先,在輸入端,設備需要讓PC知道自己是能夠輸入視頻信號的,換句話說,設備要“欺騙”PC,讓PC認爲自己是一臺顯示器。如果不這樣的話,PC可能會拒絕輸出任何視頻信號的(僅限於DVI接口,VGA接口不需要EDID也能輸出),這叫“不見兔子不撒鷹”。除此之外,設備還要告訴PC自己支持的顯示時序。而在輸出端,當設備需要自建輸出時序(如大屏控制器的輸出卡)而不是簡單的複製輸入時序(如各種矩陣設備)的時候,就需要知道顯示器支持的顯示時序,從而讓自己輸出的信號能在顯示器上正常顯示。在這些地方,EDID就發揮作用了。在輸入端PC通過讀取設備上的EDID來獲悉設備支持的顯示時序,而同樣,在輸出端設備需要讀取顯示器的EDID來確定自己的輸出時序。

Q7:上面說過PC上的VGA接口不需要EDID信息也能輸出,而且公司的VGA輸入設備裏絕大多數也沒有EDID,那麼VGA接口有EDID嗎?它是必需的嗎?

A7: VGA接口也有EDID,但不是必需的。

液晶顯示器、型號較新的CRT顯示器和投影機在VGA接口都是有EDID的,而型號較老的CRT顯示器和投影機則沒有。當PC連接一個沒有EDID的VGA設備時,會將其識別成一個“默認監示器”。這時,PC只能輸出一些內置的默認分辨率和時序,如果需要的分辨率不在默認的分辨率當中,那PC是沒辦法輸出的。這時候,就需要在VGA設備中添加EDID,來使PC支持需要的分辨率。

Q8:如何獲取顯示器的EDID?

A8:使用“SoftMCCS”軟件。安裝軟件後打開,可以看到軟件界面如下:

操作步驟如下:

1、打開SoftMCCS軟件

2、如果接了多臺顯示器,則在左上角的欄中選擇需要讀取EDID的顯示器型號,如“DELL E198WFP”

3、點擊左上角“File -> Save EDID as”,將EDID信息保存在自己想要的位置,文件名可以自己指定,文件類型要選擇“Raylar EDID file (*.dat)”

用文本編輯工具(如寫字板)打開剛剛保存的EDID文件,如下圖

 

可以看到右下方有128個16進制數,這就是剛剛保存的EDID信息了

Q9:EDID裏都包含什麼信息?哪些是我們關心的?

A9:剛纔我們已經通過“SoftMCCS”軟件獲取了EDID數據文件,下面要介紹另一個軟件來分析這個數據,“Phoenix EDID Designer”。軟件只有一個exe文件,不需要安裝。點擊打開按鈕,然後找到並打開我們剛剛保存的EDID文件,打開後如下圖

打開之後默認是隻讀的,數據都是灰色,爲了看起來更清楚,點擊 取消只讀屬性,如下圖所示

 

圖中紅線圈出的部分中可以看到5個選項卡,EDID中的信息基本都包含在其中,我們逐個看一下。

打開EDID文件後默認顯示的是“General”選項卡,裏面介紹了顯示器中一些基本的信息,一般與我們無關,也不用修改。

點擊“Basic Display Parameter”選項卡,如下圖所示

這裏面對我們有用的信息只有“Video Input Definition”(視頻輸入描述)。在Q7中曾經提到,VGA接口也是有EDID的。而VGA的EDID和其他數字接口EDID的最大區別就是視頻輸入描述。VGA接口的輸入是Analog,而如圖中DVI接口的EDID,選則Digital輸入。

“Color/Established Timings” 

“Established Timings”(內建時序)表示顯示器是否支持一些通用時序。若支持,則在相應的分辨率時序前打鉤。例如,由上圖中可知顯示器不支持720*400@88Hz和1024*768@87Hz這兩種時序。

“Standard Timings”(標準時序)

標準時序是對內建時序的擴充,最多可描述8個時序,圖中我們看到的是1-4個時序,點擊紅色方框中的“5-8”可看到後4個時序。以時序1(Timing ID #1)爲例,“Enable”前打鉤表示顯示器支持此時序;“H Active”表示一行中的有效像素;“Refresh”表示刷新率,也叫場頻率,單位Hz,注意這裏的刷新率值必須大於等於60Hz;“Aspect Ratio”表示圖像的寬高比,等於一行中的有效像素和圖像的有效行數之比。例如時序1中行有效像素是1440,寬高比是16:10,我們就可以知道圖像的有效行數是1440/16*10=900。

“Detailed Timings”(詳細時序)

 

詳細時序這個區域可以說是整個EDID中和我們關係最密切,也是我們需要了解最多和改動最頻繁的區域。它分爲4個塊(Block),可通過左上角的按鈕在各個塊之間切換(軟件的顯示有問題,4個按鈕分別爲Block 1、2、3、4)。每個塊既可以是一個時序說明(Timing)也可以是一個顯示器描述符(Monitor Descriptor)。需要注意的是:Block 1必須是時序說明,它描述的是顯示器的最佳時序。

上圖中的顯示的就是Block 1,注意右上角的Timing / Monitor Descriptor切換的部分是灰色的,這證實了我們剛纔的說法:Block 1只能表示時序。

左下角的Timing部分描述了時序的主要參數,含義見下表(軟件顯示有問題,參數名稱顯示不完整,表格中的參數也僅對應其在軟件中的位置)。H Image、H Border、V Image、V Border幾個參數一般用不到,表格中沒有列出

參數

含義

參數

含義

Pixel

像素時鐘頻率

Interlaced

前面打鉤表示是隔行顯示

H   Active

一行中有效的像素

V   Active

一場中有效的行數

H   Blank

一行中的消隱期長度,單位是像素

V   Blank

一場中的消隱期長度,單位是行

H   sync

行同步前沿寬度,即從行有效像素結束到行同步開始的像素數

V   sync

場同步前沿寬度,即從一場中有效行結束到場同步開始的行數

H   sync

行同步信號寬度,單位是像素

V   sync

場同步信號寬度,單位是行

 

表中各參數的位置關係如下圖所示

 

由圖中可知,消隱期=前沿+同步+後沿,這4個參數已知其中3個就可以推算出另一個。

軟件右下角的Sync Scheme描述了同步信號的信息。左邊是同步方式,一般選擇“Digital Separate”(數字分離);右邊是同步信號的極性,選擇表示極性爲正,即高有效。

Q:如何修改EDID文件?

大多數情況下,我們需要的EDID文件可由已知的EDID文件修改得到,步驟如下:

1、打開Phoenix EDID Designer軟件

2、用軟件打開需要修改的EDID文件

3、去掉只讀屬性

4、修改相應的EDID信息。一般需要修改的地方有:

(1)視頻輸入描述。VGA接口要選Analog,DVI接口要選Digital

(2)詳細時序。將Block 1中的時序修改成需要的時序,將其他Block中的“顯示器名稱”修改成需要的名稱

5、點擊File->Save EDID as保存修改後的EDID文件

Q:修改EDID文件的時候需要注意什麼?

A:修改EDID的時候要特別注意以下幾方面:

1、視頻輸入描述不要選錯,VGA接口選Analog,DVI接口選Digital,否則可能造成顯卡無輸出。如果需要一個VGA的EDID,最好修改前的EDID就是VGA的,而不是用一個DVI的EDID改成VGA的

2、同一種分辨率可能有多種刷新率,如60Hz、75Hz;多種時序,如Normal,Reduced Blanking等。修改EDID的時候要注意設備或顯示器支持哪一種,不要改錯。具體的時序說明參見VESA的標準文檔

Q:如何在設備上加入EDID?

A:Q4中提到,DDC是傳送EDID的通道,PC和設備之間的DDC連接如下圖所示 

圖中視頻接口包括VGA、DVI等等。DDC實際上是一個I­­2C總線,PC通過它連接到一個I­2C Flash存儲器上(一般是24LC21A),裏面存儲的就是EDID的128字節信息。在設備上加入EDID,就是將Flash接到DDC上,接法見下表。

接口

SDA

SCL

VGA

12

15

DVI

7

6

表中是DDC通道在VGA和DVI接口中對應的線序

然後就是將EDID信息寫入Flash中。對於大屏控制器和融合器,目前的軟件已經支持在PC端更新設備EDID,使用方法參見黃工的文檔。而對於其他一些設備,可以使用專用的編程器來燒寫Flash。針對生產部常用的EasyPRO 100B編程器,燒寫步驟如下:

1、打開Phoenix EDID Designer軟件

2、用軟件打開需要燒寫的EDID文件(dat格式)

3、點擊File Export,將EDID文件保存爲hex格式

4、用編程器軟件調用hex文件進行燒寫,具體過程不再贅述


發佈了307 篇原創文章 · 獲贊 52 · 訪問量 98萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章