轉發一個寫的很好的MHL技術文章

薛定諤機器貓發表於2013-03-26
MHL這個只是經常聽說,沒有見過的東西,現在已經非常火熱了,我們才剛剛開始做,人家三星都推出幾款帶MHL介面的手機了,電視 機頂盒。。。。。反正好多裝置上都已經開始用MHL了。
Silicon Image廠家來人給我們做了MHL技術的培訓,演示了多種MHL解決方案
我做了一些筆記,同時參考了MHL晶片的手冊,理解了工作原理,做個總結

一些術語:
MHLMobile High-Definition Link 移動終端高清影音標準介面
HDMIHigh Definition Multimedia Interface 高清晰度多媒體介面
TMDS最小化傳輸差分訊號
HDMI的控制訊號:DDC (Display Data Channel ),CEC(Consumer Electronics Control)

說一下HMDI,這是標準的介面圖
傳統的 HDMI 具有 19個管腳,其中 12個管腳主要是用來傳輸視訊和音訊的訊號,共4組差分訊號用來傳輸視訊音訊
TX0P/TX0N、TX1P/TX1N  TX2P/TX2N  TXCP/TXCN(clock),另外四根是這4組差分訊號的SHIELD,接GND
這4組差分訊號也稱為最小化傳輸差分訊號TMDS
有3個控制管腳:DDC、CEC、HOTPLUG,一組IIC,一組電源

標準的HDMI介面比較大,比一個USB介面還大,也有一種稍小點的miniHDMI,在手機上用microHDMI,類似MicroUSB介面

MHL可以說專為手機等移動裝置定製的介面,和HDMI一樣,可以傳輸數字高清音視訊訊號,最大的特點是它可以和手機的USB介面共用,當用USB線接電腦時做為USB介面,用MHL線接HDMI裝置時就做為MHL介面(內部自動切換)

為什麼用MHL?
1. 由於手機體積和外觀的限制,如果把HDMI介面做上去可能會影響美觀,而且還需使用價格較高的HDMI線
2. HDMI介面需要裝置提供5V的電壓,手機一般是沒有5V的電壓的,所以要用升壓電路升壓,這樣做不太合理,功耗也大
3.  現在WIFI Display技術很流行,可以無線傳輸HDMI訊號,但是出於傳輸距離、頻寬、穩定性的考慮,此技術還不算成熟,需要一個長期發展過程

在這種時機下MHL就出現了,它是由Silicon Image在2009~2010年設計出來的,其實就是一種HDMI轉MHL的專用晶片,許多智慧手機廠商都在使用他們的MHL方案,像三星HTC是比較大的客戶,也逐漸形成的聯盟,越來越多的廠商開始加入,國內的手機廠商也紛紛開始加入。

做MHL開發就是把HDMI和MHL轉接晶片搞定,看這個MHL晶片示意圖
  
   首先要確定CPU本身的HDMI介面可用,MHL晶片就是把HDMI的TMDS訊號做為輸入,經過內部的MHL Transmitter and Control將訊號轉換成兩根線MHL訊號線,就可以用USB的兩根訊號線進行傳輸。
   前面說了它可以和CPU的USB線共用同一個USB介面,那就需要一個switch開關。CPU的USB訊號線接進來,它和MHL訊號線接在了High Speed Switch模組上,內部有一個Switch Control控制開關。

再看怎樣檢測插入的訊號線是USB線還是MHL線,這就利用了USB的ID腳(第4腳)

  • 預設狀態CBUS_ID有上拉電阻,ID腳保持高電平,USB Switch預設打到USB一側,此時就當MHL不存在。USB連線電腦時,ID腳也是高電平,USB介面就當USB來用。
  • 當手機接上OTG線(當HOST使用),CBUS_ID會被拉低,MHL晶片發中斷給CPU,driver通過讀取MHL的暫存器,判斷到CBUS_ID的下拉電阻並非1K,此時USB Switch仍然保留在USB一側,不做任何切換動作。
  • 當手機接上MHL裝置時,CBUS_ID會有1K的下拉電阻,同上面的流程,晶片給CPU中斷,程式讀暫存器判斷CBUS_ID下拉電阻確實為1K,然後會開始握手過程確認所接的裝置是否為MHL裝置,握手成功後就將USB Switch切換到MHL側,此時就使能了MHL功能。
  • 如果握手不成功,USB Switch仍然停在USB側。

通過IIC介面讀寫晶片暫存器,驅動就是建立幾個IIC裝置。

特色功能之一:MHL裝置給手機充電
如果用USB線將手機連線電腦,電腦就給手機充電。MHL也一樣,如果一個支援MHL介面的電視連線手機,電視端就能輸出5V電源給手機充電(和電腦的USB介面一個原理)

如果電視沒有MHL介面,那就需要一個MHL Adapter,一端是USB口,另一端是標準HDMI介面,MHL Adapter本身要連線外部電源,這個電源同樣可以給手機充電

特色功能之二:電視遙控器反向操作手機
這個功能相當牛B,MHL晶片可以接收到電視遙控器的訊號,再把鍵值通過驅動報給手機的系統,可以實現基本的手機操作了(如方向鍵,音量加減,主選單,返回等)
還沒有做到這一步,不知道其原理

未完待續。。。。。。。。。。。

相關文章