作為嵌入式工程師,我們每天都在和各種接口、協(xié)議打交道。這個領(lǐng)域涉及的知識點(diǎn)和細(xì)節(jié)實(shí)在太多,以至于大多數(shù)時候我們只能依賴參考設(shè)計快速實(shí)現(xiàn)功能,趕著樣機(jī)交付。如果沒有遇到問題,自然皆大歡喜,甚至?xí)屓水a(chǎn)生"這個接口很簡單"的錯覺。
就像最近一個同事說的:"HDMI接口點(diǎn)屏很簡單啊!"但當(dāng)被問到細(xì)節(jié)時——比如最基本的HDMI握手過程——他卻答不上來。這種情況很常見:因?yàn)闆]遇到過問題,所以也就沒有深究過底層原理。
今天,我們就來探討一下HDMI接口的一些基礎(chǔ)知識及握手過程。它能更好的幫助我們在調(diào)試時更快定位問題,也能讓我們對這個看似"簡單"的接口有更全面的認(rèn)識。畢竟,在嵌入式開發(fā)中,越是覺得"簡單"的地方,往往隱藏著最多的坑。
01 HDMI基礎(chǔ)
基礎(chǔ)知識中,我這里只強(qiáng)調(diào)幾個要點(diǎn),有助于我們對于產(chǎn)品的設(shè)計。
通過百度百科,可以簡單的了解到HDMI接口的定義:
圖源 | 百度百科
通過這個定義,我們只需要記住以下幾個特點(diǎn):
- HDMI 是數(shù)字信號
- HDMI可以傳送未壓縮的視頻信號
- HDMI可以傳送未壓縮的音頻信號
- 支持熱拔插功能
HDMI接口目前主要有4個版本:1.4、2.0、2.1和最新的2.2。版本越高,帶寬越高,就可以支持更高的分辨率和刷新率,同時HDMI接口具有向下兼容的特性。
HDMI的接口類型包括
圖源 | 知乎
- Type A(標(biāo)準(zhǔn)):19針,最常見(電視、電腦等)。
- Type B(Dual-link):29針,不常見,數(shù)據(jù)傳輸能力強(qiáng)(專業(yè)顯示器、攝像機(jī)等)。
- Type C(Mini):便攜設(shè)備(如相機(jī)、平板)。
- Type D(Micro):超小型設(shè)備(部分手機(jī))。
- Type E(車載):帶鎖定機(jī)制,抗震動。
可根據(jù)具體的應(yīng)用場景來選型合適的接口。
02 HDMI接口引腳定義
咱們常用的HDMI接口一般有19個引腳,Type B HDMI比較特殊,有29個引腳(實(shí)際應(yīng)用中王工也沒有見過)。
以下是HDMI A接口咱們常用的原理圖,19個針腳的具體定義就不一一列舉了:
圖源 |日常原理圖
HDMI接口的引腳定義,咱們把它主要分為以下四類:
①數(shù)據(jù)信號引腳
1-9引腳用于數(shù)據(jù)傳輸,分為0、1、2三組,負(fù)責(zé)傳輸視頻信號。
每一組包含一對正、負(fù)差分信號和地,如:
TMDS DATA0+/TMDS DATA0-/GND
②時鐘信號引腳
10-12三個引腳用于傳輸TMDS時鐘信號,用于同步視頻和音頻數(shù)據(jù)。
只有一組包含一對正、負(fù)差分信號和地,如:
TMDS DATA CLOCK+/TMDS DATA CLOCK-/GND
③控制信號引腳
- CEC引腳:13引腳用于控制功能,如通過電視遙控器控制DVD播放。
I2C引腳:15-16引腳用于DDC通信,主要用于EDID和HDCP的傳輸。
- Hotplug引腳:19引腳用于監(jiān)測HDMI設(shè)備是否存在,實(shí)現(xiàn)熱插拔功能。
- ④電源和接地引腳
5V電源引腳:18引腳提供5V電源。接地引腳:17引腳用于接地。關(guān)于這個原理圖,大家可以看到HDMI接口的5V供電回路中串聯(lián)了一個二極管,這一點(diǎn)咱們著重強(qiáng)調(diào)一下:
這個二極管主要目的是為了防止電流倒灌。在HDMI連接中,我們一般只允許電流從 source 端流向 sink 端,而不能反向流動。如果連接到HDMI的設(shè)備( sink 端)嘗試供電給發(fā)送設(shè)備( source 端),串聯(lián)的二極管可以防止逆向流動的電流損壞發(fā)送設(shè)備的電路。
此外,這種設(shè)計還有一個目的,用于保持HDMI接口電源電壓的穩(wěn)定。如果 sink 端設(shè)備嘗試提供一個不同的電壓,串聯(lián)的二極管可以防止這個非標(biāo)準(zhǔn)電壓影響到 source 端的敏感電路。
這樣,無論是電源供應(yīng)問題還是連接錯誤,都可以通過二極管來保護(hù)設(shè)備不受損害。另外盡量選用漏電流較小的肖特基二極管。
03 HDMI握手過程
HDMI握手是指Source端(信號源)和Sink端(顯示設(shè)備)建立連接的過程,其目的是確保主機(jī)輸出的畫面能夠正常顯示在屏幕上。
通過工作中的實(shí)際經(jīng)驗(yàn)和一些比較好的參考資料,王工把HDMI的握手過程分為一下幾點(diǎn):
①HPD熱拔插檢測
當(dāng)HDMI線纜物理連接時,Sink端的HPD引腳(Pin19)會拉高電壓(通常至+5V),通知Source端設(shè)備已連接。
這是HDMI正常通信的第一個步驟,當(dāng)物理線纜建立物理連接后,如果你有兩個屏,一直點(diǎn)亮的那個屏可以看到檢測過程中有一個明顯縮放的畫面。
②EDID讀取很多人第一次接觸HDMI可能不知道EDID是什么,它是顯示器一種標(biāo)準(zhǔn),通過DDC傳輸,可以提供顯示器的詳細(xì)信息,包括:制造商,尺寸,分辨率支持、色彩格式,基本參數(shù)......可能你還是不太清楚,你只需要知道,它的作用是為了能讓主機(jī)更好的識別顯示器屬性,以顯示出跟顯示器適配的畫面。這個讀取過程主要是通過15-16的I2C引腳,一般在HDMI接口處我們也會預(yù)留一個EEPROM,方便信息的存儲。
③TMDS鏈路訓(xùn)練首先要知道TMDS鏈路訓(xùn)練的目的,主要是協(xié)商物理層參數(shù),確保信號傳輸穩(wěn)定性。這個過程比較復(fù)雜,包括時鐘信號的同步,校準(zhǔn),均衡調(diào)整,通道對齊,這里就不細(xì)說了。
④視頻/音頻傳輸
完成上述步驟后,Source端按EDID協(xié)商的參數(shù),通過TMDS通道發(fā)送視頻數(shù)據(jù)和音頻數(shù)據(jù)。
了解了HDMI的握手過程,有助于我們解決平時在產(chǎn)品開發(fā)中遇到的一些黑屏,無信號,分辨率顯示異常或者無音頻等問題。
本文介紹了HDMI接口的基礎(chǔ)知識,但實(shí)際應(yīng)用中的注意事項(xiàng)遠(yuǎn)不止于此。例如,Layout設(shè)計、EMC設(shè)計、連接線選型等,都會直接影響項(xiàng)目的順利推進(jìn)。稍有不慎,就可能導(dǎo)致信號完整性下降、兼容性問題甚至項(xiàng)目延期。