天天看點

FPGA工程師必備技能_HDMI接口協定

FPGA工程師必備技能_HDMI接口協定

HDMI簡介

HDMI 是新一代的多媒體接口标準,英文全稱是 High-Definition Multimedia Interface,即高清多媒體接口。它能夠同時傳輸視訊和音頻,簡化了裝置的接口和連線;同時提供了更高的資料傳輸帶寬,可以傳輸無壓縮的數字音頻及高分辨率視訊信号。HDMI 1.0 版本于 2002 年釋出,最高資料傳輸速度為 5Gbps;而2017 年釋出的 HDMI 2.1 标準的理論帶寬可達 48Gbps。

HDMI 向下相容 DVI,但是 DVI(數字視訊接口)隻能用來傳輸視訊,而不能同時傳輸音頻,這是兩者最主要的差别。

HDMI實體層

在實體接口上,DVI接口的尺寸明顯大于HDMI接口,如下圖所示:

FPGA工程師必備技能_HDMI接口協定

上圖右側是生活中最常見的A型HDMI接口 ,其引腳定義如下圖所示:

FPGA工程師必備技能_HDMI接口協定

DVI和HDMI接口協定在實體層使用TMDS标準傳輸音視訊資料。 TMDS (Transition Minimized Differential Signaling,最小化傳輸差分信号)是美國 Silicon Image公司開發的一項高速資料傳輸技術,在DVI和HDMI視訊接口中使用差分信号傳輸高速串行資料 。TMDS差分傳輸技術使用兩個引腳 (如圖 “資料 2+”和“資料 2 來傳輸一路信号,利用這兩個引腳間的電壓差的正負極性和大小來決定傳輸資料的數值(0或1)。

TMDS編碼

(1)TMDS編碼過程

編碼

TMDS編碼一般是将8位資料經過編碼和直流平衡達到10位的最小資料。這仿佛是增加了備援位,對傳輸要求更高了。但是實際上這種算法使得到的資料在同軸電纜中可靠性更強了。下圖舉例一種并轉串編碼過程,8位并行的RED資料編碼後進行并轉串。

FPGA工程師必備技能_HDMI接口協定

(1)将 8 位并行 RED 資料發送到 TMDS 収送端。

(2)并/串轉換。

(3)進行最小化傳輸處理,加上第 9 位,即編碼過程。第 9 位資料稱為編碼位。

直流平衡

直流平衡(DC-balanced)就是指在編碼過程中保證信道中直流偏移為零。方法是在原來的 9 位資料癿後面加上第 10 位資料,返樣,傳輸的資料趨于直流平衡,使信号對傳輸線的電磁幹擾減少,提高信号傳輸的可靠性。

(2)TMDS發送和接收的連結示意圖

FPGA工程師必備技能_HDMI接口協定

上圖是 TMDS 發送端和接收端的連接配接示意圖。DVI 或 HDMI 視訊傳輸所使用的 TMDS 連接配接通過四個串行通道實作。對于DVI來說,其中三個通道分别用于傳輸視訊中每個像素點的紅、綠、藍三個顔色分量(RGB4:4:4格式)。HDMI 預設也是使用三個 RGB 通道,但是它同樣可以選擇傳輸像素點的亮度和色度資訊(YCrCb4:4:4或YCrCb 4:2:2格式)。第四個通道是時鐘通道,用于傳輸像素時鐘。獨立的 TMDS 時鐘通道為接收端提供接收的參考頻率,保證資料在接收端能夠正确恢複。

在傳輸視訊圖像的過程中,資料通道上傳輸的是編碼後的有效像素字元。而在每一幀圖像的行與行之間以及視訊中不同幀之間的時間間隔(消隐期)内,資料通道上傳輸的則是控制字元。每個通道上有兩位控制信号的輸入接口,共對應四種不同的控制字元。這些控制字元提供了視訊的行同步(HZYNC)以及幀同步(VSYNC)資訊,也可以用來指定所傳輸資料的邊界(用于同步) 。對于DVI傳輸 ,整個視訊的消 隐期都用來傳輸控制字元 。而HDMI傳輸的消隐期除了控制字元之外,還可以用于傳輸音頻或者其他附加資料,比如字幕資訊等。這就是DVI和HDMI協定之間最主要的差别。從上圖中也可以看出這一差别, 即“ Auxiliary Data”接口标有HDMI Olny”,即它是HDMI所獨有的接口。

從前面的介紹中我們可以看出,TMDS連接配接從邏輯功能上可以劃分成兩個階段:編碼和并串轉換。在編碼階段,編碼器将視訊源中的像素數 據、HDMI的音頻/附加資料以及行同步和場同步信号分别編碼成10位的字元流 。然後在并串轉換階段将上述的字元流轉換成串行資料流并将其從三個差分輸出通道發送出去。

FPGA工程師必備技能_HDMI接口協定

給出了三個通道的DVI編碼器示意圖。對于像素資料的RGB三個顔色通道,編碼器的邏輯是完全相同的。VDE用于各個通道選擇輸出視訊像素資料還是控制資料。HSYNC和VSYNC信号在藍色通道進行編碼得到10位字元,然後在視訊消隐期傳輸。綠色和紅色通道的控制信号C0和 C1同樣需要進行編碼并在消隐期輸出。但是DVI規範中這兩個通道的控制信号是預留的未用到是以将其置為2’b00。每個通道輸入的視訊像素資料都要使用DVI規範中的TMDS編碼算法進行編碼。每個8 bit的資料都将被轉換成460個特定10bit字元中的一個。這個編碼機制大緻上實作 了傳輸過程中的直流平衡,即一段時間内傳輸的高電平(數字1)的個數大緻等于低電平(數字0的個數。同時,每個編碼後的10bit字元中狀态跳轉(“由 1到 0”或者“由 0到 1)的次數将被限制在五次以内。

除了視訊資料之外,每個通道2 bit控制信号的狀态也要進行編碼 ,編碼後分别對應四個不同的10bit控制字元,分别是10'b1101010100 ,10'b0010101011,10'b0101010100 和 10'b1010101011。 可以看出,每個控制字元都有七次以上的狀态跳轉。視訊字元和控制字元狀态跳轉次數的不同将會被用于發送和接收裝置的同步 。

參考資料:

【1】正點原子開發手冊

【2】因為我看過月亮啊 文章 (https://blog.csdn.net/weixin_47422285/article/details/124212679)