Granite River Labs, GRL
楊昕叡 Ray Yang
DisplayID全名為Display Identification Data,又稱第二世代的EDID。此標準推出目的是為了取代早期EDID標準,而DisplayID比起EDID更加有彈性,在規範下可延長Display ID內容來符合自身顯示器的需求。如EDID一樣,DisplayID透過合適的溝通管道(如AUX Channel、I2C)提供Source顯示器的相關訊息如產品名稱、色域、支援功能、支援解析度等等資訊,使Source輸出調整至顯示器最佳的顯示功能。
DisplayID和EDID最明顯的差異在於DisplayID應用了「模組化結構」,該結構是參考「Data Block」的概念加以獨立定義來去提供特定的資訊。所有的Data Block內容可以根據自身需求來修改或是增加,除此之外VESA以及CEA等相關組織也提供諸多已定義好的Data Block供廠商使用,因此使用上不會像過往EDID有諸多限制。
如同EDID,DisplayID所有的資訊都寫在一個或多個連續的Section裡面(過往EDID 稱作 ”Block”,在DisplayID裡則為 “Section”),而DisplayID最多可以支援到256個Section,每一個Section最多可寫至256 Bytes。第一個Section為"Base DisplayID",隨後的Section都稱作"Extension"。DisplayID必須包含至少一個Video timing mode,也需詳述該Timing的參數並當作該產品的Preferred timing。
Variable Length為Checksum會直接填寫在Data Block的最後一個Byte之後。
圖1: Variable Length DisplayID結構(出自DisplayID spec1.3)
Fixed Length則為整個DisplayID 構造會有固定的長度,若Data Block之後至Checksum的Byte皆無使用則會用00h (Fill Data)填滿。
圖2: Fixed Length DisplayID結構(出自DisplayID spec1.3)
每一個DisplayID Section不管Variable Length或是Fixed Length的架構下必須包含以下五個Byte:
而Base DisplayID跟Extension Section最大的差別在於Extension Section的"Extension count"以及"Product type identifier"皆為00h。圖3及圖4分別為Base DisplayID以及Extension Section的構造。
圖3: Base DisplayID結構(出自DisplayID spec1.3)
圖4: DisplayID Extension 結構(出自DisplayID spec1.3)
以下我們會針對這五個必須包含的Bytes做詳細的說明:
1. Structure version & revision
任何Section的第一個Byte必須包含可辨別Version以及Revision的數字,對於DisplayID的version必須為”1”而Revision為”2”,因此該Byte即為12h。
圖5: Display structure version & revision (出自DisplayID spec1.3)
2. Section size
任何Section的第二個Byte需指出整個Section剩餘多少個Bytes,這個數目並未包含先前所提到的五個強制要求的Byte。一個Section最多可有256個Bytes,因此Section Byte的數目可由0至251。
圖6: Section Size (出自DisplayID spec1.3)
3. Product type identifier
在Base DisplayID的第三個Byte會說明該顯示器的類別為何。
圖7: Product type identifier (出自DisplayID spec1.3)
4. Extension count/Section flag
在Base DisplayID的第四個Byte會明確指出共有多少個Extension Section接在Base DisplayID之後,這個數值會從0~255。
圖8: Extension count/Section flag(出自DisplayID spec1.3)
5. Checksum
任何Section的最後一個Byte皆須表示整個Section的Checksum。
圖9: Extension count/Section flag(出自DisplayID spec1.3)
在DisplayID裡的所有資訊幾乎都包含在"Data Block"裡面,Data Block大部分已經是被VESA或是CEA定義好的模組,各家廠商可以自由的選擇使用Data Block來去描述自家的產品。
VESA或是CEA定義的Data Block基本上是不會有固定的長度,端看廠商使用了多少個Descriptor去做描述,Data Block的基本結構如下圖:
圖10: Data Block Format(出自DisplayID spec1.3)
每個Data Block都會有三個必須含有的Byte,第一個Byte為Block Tag,分辨該Data Block為哪一種Data Block,而第二個Byte為Block revision and Other Data,最後一個用來描述此Data Block的長度,而這個長度並不包含三個強制含有的Byte,因此該值為0至248不等。
下圖為由VESA以及CEA所制定好的各種不同Data Block,Block Tag從00h到7Fh為VEAS定義的Data Block,80h至FFh則為CEA所定義。如前文所述在Base DisplayID Section會描述該產品屬於哪一類別,而在每個不同類別的產品都會有必須具備的Data Block,如每個產品類別都必須含有00h Product Identification Data Block。其餘的Data Block在介紹詳細內容時會詳述哪些類別必須具備該Data Block,本文會針對目前較常見到的Data Block內容、必備性以及使用加以說明。
圖11: Data Block Tag Allocation(出自DisplayID spec1.3)
前面章節提到Base DisplayID的02h必須說明該產品的類別,不論哪一種類別的產品,在Base DisplayID下一定要將Product Identification Data Block作為第一個Data Block,除此之外整個DisplayID structure僅能有一個Product Identification Data Block,圖12為該Data Block的結構。
第一個Byte為Product Identification Data Block的Block Tag “00h”,隨後的Byte會詳細的說明該產品的製造日、Vendor ID、Product code、Serial number等等的詳細資訊。要注意的是除了Serial number以及Product ID String是optional,其餘的Descriptor都是Mandatory。
圖12: Product Identification Data Block(出自DisplayID spec1.3)
Video Timing Mode Data Block可以使用多個Descriptor來描述多個解析度,而此Data Block又可向下細分六種不同的Video Timing Mode,如下表。
表1: Video Timing Mode subcategories
以下對Type I Timing – Detailed進行簡單地說明:
Type I Timing Data Block可以寫在Base Section 或是Extension,且也沒有數量上的限制,Type I Timing Data Block是參考EDID規格裡 18 Byte的Detailed timing的架構,因此基本上大部分的參數都和EDID極為相似。而最大的不同是為了與CEA的detailed timing 相容,因此在DisplayID裡是可以支援Interlace的解析度。除此之外也多了一個bit去設定該timing是否為”Preferred Timing”。圖13及圖14為Type I Timing Data Block以及Descriptors的架構。
圖13: Type I “Detailed” Timing Data Block(出自DisplayID spec1.3)
圖14: Type I Detailed Timing Descriptor(出自DisplayID spec1.3)
除了前文所述的不同外,在Type I Detailed Timing Descriptor裡對於Pixel Clock可描述的Byte數量也比EDID的Detailed Timing多了一個Byte,因此比起EDID可以將更高頻寬的解析度(如4k2k144Hz)寫進Detailed timing,這也是目前諸多顯示器廠商會想要使用DisplayID作為Extension Block的原因。
依據GRL的測試經驗及觀察,雖目前市面上多數產品仍採用EDID標準,但已有許多廠商逐漸開始使用DisplayID的結構,尤其為電競螢幕;目前有使用DisplayID架構的螢幕多為EDID基礎再加上一個DisplayID Extension,極少數產品有完整的DisplayID架構 (Base DisplayID +DisplayID Extension),但透過DisplayID能夠滿足廠商所需的解析度與更新率,因此我們相信未來看到使用DisplayID結構螢幕的比例會越來越高。
最後,根據我們的測試經驗,以下分享DisplayPort及HDMI在使用DIsplayID的規範。
– HDMI
若要將DisplayID做為CTA-861 Extension block以外的Extension Block需使用HF-EEODB的架構來做描述,無法使用Mapping Block的架構,因Mapping Block必須標記所有Extension Block的Tag於Mapping Block中,而DisplayID Extension Block的Tag並未定義在HDMI的規範內,因此在進行Compliance test的過程中會使測試儀器無法辨識而造成Fail的結果。
– DisplayPort
相較於HDMI,Display Port在EDID CTS下是可以將DisplayID Extension作為EDID Base下的Extension Block,但有條件式的開放,以下為現階段若要使用DP-EDID- CTS對於DisplayID Extension的限制:
接下來附上DisplayID Extension實例如下頁表二,該DisplayID Extension為接續在EDID base之後,也是符合目前Display Port的EDID CTS規範。
表2: DisplayID Extension to Base EDID
Note: Byte 03h為顯示器及廠商相關訊息,以*代替
參考文獻
作者
GRL 台灣測試工程師 楊昕叡 Ray Yang
畢業於國立台灣科技大學化學工程學系。
在 GRL 累積三年多的 HDMI 相關測試經驗,熟悉 HDMI、MIPI、V by One 等測試規範。目前在 GRL 台灣主要負責HDMI 測試,樂於協助客戶釐清 HDMI 方面的問題,以順利取得認證。
本文件中規格特性及其說明若有修改恕不另行通知。
發佈日期 2021/12/28 AN-211228-TW