引言
傳統的模擬視頻接口有復合視頻信號(CVBS、A/V),S端子(Y/C、S-Video),模擬分量視頻信號(Y、U、V或Y、R-Y、B-Y)和通用 D-SUB( 9芯)端口等。隨著人們對圖像顯示質量要求的不斷提升,在視頻監控方面用模擬接口來傳輸和顯示監控的視頻已經不能滿足人們的要求。以高清數字電視為代表的數字視頻設備的應用越來越普遍,模擬視頻接口標準更加無法適應在帶寬、內容保護、音頻支持等方面的發展需求,這就使得數字視頻接口標準更能適應市場的需求。HDMI(High-Definition Multimedia Interface)是數字視頻接口中的一種接口標準,由于其具有單一線纜上能同時傳輸音視頻、帶寬高和 HDCP加密等優點,所以此接口在多媒體數字產品中得到了廣泛的應用[1]。在嵌入式視頻監控系統中加入 HDMI接口,可在帶 HDMI接收端的監控終端清楚地看到監控場景,進而擴展了視頻監控的應用場所。
1. HDMI技術及其基本傳輸原理
1.1 HDMI技術簡介 HDMI是首個支持在單線纜上傳輸,不經過壓縮的全數字高清晰度、多聲道音頻和智能格式與控制命令數據的數字接口,由 Silicon Image倡導,聯合索尼、東芝等八家著名的消費類電子制造商聯合成立的工作組共同開發的。HDMI最早的接口規范是 2002年 12月公布的HDMI 1.0,目前的最高版本是2006年6月發布的HDMI 1.3。HDMI通過一條HDMI纜線可以提供所有的音視頻源與音視頻終端之間的連接,實現視頻源和顯示終端的雙向通信,在保持高品質的情況下能夠以數碼形式傳輸未經壓縮的高分辨力視頻和多聲道音頻數據,還可搭配寬帶數字內容保護HDCP(High-band with Digital Content Protection)。新發布的HDMI
1.3[2]支持的帶寬更高,還增加了 Deep Color技術,支持 xvYCC色彩標準、唇型同步、新型無損音頻格式 Dolby TrueHD和 DTS-HD Master Audio等。
1.2 HDMI基本傳輸原理
HDMI系統結構由 HDMI源(發送端)和 HDMI宿(接收端)組成,其傳輸結構圖如圖 1所示,HDMI傳輸線包括三個不同的 TMDS數據信息通道和一個時鐘通道,這些通道用來傳輸音視頻數據及附加信息,音視頻數據和附加信息通過三個不同的 TMDS通道傳送到接收端上,而視頻的像素時鐘則通過 TMDS時鐘通道傳送,接收端接受這個頻率參數之后,再還原另外三個數據信息通道傳遞過來的信息。DDC通道用來在發送端和接收端之間進行配置以及狀態信息交換。可選的CEC通道用來提供用戶環境中各種不同的音視頻產品之間的高層控制功能,例如自動設定的細節、單鍵播放或是遙控。
圖2 ANX9030 內部功能結構圖
ANX9030基于 Wide Eye信號恢復技術,能夠提供高性能的傳輸能力,其功能模塊主要有音視頻數據捕獲、I2C從接口、像素格式處理和 TMDS發送等。其中視頻處理模塊最高可支持 24位,整個處理頻寬接近4Gb/s;音頻數據捕獲模塊支持 8通道共 24位高精度數字音頻輸出,提供 I2S和 S/PDIF標準輸出接口;像素格式處理模塊支持 RGB數字色度分量 4:4:4格式與多種模式 YCbCr數字色差分量 4:2:2之間的轉換,支持 HDTV和 PC(最高支持
利用 EP9302的外圍集成接口可大大簡化接口電路的設計。EP9302與 ANX9030的連接包括控制部分、視頻部分和音頻部分等。控制部分用于 EP9302對 ANX9030進行訪問控制,如寄存器設置,ANX9030向 EP9302發送中斷控制信號,其訪問方式可通過 I2C控制線進行;視頻部分用于 EP9302將采集處理后的視頻數據以及相應的同步、時鐘等信號發送給ANX9030,本文采用 16位的 YCBCr 4:2:2方式進行連接;音頻部分用于 EP9302將音頻數據發送給ANX9030,其連接方式采用I2S。
3.驅動軟件實現
軟件設計包括音視頻源的軟件設計和 HDMI發送控制器 ANX9030的驅動設計。由于在EP9302微處理器的開發板上已完成了音視頻的采集和輸出設計,所以本文的軟件設計主要是 HDMI控制器的驅動設計。利用開源的 ANX9030固件程序可簡化驅動程序的開發,主要包括 ANX9030的初始化處理、狀態機變化、音視頻模式的設置及異常處理等。主循環程序如下:
void main(void){
Init_ANX9030();
while(1){ANX9030_Interrupt_Process();
ANX9030_Timer_Process ();
}}
ANX9030的工作模式及初始化流程如圖4所示:
ANX9030的初始化。在 ANX9030復位電路的上升沿,DEV_ADDR_SEL引腳的狀態決定ANX9030的 I2C地址。假定此引腳為低,I2C地址為 0x72和 0x7A被選擇。首先確認 ANX9030存在且能正常工作,部分代碼如下:
while (1) {
ANX9030_Resetn_Pin = 0;
delay_ms(2);
ANX9030_Resetn_Pin = 1;
delay_ms(2);
c = ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDL_REG, &c1);
if ((c == 0) && (c1 == 0x30)) {
c = ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDH_REG, &c1);
if((c == 0) && (c1 == 0x90))
break;
}}
ANX9030在上電復位后,設置 DE_GEN和 BT_656同步信號檢測,然后進行像素格式和時鐘路徑的設置來配置視頻信息。由于 HDMI兼容DVI,所以發送端可工作在 HDMI模式或 DVI模式,在此只需對 ANX9030的 HDMI_MODE位設置為 1(HDMI)或0(DVI)即可。檢測到 HDMI模式后,設置 HDMI的音頻格式及數據包,沒有異常中斷時,使能數據包發送即可把音視頻數據包等信息發送出去,發送成功后返回。
除了像素時鐘檢測(CKDT)和熱插拔檢測(HPDT)功能外,ANX9030的大部分功能都處于待機狀態,軟件需要正確的配置其他寄存器,這些寄存器的詳細配置可參考 ANX9030的芯片資料。
ANX9030的異常處理。由于 ANX9030提供了 16個中斷觸發源,包括軟件觸發中斷、檢測到顯示器中斷、接收端上電/斷電檢測中斷、S/PDIF輸入丟包中斷及 CTS變化中斷等,所以源端主控制器需要一個中斷來管理 ANX9030所發出的中斷。一般只需要熱拔插檢測、RI_128連接完整性檢測及音頻 FIFO溢出、CTS變化等中斷即可。本設計利用 EP9302的中斷引腳 INT0來捕獲 ANX9030引發的中斷,然后進行相應的中斷處理。
4.結束語
HDMI是針對下一代多媒體影音設備所開發的傳輸接口,適用于數字電視、DVD播放機、DVD錄放機、PVR、機頂盒及其他數字視聽產品,現在已廣泛應用于 PC機及平板顯示器等消費類電子產品上。本文詳細說明了 HDMI接口原理、源接口芯片特點、接口電路設計及在 ARM9嵌入式平臺上系統軟件的實現方法,該系統可用于安防監控和高清晰視頻會議等領域。
本文作者創新觀念:把高清多媒體接口 HDMI應用到視頻監控系統中,和一般監控系統相比,具有監控場景更加清晰和使用靈活等優點。