原創聲明:
本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處(http://www.alinx.com)。
適用于板卡型號:
PGL22G/PGL12G
1. 實驗簡介
HDMI做為視頻輸出輸入接口已經廣泛使用很長時間,主要通過TMDS差分編碼傳輸。本實驗通過在HDMI屏幕上顯示彩條,來練習視頻的時序和視頻顏色的表示,為后面視頻處理實驗做個基礎。
2. 實驗原理
2.1 硬件介紹
開發板使用4對TMDS差分顯示, 其中一對是時鐘,其他三對是數據。
HDMI采用和DVI相同的傳輸原理——TMDS(Transition Minimized Differential signal),最小化傳輸差分信號。
TMDS傳輸系統分為分為兩個部分:發送端和接收端。TMDS發送端收到HDMI接口傳來的表示RGB信號的24位并行數據(TMDS對每個像素的RGB三原色分別按8bit編碼,即R信號有8位,G信號有8位,B信號有8位),然后對這些數據進行編碼和并/串轉換,再將表示3個RGB信號的數據分別分配到獨立的傳輸通道發送出去。接收端接收來自發送端的串行信號,對其進行解碼和串/并轉換,然后發送到顯示器的控制端。與此同時也接收時鐘信號,以實現同步。
TMDS的原理
每一個TMDS鏈路都包括3個傳輸RGB信號的數據通道和1個傳輸時鐘信號的通道。每一個數據通道都通過編碼算法,將8位的視、音頻數據轉換成最小化傳輸、直流平衡的10位數據。這使得數據的傳輸和恢復更加可靠。最小化傳輸差分信號是通過異或及異或非等邏輯算法將原始8位信號數據轉換成10位,前8為數據由原始信號經運算后獲得,第9位指示運算的方式,第10位用來對應直流平衡。
一般來說,HDMI傳輸的編碼格式中要包含視頻數據、控制數據和數據包(數據包中包含音頻數據和附加信息數據,例如糾錯碼等)。TMDS每個通道在傳輸時要包含一個2bit的控制數據、8bit的視頻數據或者4bit的數據包即可。在HDMI信息傳輸過程中,可以分為三個階段:視頻數據傳輸周期、控制數據傳輸周期和數據島傳輸周期,分別對應上述的三種數據類型。
下面介紹TMDS中采用的技術:
1.傳輸最小化
8位數據經過編碼和直流平衡得到10位最小化數據,這仿佛增加了冗余位,對傳輸鏈路的帶寬要求更高,但事實上,通過這種算法得到的10位數據在更長的同軸電纜中傳輸的可靠性增強了。下圖是一個例子,說明對一個8位的并行RED數據編碼、并/串轉換。
第一步:將8位并行RED數據發送到TMDS發送端。
第二步:并/串轉換.
第三步:進行最小化傳輸處理,加上第9位,即編碼過程。第9位數據稱為編碼位。
2.直流平衡
直流平衡(DC-balanced)就是指在編碼過程中保證信道中直流偏移為零。方法是在原來的9位數據的后面加上第10位數據,這樣,傳輸的數據趨于直流平衡,使信號對傳輸線的電磁干擾減少,提高信號傳輸的可靠性。
3.差分信號
TMDS差分傳動技術是一種利用2個引腳間電壓差來傳送信號的技術。傳輸數據的數值(“0”或者“1”)由兩腳間電壓正負極性和大小決定。即,采用2根線來傳輸信號,一根線上傳輸原來的信號,另一根線上傳輸與原來信號相反的信號。這樣接收端就可以通過讓一根線上的信號減去另一根線上的信號的方式來屏蔽電磁干擾,從而得到正確的信號。
如下圖所示:
另外,還有一個顯示數據通道(DDC),是用于讀取表示接收端顯示器的清晰度等顯示能力的擴展顯示標識數據(EDID)的信號線。搭載HDCP(High-bandwidth Digital Content Protection,高帶寬數字內容保護技術)的發送、接收設備之間也利用DDC線進行密碼鍵的認證。
HDMI輸出部分電路
2.2 視頻時序標準
HDMI顯示器掃描方式從屏幕左上角一點開始,從左向右逐點掃描,每掃描完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結束時,用行同步信號進行同步;當掃描完所有的行,形成一幀,用場同步信號進行場同步,并使掃描回到屏幕左上方,同時進行場消隱,開始下一幀。
完成一行掃描的時間稱為水平掃描時間,其倒數稱為行頻率;完成一幀(整屏)掃描的時間稱為垂直掃描時間,其倒數稱為場頻率,即刷新一屏的頻率,常見的有60Hz,75Hz等等。標準的顯示的場頻60Hz。
時鐘頻率:以1024x768@59.94Hz(60Hz)為例,每場對應806個行周期,其中768為顯示行。每顯示行包括1344點時鐘,其中1024點為有效顯示區。由此可知:需要點時鐘頻率:806*1344*60約65MHz。
視頻時序
VGA掃描,基本元素是行掃描,多行組成一幀,下圖顯示一行的時序,其中“Active”Video是一行視頻的有效像素,大部分分辨率時鐘中Top/Left Border 和 Bottom / Right Border都是0。“Blanking”是一行的同步時間,“Blanking”時間加上Active”Video時間就是一行的時間。“Blanking”又分為“Front Porch”、“Sync”、“Back Porch”三段。
行同步時序
常見分辨率時序
640x480@60Hz時序參數
800x600@60Hz時序參數
1024x768@60Hz時序參數
1280x720@60Hz時序參數
1280x800@60Hz時序參數
1280x960@60Hz時序參數
1280x1024@60Hz時序參數
1920x1080@60Hz時序參數
3. HDMI輸出程序設計
本實驗將實現HDMI輸出顯示,verilog實現編程驅動HDMI輸出,在HDMI顯示器里顯示測試圖像彩條。HDMI輸出顯示模塊分成3個模塊實現,分別是時鐘模塊vidio_pll, 彩條生成模塊color_bar和VGA轉DVI模塊dvi_encoder。實現的邏輯框圖如下:
1. 彩條產生模塊color_bar.v
color_bar.v是產生8種顏色的VGA格式的彩條,彩條分別為白、黃、青、綠、紫、紅、藍和黑。針對VGA的時序,行同步和場同步各使用一個計數器,行同步計數器用于產生行同步,行有效像素,場同步計數器用于產生場同步,場有效像素。同時根據計數器的值可以產生水平(X)和垂直(Y)坐標,通過坐標信息,可以實時顯示一些圖形。程序中預設了幾種分辨率的時序參數,包括2款LCD液晶屏的,為后續的LCD驗證試驗做準備。
2. VGA轉DVI模塊dvi_encoder
dvi_encoder模塊中包含兩個模塊encode和serdes_4b_10to1模塊,實現RGB格式的圖像轉化成TMDS差分輸出,來驅動HDMI顯示。
1). encode: 紅,綠,藍的8位視頻數據及時鐘編碼成10位的TMDS視頻數據。關于編碼的原因和方法我們已經在前面介紹過,具體如何實現,有興趣的同學可以參考文檔"08_其它學習資料\TMDS視頻數據編碼.doc"
2). serdes_4b_10to1:方法是通過兩個OSERDESE2的串聯把10比特的并行數據轉換成串行發送出去。
4. HMDI輸出試驗現象
連接好開發板和顯示器,需要注意,開發板的各個連接器不要帶電熱插拔,下載好試驗程序,可以看到顯示器顯示8條彩條。開發板做為HDMI輸出設備,只能通過HDMI顯示設備來顯示,不要試圖通過筆記本電腦的HDMI接口來顯示,因為筆記本的HDMI接口也是輸出設備。
HDMI顯示器連接
彩條顯示
在用開發板做4.3寸LCD、7寸LCD屏顯示實驗時,LCD模塊接開發板的J8擴展口,注意管腳不要接錯。
如下圖所示:
開發板與LCD屏連接
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603009 -
HDMI
+關注
關注
32文章
1694瀏覽量
151864 -
編程
+關注
關注
88文章
3614瀏覽量
93686 -
TMDS
+關注
關注
1文章
22瀏覽量
15507 -
紫光同創
+關注
關注
5文章
85瀏覽量
27503
發布評論請先 登錄
相關推薦
評論