'基於FPGA的高清視頻採集系統設計'

HDMI 設計 賽靈思 硬件 技術 筆記本電腦 Flash 電腦 電子技術應用 2019-07-31
"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

基於FPGA的高清視頻採集系統設計

3.1 視頻採集控制部分

OV5640對上電的時序有一定的要求,所以滿足此上電時序的模塊是必不可少的,完成初始化後,先確定OV5640的工作模式,通過SCCB總線就能完成,此係統中配置了303個寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準完成後,就可獲取視頻數據;控制OV5640需要先提供一個系統時鐘XVCLK,為192 MHz,然後識別像素輸出時鐘(PCLK)、場同步信號(VSYNC)、行同步信號(HREF)來獲取數據。場同步信號下降沿表示一幀數據的開始,行同步信號為高電平時為有效數據輸出,在場同步信號低電平之間,行同步信號會出現1 080次高電平,代表一幀數據有1 080行數據;在行同步信號處於高電平期間會持續1 920個像素輸出時鐘,代表每一行有1 920個像素點。

3.2 DDR3-SDRAM緩存控制部分

DDR3-SDRAM數據的存取使用了Spartan6系列FPGA提供的MIG IP核,同時也需要MCB硬核與外部的SDRAM芯片進行數據交換。在Xilinx編譯環境ISE中生成SDRAM控制器後,就可運用MIG IP核用戶接口進行數據存取,本系統中MIG IP核配置成兩個位寬為64 bit的雙向端口,一個端口用於寫數據,一個端口用於讀數據。其工作狀態示意圖如圖5所示,在MIG IP核的前端和後端分別加入一個寫數據FIFO和讀數據FIFO,對於調用此緩存模塊的邏輯來說,就相當於一個大容量的FIFO。在MIG IP核內部,採用乒乓操作的方式來提高緩存效率,在緩存的過程中,將4 Gbit容量的存儲區域分為N個區域,每個區域的容量為一幀視頻數據的容量,在寫入過程中,先將數據寫入第1區域,第1區域寫滿後開始寫下一區域(為第2區域,寫下一區域時確保該區域數據為空),此時就可以讀取第1區域的數據,第1區域讀完再讀下一區域(為第2區域,在讀下一區域時確保該區域數據已滿)數據,依此順序循環讀寫,完成乒乓操作。這種緩存方式可極大提高視頻數據緩存效率,有效解決高速大容量數據的緩存問題,一幀視頻數據連續且不會出現數據交叉的情況(地址不會交叉),避免了視頻顯示的拖影現象。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

基於FPGA的高清視頻採集系統設計

3.1 視頻採集控制部分

OV5640對上電的時序有一定的要求,所以滿足此上電時序的模塊是必不可少的,完成初始化後,先確定OV5640的工作模式,通過SCCB總線就能完成,此係統中配置了303個寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準完成後,就可獲取視頻數據;控制OV5640需要先提供一個系統時鐘XVCLK,為192 MHz,然後識別像素輸出時鐘(PCLK)、場同步信號(VSYNC)、行同步信號(HREF)來獲取數據。場同步信號下降沿表示一幀數據的開始,行同步信號為高電平時為有效數據輸出,在場同步信號低電平之間,行同步信號會出現1 080次高電平,代表一幀數據有1 080行數據;在行同步信號處於高電平期間會持續1 920個像素輸出時鐘,代表每一行有1 920個像素點。

3.2 DDR3-SDRAM緩存控制部分

DDR3-SDRAM數據的存取使用了Spartan6系列FPGA提供的MIG IP核,同時也需要MCB硬核與外部的SDRAM芯片進行數據交換。在Xilinx編譯環境ISE中生成SDRAM控制器後,就可運用MIG IP核用戶接口進行數據存取,本系統中MIG IP核配置成兩個位寬為64 bit的雙向端口,一個端口用於寫數據,一個端口用於讀數據。其工作狀態示意圖如圖5所示,在MIG IP核的前端和後端分別加入一個寫數據FIFO和讀數據FIFO,對於調用此緩存模塊的邏輯來說,就相當於一個大容量的FIFO。在MIG IP核內部,採用乒乓操作的方式來提高緩存效率,在緩存的過程中,將4 Gbit容量的存儲區域分為N個區域,每個區域的容量為一幀視頻數據的容量,在寫入過程中,先將數據寫入第1區域,第1區域寫滿後開始寫下一區域(為第2區域,寫下一區域時確保該區域數據為空),此時就可以讀取第1區域的數據,第1區域讀完再讀下一區域(為第2區域,在讀下一區域時確保該區域數據已滿)數據,依此順序循環讀寫,完成乒乓操作。這種緩存方式可極大提高視頻數據緩存效率,有效解決高速大容量數據的緩存問題,一幀視頻數據連續且不會出現數據交叉的情況(地址不會交叉),避免了視頻顯示的拖影現象。

基於FPGA的高清視頻採集系統設計

3.3 HDMI接口控制部分

在HDMI工作之前,需要通過I2C總線給寄存器配置數據,數據格式配置為RGB24,分辨率為1 920×1 080,視頻幀率為30 f/s。配置完成後,緩存區一數據滿時,就可讀取視頻數據按照特定時序發送給SiI9134,SiI9134數據發送時序如圖6所示,行同步信號的下降沿代表一幀視頻數據的開始,上升沿代表一幀數據的結束,當一行數據發送完後開始發送下一行數據,當一幀數據最後一行發送完成後再發送下一幀畫面的第一行數據。以此重複循環發送數據,DE為數據有效信號,高電平有效。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

基於FPGA的高清視頻採集系統設計

3.1 視頻採集控制部分

OV5640對上電的時序有一定的要求,所以滿足此上電時序的模塊是必不可少的,完成初始化後,先確定OV5640的工作模式,通過SCCB總線就能完成,此係統中配置了303個寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準完成後,就可獲取視頻數據;控制OV5640需要先提供一個系統時鐘XVCLK,為192 MHz,然後識別像素輸出時鐘(PCLK)、場同步信號(VSYNC)、行同步信號(HREF)來獲取數據。場同步信號下降沿表示一幀數據的開始,行同步信號為高電平時為有效數據輸出,在場同步信號低電平之間,行同步信號會出現1 080次高電平,代表一幀數據有1 080行數據;在行同步信號處於高電平期間會持續1 920個像素輸出時鐘,代表每一行有1 920個像素點。

3.2 DDR3-SDRAM緩存控制部分

DDR3-SDRAM數據的存取使用了Spartan6系列FPGA提供的MIG IP核,同時也需要MCB硬核與外部的SDRAM芯片進行數據交換。在Xilinx編譯環境ISE中生成SDRAM控制器後,就可運用MIG IP核用戶接口進行數據存取,本系統中MIG IP核配置成兩個位寬為64 bit的雙向端口,一個端口用於寫數據,一個端口用於讀數據。其工作狀態示意圖如圖5所示,在MIG IP核的前端和後端分別加入一個寫數據FIFO和讀數據FIFO,對於調用此緩存模塊的邏輯來說,就相當於一個大容量的FIFO。在MIG IP核內部,採用乒乓操作的方式來提高緩存效率,在緩存的過程中,將4 Gbit容量的存儲區域分為N個區域,每個區域的容量為一幀視頻數據的容量,在寫入過程中,先將數據寫入第1區域,第1區域寫滿後開始寫下一區域(為第2區域,寫下一區域時確保該區域數據為空),此時就可以讀取第1區域的數據,第1區域讀完再讀下一區域(為第2區域,在讀下一區域時確保該區域數據已滿)數據,依此順序循環讀寫,完成乒乓操作。這種緩存方式可極大提高視頻數據緩存效率,有效解決高速大容量數據的緩存問題,一幀視頻數據連續且不會出現數據交叉的情況(地址不會交叉),避免了視頻顯示的拖影現象。

基於FPGA的高清視頻採集系統設計

3.3 HDMI接口控制部分

在HDMI工作之前,需要通過I2C總線給寄存器配置數據,數據格式配置為RGB24,分辨率為1 920×1 080,視頻幀率為30 f/s。配置完成後,緩存區一數據滿時,就可讀取視頻數據按照特定時序發送給SiI9134,SiI9134數據發送時序如圖6所示,行同步信號的下降沿代表一幀視頻數據的開始,上升沿代表一幀數據的結束,當一行數據發送完後開始發送下一行數據,當一幀數據最後一行發送完成後再發送下一幀畫面的第一行數據。以此重複循環發送數據,DE為數據有效信號,高電平有效。

基於FPGA的高清視頻採集系統設計

4 測試結果

硬件電路電氣性能測試完成後,開始進行整體性能的測試,在整體性能測試之前,還需要對FPGA程序進行功能仿真和時序仿真,再對各個功能模塊分別進行測試,確保代碼準確無誤。

4.1 DDR3-SDRAM測試

利用Xilinx公司提供的ChipScope Pro工具對DDR3-SDRAM代碼進行測試,測試過程中,由系統內部產生遞增數寫入到寫數據FIFO中,然後從讀數據FIFO中讀取數據,將寫入的數據和讀出的數據通過ChipScope Pro工具抓取,再對抓取結果繪出波形並進行比對,測試結果如圖7所示。從測試結果來看,讀寫速度快且沒有出現數據亂碼情況,符合系統要求。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

基於FPGA的高清視頻採集系統設計

3.1 視頻採集控制部分

OV5640對上電的時序有一定的要求,所以滿足此上電時序的模塊是必不可少的,完成初始化後,先確定OV5640的工作模式,通過SCCB總線就能完成,此係統中配置了303個寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準完成後,就可獲取視頻數據;控制OV5640需要先提供一個系統時鐘XVCLK,為192 MHz,然後識別像素輸出時鐘(PCLK)、場同步信號(VSYNC)、行同步信號(HREF)來獲取數據。場同步信號下降沿表示一幀數據的開始,行同步信號為高電平時為有效數據輸出,在場同步信號低電平之間,行同步信號會出現1 080次高電平,代表一幀數據有1 080行數據;在行同步信號處於高電平期間會持續1 920個像素輸出時鐘,代表每一行有1 920個像素點。

3.2 DDR3-SDRAM緩存控制部分

DDR3-SDRAM數據的存取使用了Spartan6系列FPGA提供的MIG IP核,同時也需要MCB硬核與外部的SDRAM芯片進行數據交換。在Xilinx編譯環境ISE中生成SDRAM控制器後,就可運用MIG IP核用戶接口進行數據存取,本系統中MIG IP核配置成兩個位寬為64 bit的雙向端口,一個端口用於寫數據,一個端口用於讀數據。其工作狀態示意圖如圖5所示,在MIG IP核的前端和後端分別加入一個寫數據FIFO和讀數據FIFO,對於調用此緩存模塊的邏輯來說,就相當於一個大容量的FIFO。在MIG IP核內部,採用乒乓操作的方式來提高緩存效率,在緩存的過程中,將4 Gbit容量的存儲區域分為N個區域,每個區域的容量為一幀視頻數據的容量,在寫入過程中,先將數據寫入第1區域,第1區域寫滿後開始寫下一區域(為第2區域,寫下一區域時確保該區域數據為空),此時就可以讀取第1區域的數據,第1區域讀完再讀下一區域(為第2區域,在讀下一區域時確保該區域數據已滿)數據,依此順序循環讀寫,完成乒乓操作。這種緩存方式可極大提高視頻數據緩存效率,有效解決高速大容量數據的緩存問題,一幀視頻數據連續且不會出現數據交叉的情況(地址不會交叉),避免了視頻顯示的拖影現象。

基於FPGA的高清視頻採集系統設計

3.3 HDMI接口控制部分

在HDMI工作之前,需要通過I2C總線給寄存器配置數據,數據格式配置為RGB24,分辨率為1 920×1 080,視頻幀率為30 f/s。配置完成後,緩存區一數據滿時,就可讀取視頻數據按照特定時序發送給SiI9134,SiI9134數據發送時序如圖6所示,行同步信號的下降沿代表一幀視頻數據的開始,上升沿代表一幀數據的結束,當一行數據發送完後開始發送下一行數據,當一幀數據最後一行發送完成後再發送下一幀畫面的第一行數據。以此重複循環發送數據,DE為數據有效信號,高電平有效。

基於FPGA的高清視頻採集系統設計

4 測試結果

硬件電路電氣性能測試完成後,開始進行整體性能的測試,在整體性能測試之前,還需要對FPGA程序進行功能仿真和時序仿真,再對各個功能模塊分別進行測試,確保代碼準確無誤。

4.1 DDR3-SDRAM測試

利用Xilinx公司提供的ChipScope Pro工具對DDR3-SDRAM代碼進行測試,測試過程中,由系統內部產生遞增數寫入到寫數據FIFO中,然後從讀數據FIFO中讀取數據,將寫入的數據和讀出的數據通過ChipScope Pro工具抓取,再對抓取結果繪出波形並進行比對,測試結果如圖7所示。從測試結果來看,讀寫速度快且沒有出現數據亂碼情況,符合系統要求。

基於FPGA的高清視頻採集系統設計

4.2 HDMI接口測試

HDMI接口模塊測試結果如圖8所示,測試過程中,視頻數據源由系統內部產生,包括三基色、棋盤格、彩色條等數據,最後將串行數據發送到支持1080p分辨率的顯示器上。從測試結果來看,顯示效果符合要求。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

基於FPGA的高清視頻採集系統設計

3.1 視頻採集控制部分

OV5640對上電的時序有一定的要求,所以滿足此上電時序的模塊是必不可少的,完成初始化後,先確定OV5640的工作模式,通過SCCB總線就能完成,此係統中配置了303個寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準完成後,就可獲取視頻數據;控制OV5640需要先提供一個系統時鐘XVCLK,為192 MHz,然後識別像素輸出時鐘(PCLK)、場同步信號(VSYNC)、行同步信號(HREF)來獲取數據。場同步信號下降沿表示一幀數據的開始,行同步信號為高電平時為有效數據輸出,在場同步信號低電平之間,行同步信號會出現1 080次高電平,代表一幀數據有1 080行數據;在行同步信號處於高電平期間會持續1 920個像素輸出時鐘,代表每一行有1 920個像素點。

3.2 DDR3-SDRAM緩存控制部分

DDR3-SDRAM數據的存取使用了Spartan6系列FPGA提供的MIG IP核,同時也需要MCB硬核與外部的SDRAM芯片進行數據交換。在Xilinx編譯環境ISE中生成SDRAM控制器後,就可運用MIG IP核用戶接口進行數據存取,本系統中MIG IP核配置成兩個位寬為64 bit的雙向端口,一個端口用於寫數據,一個端口用於讀數據。其工作狀態示意圖如圖5所示,在MIG IP核的前端和後端分別加入一個寫數據FIFO和讀數據FIFO,對於調用此緩存模塊的邏輯來說,就相當於一個大容量的FIFO。在MIG IP核內部,採用乒乓操作的方式來提高緩存效率,在緩存的過程中,將4 Gbit容量的存儲區域分為N個區域,每個區域的容量為一幀視頻數據的容量,在寫入過程中,先將數據寫入第1區域,第1區域寫滿後開始寫下一區域(為第2區域,寫下一區域時確保該區域數據為空),此時就可以讀取第1區域的數據,第1區域讀完再讀下一區域(為第2區域,在讀下一區域時確保該區域數據已滿)數據,依此順序循環讀寫,完成乒乓操作。這種緩存方式可極大提高視頻數據緩存效率,有效解決高速大容量數據的緩存問題,一幀視頻數據連續且不會出現數據交叉的情況(地址不會交叉),避免了視頻顯示的拖影現象。

基於FPGA的高清視頻採集系統設計

3.3 HDMI接口控制部分

在HDMI工作之前,需要通過I2C總線給寄存器配置數據,數據格式配置為RGB24,分辨率為1 920×1 080,視頻幀率為30 f/s。配置完成後,緩存區一數據滿時,就可讀取視頻數據按照特定時序發送給SiI9134,SiI9134數據發送時序如圖6所示,行同步信號的下降沿代表一幀視頻數據的開始,上升沿代表一幀數據的結束,當一行數據發送完後開始發送下一行數據,當一幀數據最後一行發送完成後再發送下一幀畫面的第一行數據。以此重複循環發送數據,DE為數據有效信號,高電平有效。

基於FPGA的高清視頻採集系統設計

4 測試結果

硬件電路電氣性能測試完成後,開始進行整體性能的測試,在整體性能測試之前,還需要對FPGA程序進行功能仿真和時序仿真,再對各個功能模塊分別進行測試,確保代碼準確無誤。

4.1 DDR3-SDRAM測試

利用Xilinx公司提供的ChipScope Pro工具對DDR3-SDRAM代碼進行測試,測試過程中,由系統內部產生遞增數寫入到寫數據FIFO中,然後從讀數據FIFO中讀取數據,將寫入的數據和讀出的數據通過ChipScope Pro工具抓取,再對抓取結果繪出波形並進行比對,測試結果如圖7所示。從測試結果來看,讀寫速度快且沒有出現數據亂碼情況,符合系統要求。

基於FPGA的高清視頻採集系統設計

4.2 HDMI接口測試

HDMI接口模塊測試結果如圖8所示,測試過程中,視頻數據源由系統內部產生,包括三基色、棋盤格、彩色條等數據,最後將串行數據發送到支持1080p分辨率的顯示器上。從測試結果來看,顯示效果符合要求。

基於FPGA的高清視頻採集系統設計

4.3 系統整體測試

圖9所示為系統整體測試結果,測試過程中,視頻數據源為攝像頭採集的視頻數據,數據經過DDR3-SDRAM緩存,再發送到HDMI接口芯片,然後通過HDMI連接器和傳輸線將差分數據傳輸給顯示器。從測試結果來看,如圖9(a)所示,視頻顯示清晰完整;當攝像頭移動時,如圖9(b)所示,圖像顯示無拖影現象,證明通過DDR3-SDRAM高效緩存和乒乓操作結合的方式,能夠有效解決高速大容量數據的緩存問題。

"

隨著視頻顯示技術的發展,視頻信號從之前的標清發展到高清,再發展到全高清,其分辨越來越高,數據量也成倍增加,這就推進了顯示接口技術的高速發展,顯示接口技術經過了一個從模擬到數字、從並行到串行、低速到高速的發展過程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠,支持的分辨率更高,不僅能夠傳輸視頻信號,還能傳輸音頻信號,且具備版權保護功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設備的標準接口之一,得到了廣泛應用[5-6]。本系統中不僅實現了標準HDMI接口電路及其控制,並且還提供全高清視頻數據源,選用500萬像素級別CMOS攝像頭OV5640,輸出視頻信號分辨率可達2K級別,支持多種數據格式輸出。為了解決由於視頻數據緩存速率和容量不足導致的拖影問題,該系統選用容量為4 Gbit的DDR3SDRAM作為換緩存介質,通過Xilinx公司的MIG IP和對其進行控制,再結合乒乓操作,能有效解決高數大容量數據的緩存問題,使顯示質量更高。本系統實現了全高清視頻信號的採集及高質量顯示,其能應用到多種領域,包括軍用監控領域、多媒體領域、醫用領域等。

1 方案設計

此視頻採集顯示系統原理框圖如圖1所示,該系統主要包括視頻採集模塊、FPGA主控模塊、數據緩存模塊和HDMI接口電路。視頻採集模塊提供全高清視頻數據源,在其開始採集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發送到攝像頭中的寄存器;FPGA主控模塊是此係統的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數據流;數據緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質,能有效解決高速大容量數據的緩存問題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實現視頻數據的並串轉換;最後,串行視頻數據通過HDMI傳輸線傳輸到支持HDMI接口的顯示器上,就能實時顯示全高清視頻圖像。

基於FPGA的高清視頻採集系統設計

2 主要硬件電路設計

2.1 視頻採集模塊

視頻採集模塊選用OmniVision公司OV5640攝像頭,其為500萬像素級別CMOS圖像傳感器,支持分辨率可達2K級別,能輸出多種圖像格式數據,且支持多種自適應調節功能。此CMOS圖像傳感器支持DVP和MIPI兩種數據接口,本系統中選擇DVP接口。在主控模塊獲取數據之前需要通過SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統中CMOS圖像傳感器圖像數據輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數字和模擬供電電路。

2.2 FPGA主控模塊

系統控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產品Spartan6 FPGA基於公認的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術,提供了高級功耗管理技術、150 000個邏輯單元、硬核DRAM存儲器以及多種IP等,是Xlinx公司應用最為廣泛、技術非常成熟的一個FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數據獲取、DDR3-SDRAM數據的存取以及HDMI接口芯片的配置以及視頻數據發送,其硬件電路還包括供電電路、復位電路、晶振電路、下載電路和配置SPI Flash電路。

2.3 數據緩存模塊

為了解決高速大容量視頻數據的緩存問題,此係統選用Micron公司4 Gbit容量DDR3-SDRAM存儲芯片MT41J256M16HA-125作為緩存介質,其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,FPGA通過控制地址總線和Bank地址就能控制數據在DDR3-SDRAM中的存儲位置;D0~D15為數據總線,與FPGA並行連接;CLK-N和CLK-P為差分時鐘輸入端口,本系統中設定時鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(CAS)、行地址選擇信號(RAS)、寫使能信號(WE)對DDR3-SDRAM進行讀寫控制,通過控制ODT使能片內電阻優化性能來防止數據線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號,其為雙向信號,當寫入數據時,其由控制器發出,當讀取數據時,其由存儲器發出;DM為數據屏蔽信號[13]。由於Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標準為1.5 V,且在FPAG UCF中,需要設定IO標準為SSTL15_II。

基於FPGA的高清視頻採集系統設計

2.4 HDMI接口模塊

本系統中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關係如圖3所示。在芯片工作之前,需要通過I2C(SCL、SDA)總線將寄存器信息配置到芯片裡,配置過程中頻率為100 kHz,數據輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數據同步時鐘,此芯片1080p視頻格式的時鐘為148.5 MHz,DE為數據有效信號,高電平有效;HS、VS分別為行同步信號和場同步信號;D[23:0]為RGB24數據輸入總線,從上到下依次為R、G、B分量數據總線,為了支持其他視頻數據格式,SiI9134的總線寬度為36 bit,此係統中只使用24 bit,其餘的數據總線引腳接地;SiI9134支持多種數字音頻信號輸入接口,包括S/PDIF、I2S等,本系統中不使用音頻接口。RGB24格式視頻數據經SiI9134編碼後,轉換成串行數據後通過連接器和傳輸線將數據發送給顯示器,最終顯示出全高清視頻。

基於FPGA的高清視頻採集系統設計

3 控制邏輯設計

本系統控制邏輯設計中,包括OV5640配置及視頻數據獲取邏輯、DDR3-SDRAM數據存取控制邏輯、SiI9134配置及視頻數據發送邏輯。系統通過DVP口接收RGB24格式的視頻數據,然後將視頻數據分區域存入DDR3-SDRAM中,再將視頻數據從中讀出發送給HDMI接口芯片供顯示屏顯示。系統工作流程如圖4所示,上電後系統先進行復位操作,然後進入初始化狀態,系統給OV5640和SiI9134發送配置信息,DDR3-SDRAM也開始進入初始化和校驗過程。所有初始化工作完成後,系統判斷OV5640是否配置結束,如果配置結束,系統將獲取視頻數據,並將其存入DDR3-SDRAM中。當緩存區有數據且SiI9134配置結束後,系統將緩存區的視頻數據讀出發送給SiI9134。

基於FPGA的高清視頻採集系統設計

3.1 視頻採集控制部分

OV5640對上電的時序有一定的要求,所以滿足此上電時序的模塊是必不可少的,完成初始化後,先確定OV5640的工作模式,通過SCCB總線就能完成,此係統中配置了303個寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準完成後,就可獲取視頻數據;控制OV5640需要先提供一個系統時鐘XVCLK,為192 MHz,然後識別像素輸出時鐘(PCLK)、場同步信號(VSYNC)、行同步信號(HREF)來獲取數據。場同步信號下降沿表示一幀數據的開始,行同步信號為高電平時為有效數據輸出,在場同步信號低電平之間,行同步信號會出現1 080次高電平,代表一幀數據有1 080行數據;在行同步信號處於高電平期間會持續1 920個像素輸出時鐘,代表每一行有1 920個像素點。

3.2 DDR3-SDRAM緩存控制部分

DDR3-SDRAM數據的存取使用了Spartan6系列FPGA提供的MIG IP核,同時也需要MCB硬核與外部的SDRAM芯片進行數據交換。在Xilinx編譯環境ISE中生成SDRAM控制器後,就可運用MIG IP核用戶接口進行數據存取,本系統中MIG IP核配置成兩個位寬為64 bit的雙向端口,一個端口用於寫數據,一個端口用於讀數據。其工作狀態示意圖如圖5所示,在MIG IP核的前端和後端分別加入一個寫數據FIFO和讀數據FIFO,對於調用此緩存模塊的邏輯來說,就相當於一個大容量的FIFO。在MIG IP核內部,採用乒乓操作的方式來提高緩存效率,在緩存的過程中,將4 Gbit容量的存儲區域分為N個區域,每個區域的容量為一幀視頻數據的容量,在寫入過程中,先將數據寫入第1區域,第1區域寫滿後開始寫下一區域(為第2區域,寫下一區域時確保該區域數據為空),此時就可以讀取第1區域的數據,第1區域讀完再讀下一區域(為第2區域,在讀下一區域時確保該區域數據已滿)數據,依此順序循環讀寫,完成乒乓操作。這種緩存方式可極大提高視頻數據緩存效率,有效解決高速大容量數據的緩存問題,一幀視頻數據連續且不會出現數據交叉的情況(地址不會交叉),避免了視頻顯示的拖影現象。

基於FPGA的高清視頻採集系統設計

3.3 HDMI接口控制部分

在HDMI工作之前,需要通過I2C總線給寄存器配置數據,數據格式配置為RGB24,分辨率為1 920×1 080,視頻幀率為30 f/s。配置完成後,緩存區一數據滿時,就可讀取視頻數據按照特定時序發送給SiI9134,SiI9134數據發送時序如圖6所示,行同步信號的下降沿代表一幀視頻數據的開始,上升沿代表一幀數據的結束,當一行數據發送完後開始發送下一行數據,當一幀數據最後一行發送完成後再發送下一幀畫面的第一行數據。以此重複循環發送數據,DE為數據有效信號,高電平有效。

基於FPGA的高清視頻採集系統設計

4 測試結果

硬件電路電氣性能測試完成後,開始進行整體性能的測試,在整體性能測試之前,還需要對FPGA程序進行功能仿真和時序仿真,再對各個功能模塊分別進行測試,確保代碼準確無誤。

4.1 DDR3-SDRAM測試

利用Xilinx公司提供的ChipScope Pro工具對DDR3-SDRAM代碼進行測試,測試過程中,由系統內部產生遞增數寫入到寫數據FIFO中,然後從讀數據FIFO中讀取數據,將寫入的數據和讀出的數據通過ChipScope Pro工具抓取,再對抓取結果繪出波形並進行比對,測試結果如圖7所示。從測試結果來看,讀寫速度快且沒有出現數據亂碼情況,符合系統要求。

基於FPGA的高清視頻採集系統設計

4.2 HDMI接口測試

HDMI接口模塊測試結果如圖8所示,測試過程中,視頻數據源由系統內部產生,包括三基色、棋盤格、彩色條等數據,最後將串行數據發送到支持1080p分辨率的顯示器上。從測試結果來看,顯示效果符合要求。

基於FPGA的高清視頻採集系統設計

4.3 系統整體測試

圖9所示為系統整體測試結果,測試過程中,視頻數據源為攝像頭採集的視頻數據,數據經過DDR3-SDRAM緩存,再發送到HDMI接口芯片,然後通過HDMI連接器和傳輸線將差分數據傳輸給顯示器。從測試結果來看,如圖9(a)所示,視頻顯示清晰完整;當攝像頭移動時,如圖9(b)所示,圖像顯示無拖影現象,證明通過DDR3-SDRAM高效緩存和乒乓操作結合的方式,能夠有效解決高速大容量數據的緩存問題。

基於FPGA的高清視頻採集系統設計

5 結論

為了滿足人們對視頻顯示質量的需求,本系統設計了一種全高清視頻採集顯示系統,系統以OminiVision公司的500萬像素級別CMOS圖像傳感器OV5640為前端採集攝像頭,以Xilinx公司Spartan6系列FPGA作為主控芯片,以4 Gbit容量DDR3-SDRAM作為緩存芯片,再結合MCB硬核、MIG IP核以及乒乓操作,實現視頻數據的高效緩存;同時以Silion Image公司的SiI9134為HDMI芯片,能有效支持全高清視頻。系統能夠穩定採集顯示全高清視頻,顯示質量高且無拖影現象,該系統可應用於軍用監控系統、民用多媒體系統以及醫學等領域。

參考文獻

[1] 黃慶敏,羅鍵.HDMI接口標準及應用設計[J].電視技術,2007(2):32-34.

[2] 顧海峰,夏寧,吳傑.一種基於CH7301C的顯示接口電路設計[J].信息化研究,2012,38(6):30-34.

[3] 劉佳.數字圖像高速採集和傳輸技術的研究與實現[D].天津:天津大學,2014.

[4] 李先友,趙曙光,段永成,等.基於FPGA的實時MIPI CSI-2圖像採集與處理系統[J].電子技術應用,2019,45(1):97-100.

[5] 潘磊,葛中芹,莊建軍,等.基於FPGA的HDMI視頻流圖像處理的系統設計[J].實驗室研究與探索,2015,34(10):76-80.

[6] 向梓豪,陸安江.基於FPGA的HDMI多模式顯示模塊設計[J].電子技術應用,2017,43(12):48-51.

[7] 陳一波,楊玉華,王紅亮,等.基於DDR3-SDRAM的圖像採集與顯示系統[J].電子器件,2017,40(3):702-707.

[8] 周浩,王浩全,任時磊.基於FPGA和NAND Flash的便攜式信號採集系統設計[J].電子技術應用,2018,44(9):82-86.

[9] 林謀錦,林子威.DVI接口與HDMI接口的比較[J].中國有線電視,2005(6):581-582.

[10] 楊帆,張皓,馬新文,等.基於FPGA的圖像處理系統[J].華中科技大學學報(自然科學版),2015,43(2):119-123.

[11] 宋海吒,唐立軍,謝新輝.基於FPGA和OV7620的圖像採集及VGA顯示[J].電視技術,2011,35(5):45-47.

[12] 李華.基於FPGA的高精度圖像採集系統設計[J].電子器件,2014,37(5):840-843.

[13] 潘明,陳元枝,李強.基於FPGA的圖像採集系統的設計[J].國外電子測量技術,2012,31(3):58-61.

作者信息:

王少斌,蘇淑靖,袁財源

(中北大學 電子測試技術國家重點實驗室,山西 太原030051)

"

相關推薦

推薦中...