Linux:HDMI驅動之EDID__Linux

來源:互聯網
上載者:User
HDMI(HighDefinitionMultimediaInterface),作為新一代數字多媒體介面,能夠傳輸高速率無壓縮的數字音頻、視頻資料,HDMl1.2像素時鐘可達165MHz,資料速率達到4.95Gbps,而HDMl1.3像素時鐘則高達340MHz,資料速率達到10.2Gbps。目前高清1080p的資料頻寬是2.2Gbps,HDMI完全可以用在高清映像傳輸中。事實上,目前高清映像傳輸也大多數選用此介面。HDMI也已成為消費類電子的介面標準,在數字攝像機以及數字電視中廣泛使用。
  EDID是VESA組織制定的PC顯示器的顯示格式資料規範,是HDMI介面的一個重要組成部分。HDMI介面的發送端和接收端,通過EDID(ExtendedDisplavIdentificationData)來協商雙方傳輸的映像格式。發送端通過讀取接收端的EDID資料,來判斷接收端是否為HDMI裝置。EDID發展到現在已有很多版本,EDID1.3是目前廣泛使用的資料格式。
  本文結合HDMI規範,通過分析和設定EDID資料,使HDMI裝置收發雙方正確協商出高清映像格式,實現高清映像的傳輸。
  
  HDMI介紹
  
  一個HDMI系統包括髮送裝置和接收裝置兩部分,圖1所示是HDMI系統結構圖。通過3個TMDS通道,1個TMDS時鐘通道,實現HDMI收發裝置問音頻、視頻資料以及輔助資料的傳輸。
  TMDS(TransitionMinimizedDifferentialSignaling)的意思是傳輸最小化的差分訊號。此技術在DVI裝置中已經被使用。TMDS運用先進的編碼演算法把8bit資料(R、G、B中的每路基色訊號)通過最小轉換編碼為10bit資料(包含行場同步資訊、時鐘資訊、資料DE、錯誤修正等),經過DC平衡後,採用差分訊號傳輸資料,接收端在收到訊號後,再將10bit資料解碼成8bit的資料。它和LVDS、TTL相比有較好的電磁相容性能,可以用低成本的專用電纜實現長距離、高品質的數字訊號傳輸。
  
  DDC(DisplayDataChannel)通道用於HDMI發送和接收端之間交換一些配置資訊。發送端通過DDC通道,讀取接收端儲存在EEPROM中的EDID資料,擷取接收端的資訊,確認接收端終端顯示的設定和功能,決定跟接收端之間以什麼格式傳輸音視頻資料。
  CEC(ConsumerElectronicsContr01)通道是可選通道。通過CEC通道,可以實現一些音視頻裝置間的進階控制功能,比如可使用視訊源和數字電視間的雙向通訊,實現單鍵按下同時開機、自動上電、自動訊號路由、遠端控制等功能。
  
  E-EDID資料結構
  
  E-EDID是VESA組織定義的一種資料結構,是為PC顯示器設定的最佳化顯示格式資料規範,它儲存在顯示器中專用的EEPROM儲存空間中,資料結構是128Byte,PC主機和顯示器通過DDC通道訪問儲存空間中的資料,以確定顯示器的顯示內容,如解析度、縱橫比等資訊。此資料結構被HDMI採用,在HDMI規範中,同樣使用DDC通道訪問EDID儲存空間,以確定顯示裝置的功能和屬性。
  HDMI規範規定,EDID的第一個128Byte必須是符合EDID1.3的資料結構,第二個128Byte必須是符合EIA/CEA-861B的CEAEDID時序擴充資料結構。
  1)E-EDID資料結構
  如圖2所示,是EDID1.3資料結構及其欄位詳細說明。
  2)CEA-861B資料結構
  如圖3所示,是CEA861B資料結構各欄位詳細說明。
  
  EIA/CEA861B規範規定,CEAEDID資料轉送的第一個時序擴充段中要包含VSDB訊號。就是HDMIVendorSpecificDataBlock(HDMIVSDB)。這是一個EIA/CEA-861BVendorSpecificData資料區塊。包含一個24位的HDMI資料識別符(IEEERegistrationIdentifier)0x000C03,一個HDMI批准、許可的資料值。為了測定接收端是否是HDMI裝置,HDMI源裝置需要檢測接收端裝置的EDID資料轉送擴充時序中,是否存在這個VSDB資料區塊(由HDMI裝置製造廠商根據協議制定並提供的)。任何一個HDMI裝置都會自動響應一個HDMIVSDB,這是一個合理長度的資料表述,含及IEEE註冊、登記的標識符:0x000C03,只要HDMI源裝置接到這個標示符相關資料的響應,就將接收端裝置認定為HDMI裝置。否則,HDMI規範指定:任何接收端裝置在E-EDID資料轉送時不回傳包含這個HDMIVSDB,即合理長度的HDMI資料標識符的響應。就會被認為所串連的是DVI裝置。
  
  HDMI高清映像傳輸中EDID的設定
  
  HDMI介面具有熱插拔功能,發送裝置檢測到HPD訊號為低時,去讀取EDID的資料,來確認接收裝置是否出現變化。
  HDMI規範規定,發送裝置要檢測接收裝置的第一個CEAEDID擴充塊中是否包含HDMIVSDB,這個HDMIVSDB中是否包含IEEE資料標識符0x000C03,只有包含這個資料標識符的裝置,才會被認為是HDMI裝置,否則,被當作DVI裝置處理。
  一個HDMI裝置的EDID通常包含兩個模組,第一個是EDIDl-3的資料模組,第二個是CEA861B模組,這個861B模組中,一定要包含資料標示符0x000C03。
  下面以實際工作中的EDID為例,對EDID來做一些說明。如圖4所示。
  
  圖4中,0x00-0x7F,這是EDID第一段,EDID1.3的資料結構,從最後兩個位元組看,0x7E地址處的資料01H表明其後還有一個擴充段,0x7F處的81H則是第一段EDID的校正欄位,第一段EDID所有128Byte加起來為0。
  0x00-0x07處的欄位,是EDID的資料頭,0x12-0x13處的0103表明EDIDversion1,revision30x36-0x47的欄位,是第一個詳細時序描述,011D80….這是1080i的詳細描述符。0x48-0x59,這是第二個詳細時序描述,8C,0A…這是480p的詳細描述符。從0x5A開始是非時序描述塊。000000FC00表明接下來的資料是監視器的描述,此處的48444D49表明是HDMI。接下來00000000FD00表明是監視器可接收訊號範圍描述符,這是在GTF標準裡要求的。FC、FD標誌表明的資料區塊,必須是13個位元組,如果不夠13個位元組,則最後一個有用位元組後緊跟0AH,其餘填充20H,比如這裡0x66-0x68的資料。
  0x80-0xFF,這是EDID第二段,也是CEA861B模組。從圖上可以看出,包含有0x000C03的標識符。EDID第二段,必須包含此字元,否則,此裝置會被當作DVI裝置處理。同第一個EDID模組,0xFF處的1A是第二段EDID的校正:手段,第二段EDID所有128Byte加起來為0。同第一段的EDIDl.3不同的是,在CEA861B模組中,不用的欄位可以填充0。所以從圖上看,第二段EDID資料有很多O。
  0x83欄位的19H,表明視頻格式詳細描述符的開始是從0x19處開始的。0x85處的資料85H,表明1080i映像格式,是此接收裝置固有的特性,其中5,是1080i視頻格式的短描述符。
  
  結語
  

  HDMI以其優異的效能被廣泛使用在高清映像傳輸中,HDMI雙方以什麼方式傳輸映像,依賴於接收端EDID資料結構的內容。EDID資料決定了接收端顯示裝置的屬性。發送端靠從接收裝置讀來的EDID,判斷監視器的屬性,決定用什麼方式傳輸映像。如果EDID設定不正確,系統就有可能不能識別HDMI裝置,不能以高清格式傳輸映像。因此,EDID的設定至關重要。


鏈接:http://blog.csdn.net/linweig/article/details/5518971



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.