HDMI SCDC處理過程


 

SCDC       State and Control Data Channel

         接收端如果有SCDC,應該在E-EDID中包含一個有效的HF-VSDB,並且把SCDC_Present位設置為1。在訪問SCDC之前,源端必須驗證接收端E-EDID中,包含一個有效的HF-VSDB並且SCDC_Present位要設置為1,否則源端不能訪問SCDC。

         HF-VSDB在H2.0中定義,用於指示宿端支持的H2.0中定義的特性。HF-VDSB與H1.4b中定義的VSDB是有區別的。HF-VDSB不能取代VDSB,它們都是Vendor Specific Data Block

         在E-EDID中是否要支持HF-VDSB是可選的,除非支持Table10-5(H2.0)的特征。如果包含的話,HF-VSDB應該位於宿端E-EDID中CEA 擴展版本3,在E-EDID中緊隨H14b VSDB。下圖是H2.0中Table10-6,它定義了HF-VDSB

        

 

         在程序中,SCDC主要用於源端更新宿端TMDS_Bit_Clock_Ratio和Scrambler_Enable寄存器位,並且在這個版本中不支持HDMI RX對SCDC的讀請求。

 

 

SCDC_Present[1bit]  = 1,宿端支持SCDC功能

                               = 0,宿端不支持SCDC功能

 

以下HDMI Specification 2.0 中的對應的寄存器及地址參數

 

按照版本2.0,接收端版本應該是1

 

 

 

 

 

 

 

Table10-19:SCDC—TMDS Configuration

 

Scrambling_Enable:=1,源端設置該位為1使能宿端加擾

                                      =0,源端設置該位為0,禁止宿端加擾

TMDS_Bit_Clock_Ratio:=0,(TMDS Bit Period)/ (TMDS Clock Period) = 1/10

                                               =1, (TMDS Bit Period) / ( TMDS Clock Period) = 1/40

         當宿端支持的TMDS位速率大於3.4Gbps時,就要提供TMDS_Bit_Clock_Ratio控制位。如果TMDS位速率小於3.4Gpbs,源端要設置TMDS_Bit_Clock_Ratio = 0,TMDS 時鍾和數據信號要遵從HDMI1.4b。當TMDS位速率在3.4~6.0Gbps時,源端要設置TMDS_Bit_Clock_Ratio = 1,此時TMDS的時鍾和數據信號要遵從HDMI2.0的6.1.1.4。設置之后源端可以讀取Clock_Detected狀態位來確保宿端接收到了傳輸的TMDS_Bit_Clock_Ratio設置。

源端修改宿端的TMDS_Bit_Clock_Ratio位的操作步驟:

  1. 源端要暫停傳輸TMDS時鍾和數據
  2. 寫tmds_bit_clock_ratio位
  3. 等待最小1ms,最大100ms,再啟動TMDS時鍾和數據的傳輸
  4. 源端可以讀取Clock_Detected狀態位來驗證宿端是否檢測到了TMDS時鍾

 

Clock_Detected:當宿端接收到有效的時鍾信號時該位置1,反之置0

Ch0_Locked:當宿端在通道0上成功解碼出數據時該位置高,反之置0.

數據傳輸協議

SCDC 的I2C從機地址是0xA8/0xA9

(1)       讀update flags

 

(2)       讀其余數據

 

(3)       寫操作

 

 

上面的程序對應一個地址為0Xa8,先看下在HDMI Specification2.0【10.4.3 Data Transfer Protocols】中的說明:

HDMI Specification2.0對SCDC(Satus and Control Data Channel)的參數進行了詳細的講述。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM