文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.190262
中文引用格式: 王少斌,蘇淑靖,袁財(cái)源. 基于FPGA的高清視頻采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(7):63-66,71.
英文引用格式: Wang Shaobin,Su Shujing,Yuan Caiyuan. Design of high-definition video acquisition system based on FPGA[J]. Application of Electronic Technique,2019,45(7):63-66,71.
0 引言
隨著視頻顯示技術(shù)的發(fā)展,視頻信號(hào)從之前的標(biāo)清發(fā)展到高清,再發(fā)展到全高清,其分辨越來(lái)越高,數(shù)據(jù)量也成倍增加,這就推進(jìn)了顯示接口技術(shù)的高速發(fā)展,顯示接口技術(shù)經(jīng)過(guò)了一個(gè)從模擬到數(shù)字、從并行到串行、低速到高速的發(fā)展過(guò)程[1-3]。HDMI接口是最新的高清晰度多媒體接口,與DVI接口相比,其尺寸更小,帶寬更大,傳輸距離更遠(yuǎn),支持的分辨率更高,不僅能夠傳輸視頻信號(hào),還能傳輸音頻信號(hào),且具備版權(quán)保護(hù)功能[4]。HDMI接口已成為液晶顯示器、平板帶腦、筆記本電腦等設(shè)備的標(biāo)準(zhǔn)接口之一,得到了廣泛應(yīng)用[5-6]。本系統(tǒng)中不僅實(shí)現(xiàn)了標(biāo)準(zhǔn)HDMI接口電路及其控制,并且還提供全高清視頻數(shù)據(jù)源,選用500萬(wàn)像素級(jí)別CMOS攝像頭OV5640,輸出視頻信號(hào)分辨率可達(dá)2K級(jí)別,支持多種數(shù)據(jù)格式輸出。為了解決由于視頻數(shù)據(jù)緩存速率和容量不足導(dǎo)致的拖影問(wèn)題,該系統(tǒng)選用容量為4 Gbit的DDR3 SDRAM作為換緩存介質(zhì),通過(guò)Xilinx公司的MIG IP和對(duì)其進(jìn)行控制,再結(jié)合乒乓操作,能有效解決高數(shù)大容量數(shù)據(jù)的緩存問(wèn)題,使顯示質(zhì)量更高。本系統(tǒng)實(shí)現(xiàn)了全高清視頻信號(hào)的采集及高質(zhì)量顯示,其能應(yīng)用到多種領(lǐng)域,包括軍用監(jiān)控領(lǐng)域、多媒體領(lǐng)域、醫(yī)用領(lǐng)域等。
1 方案設(shè)計(jì)
此視頻采集顯示系統(tǒng)原理框圖如圖1所示,該系統(tǒng)主要包括視頻采集模塊、FPGA主控模塊、數(shù)據(jù)緩存模塊和HDMI接口電路。視頻采集模塊提供全高清視頻數(shù)據(jù)源,在其開(kāi)始采集之前需要FPGA主控模塊通過(guò)SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發(fā)送到攝像頭中的寄存器;FPGA主控模塊是此系統(tǒng)的控制核心,其控制著攝像頭、DDR3-SDRAM、HDMI接口芯片以及視頻數(shù)據(jù)流;數(shù)據(jù)緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質(zhì),能有效解決高速大容量數(shù)據(jù)的緩存問(wèn)題;HDMI接口電路主要包含一塊HDMI接口芯片,其作用是實(shí)現(xiàn)視頻數(shù)據(jù)的并串轉(zhuǎn)換;最后,串行視頻數(shù)據(jù)通過(guò)HDMI傳輸線傳輸?shù)街С諬DMI接口的顯示器上,就能實(shí)時(shí)顯示全高清視頻圖像。
2 主要硬件電路設(shè)計(jì)
2.1 視頻采集模塊
視頻采集模塊選用OmniVision公司OV5640攝像頭,其為500萬(wàn)像素級(jí)別CMOS圖像傳感器,支持分辨率可達(dá)2K級(jí)別,能輸出多種圖像格式數(shù)據(jù),且支持多種自適應(yīng)調(diào)節(jié)功能。此CMOS圖像傳感器支持DVP和MIPI兩種數(shù)據(jù)接口,本系統(tǒng)中選擇DVP接口。在主控模塊獲取數(shù)據(jù)之前需要通過(guò)SCCB總線將傳感器寄存器信息配置給傳感器[7-8]。本系統(tǒng)中CMOS圖像傳感器圖像數(shù)據(jù)輸出格式配置為RGB24,視頻分辨率配置為1 920×1 080(全高清),視頻幀率配置為30 f/s,此模塊還包括數(shù)字和模擬供電電路。
2.2 FPGA主控模塊
系統(tǒng)控制核心選用的芯片是Xilinx公司Spartan6系列芯片XC6SLX45,第六代Spartan系列產(chǎn)品Spartan6 FPGA基于公認(rèn)的低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術(shù),提供了高級(jí)功耗管理技術(shù)、150 000個(gè)邏輯單元、硬核DRAM存儲(chǔ)器以及多種IP等,是Xlinx公司應(yīng)用最為廣泛、技術(shù)非常成熟的一個(gè)FPGA系列[9-11]。FPGA主控模塊主要完成攝像頭的配置及視頻數(shù)據(jù)獲取、DDR3-SDRAM數(shù)據(jù)的存取以及HDMI接口芯片的配置以及視頻數(shù)據(jù)發(fā)送,其硬件電路還包括供電電路、復(fù)位電路、晶振電路、下載電路和配置SPI Flash電路。
2.3 數(shù)據(jù)緩存模塊
為了解決高速大容量視頻數(shù)據(jù)的緩存問(wèn)題,此系統(tǒng)選用Micron公司4 Gbit容量DDR3-SDRAM存儲(chǔ)芯片MT41J256M16HA-125作為緩存介質(zhì),其與FPAG的硬件連接示意圖如圖2所示。A0~A14為地址總線,B0~B3為Bank地址,F(xiàn)PGA通過(guò)控制地址總線和Bank地址就能控制數(shù)據(jù)在DDR3-SDRAM中的存儲(chǔ)位置;D0~D15為數(shù)據(jù)總線,與FPGA并行連接;CLK-N和CLK-P為差分時(shí)鐘輸入端口,本系統(tǒng)中設(shè)定時(shí)鐘頻率為312.5 MHz;FPGA通過(guò)列地址選擇信號(hào)(CAS)、行地址選擇信號(hào)(RAS)、寫(xiě)使能信號(hào)(WE)對(duì)DDR3-SDRAM進(jìn)行讀寫(xiě)控制,通過(guò)控制ODT使能片內(nèi)電阻優(yōu)化性能來(lái)防止數(shù)據(jù)線中斷反射[12];DQS為DDR3-SDRAM與控制器之間的同步信號(hào),其為雙向信號(hào),當(dāng)寫(xiě)入數(shù)據(jù)時(shí),其由控制器發(fā)出,當(dāng)讀取數(shù)據(jù)時(shí),其由存儲(chǔ)器發(fā)出;DM為數(shù)據(jù)屏蔽信號(hào)[13]。由于Spartan6系列FPAG只有Bank1和Bank3有MCB硬核,在本系統(tǒng)中選擇FPGA中Bank3與DDR3-SDRAM連接,端口電壓標(biāo)準(zhǔn)為1.5 V,且在FPAG UCF中,需要設(shè)定IO標(biāo)準(zhǔn)為SSTL15_II。
2.4 HDMI接口模塊
本系統(tǒng)中選用SiI9134作為HDMI輸出接口芯片,其和FPAG的硬件連接關(guān)系如圖3所示。在芯片工作之前,需要通過(guò)I2C(SCL、SDA)總線將寄存器信息配置到芯片里,配置過(guò)程中頻率為100 kHz,數(shù)據(jù)輸入格式配置為RGB24,視頻輸出分辨率配置為1 920×1 080;CLK為視頻數(shù)據(jù)同步時(shí)鐘,此芯片1080p視頻格式的時(shí)鐘為148.5 MHz,DE為數(shù)據(jù)有效信號(hào),高電平有效;HS、VS分別為行同步信號(hào)和場(chǎng)同步信號(hào);D[23:0]為RGB24數(shù)據(jù)輸入總線,從上到下依次為R、G、B分量數(shù)據(jù)總線,為了支持其他視頻數(shù)據(jù)格式,SiI9134的總線寬度為36 bit,此系統(tǒng)中只使用24 bit,其余的數(shù)據(jù)總線引腳接地;SiI9134支持多種數(shù)字音頻信號(hào)輸入接口,包括S/PDIF、I2S等,本系統(tǒng)中不使用音頻接口。RGB24格式視頻數(shù)據(jù)經(jīng)SiI9134編碼后,轉(zhuǎn)換成串行數(shù)據(jù)后通過(guò)連接器和傳輸線將數(shù)據(jù)發(fā)送給顯示器,最終顯示出全高清視頻。
3 控制邏輯設(shè)計(jì)
本系統(tǒng)控制邏輯設(shè)計(jì)中,包括OV5640配置及視頻數(shù)據(jù)獲取邏輯、DDR3-SDRAM數(shù)據(jù)存取控制邏輯、SiI9134配置及視頻數(shù)據(jù)發(fā)送邏輯。系統(tǒng)通過(guò)DVP口接收RGB24格式的視頻數(shù)據(jù),然后將視頻數(shù)據(jù)分區(qū)域存入DDR3-SDRAM中,再將視頻數(shù)據(jù)從中讀出發(fā)送給HDMI接口芯片供顯示屏顯示。系統(tǒng)工作流程如圖4所示,上電后系統(tǒng)先進(jìn)行復(fù)位操作,然后進(jìn)入初始化狀態(tài),系統(tǒng)給OV5640和SiI9134發(fā)送配置信息,DDR3-SDRAM也開(kāi)始進(jìn)入初始化和校驗(yàn)過(guò)程。所有初始化工作完成后,系統(tǒng)判斷OV5640是否配置結(jié)束,如果配置結(jié)束,系統(tǒng)將獲取視頻數(shù)據(jù),并將其存入DDR3-SDRAM中。當(dāng)緩存區(qū)有數(shù)據(jù)且SiI9134配置結(jié)束后,系統(tǒng)將緩存區(qū)的視頻數(shù)據(jù)讀出發(fā)送給SiI9134。
3.1 視頻采集控制部分
OV5640對(duì)上電的時(shí)序有一定的要求,所以滿足此上電時(shí)序的模塊是必不可少的,完成初始化后,先確定OV5640的工作模式,通過(guò)SCCB總線就能完成,此系統(tǒng)中配置了303個(gè)寄存器;待OV5640配置完成和DDR3-SDRAM初始化和校準(zhǔn)完成后,就可獲取視頻數(shù)據(jù);控制OV5640需要先提供一個(gè)系統(tǒng)時(shí)鐘XVCLK,為192 MHz,然后識(shí)別像素輸出時(shí)鐘(PCLK)、場(chǎng)同步信號(hào)(VSYNC)、行同步信號(hào)(HREF)來(lái)獲取數(shù)據(jù)。場(chǎng)同步信號(hào)下降沿表示一幀數(shù)據(jù)的開(kāi)始,行同步信號(hào)為高電平時(shí)為有效數(shù)據(jù)輸出,在場(chǎng)同步信號(hào)低電平之間,行同步信號(hào)會(huì)出現(xiàn)1 080次高電平,代表一幀數(shù)據(jù)有1 080行數(shù)據(jù);在行同步信號(hào)處于高電平期間會(huì)持續(xù)1 920個(gè)像素輸出時(shí)鐘,代表每一行有1 920個(gè)像素點(diǎn)。
3.2 DDR3-SDRAM緩存控制部分
DDR3-SDRAM數(shù)據(jù)的存取使用了Spartan6系列FPGA提供的MIG IP核,同時(shí)也需要MCB硬核與外部的SDRAM芯片進(jìn)行數(shù)據(jù)交換。在Xilinx編譯環(huán)境ISE中生成SDRAM控制器后,就可運(yùn)用MIG IP核用戶接口進(jìn)行數(shù)據(jù)存取,本系統(tǒng)中MIG IP核配置成兩個(gè)位寬為64 bit的雙向端口,一個(gè)端口用于寫(xiě)數(shù)據(jù),一個(gè)端口用于讀數(shù)據(jù)。其工作狀態(tài)示意圖如圖5所示,在MIG IP核的前端和后端分別加入一個(gè)寫(xiě)數(shù)據(jù)FIFO和讀數(shù)據(jù)FIFO,對(duì)于調(diào)用此緩存模塊的邏輯來(lái)說(shuō),就相當(dāng)于一個(gè)大容量的FIFO。在MIG IP核內(nèi)部,采用乒乓操作的方式來(lái)提高緩存效率,在緩存的過(guò)程中,將4 Gbit容量的存儲(chǔ)區(qū)域分為N個(gè)區(qū)域,每個(gè)區(qū)域的容量為一幀視頻數(shù)據(jù)的容量,在寫(xiě)入過(guò)程中,先將數(shù)據(jù)寫(xiě)入第1區(qū)域,第1區(qū)域?qū)憹M后開(kāi)始寫(xiě)下一區(qū)域(為第2區(qū)域,寫(xiě)下一區(qū)域時(shí)確保該區(qū)域數(shù)據(jù)為空),此時(shí)就可以讀取第1區(qū)域的數(shù)據(jù),第1區(qū)域讀完再讀下一區(qū)域(為第2區(qū)域,在讀下一區(qū)域時(shí)確保該區(qū)域數(shù)據(jù)已滿)數(shù)據(jù),依此順序循環(huán)讀寫(xiě),完成乒乓操作。這種緩存方式可極大提高視頻數(shù)據(jù)緩存效率,有效解決高速大容量數(shù)據(jù)的緩存問(wèn)題,一幀視頻數(shù)據(jù)連續(xù)且不會(huì)出現(xiàn)數(shù)據(jù)交叉的情況(地址不會(huì)交叉),避免了視頻顯示的拖影現(xiàn)象。
3.3 HDMI接口控制部分
在HDMI工作之前,需要通過(guò)I2C總線給寄存器配置數(shù)據(jù),數(shù)據(jù)格式配置為RGB24,分辨率為1 920×1 080,視頻幀率為30 f/s。配置完成后,緩存區(qū)一數(shù)據(jù)滿時(shí),就可讀取視頻數(shù)據(jù)按照特定時(shí)序發(fā)送給SiI9134,SiI9134數(shù)據(jù)發(fā)送時(shí)序如圖6所示,行同步信號(hào)的下降沿代表一幀視頻數(shù)據(jù)的開(kāi)始,上升沿代表一幀數(shù)據(jù)的結(jié)束,當(dāng)一行數(shù)據(jù)發(fā)送完后開(kāi)始發(fā)送下一行數(shù)據(jù),當(dāng)一幀數(shù)據(jù)最后一行發(fā)送完成后再發(fā)送下一幀畫(huà)面的第一行數(shù)據(jù)。以此重復(fù)循環(huán)發(fā)送數(shù)據(jù),DE為數(shù)據(jù)有效信號(hào),高電平有效。
4 測(cè)試結(jié)果
硬件電路電氣性能測(cè)試完成后,開(kāi)始進(jìn)行整體性能的測(cè)試,在整體性能測(cè)試之前,還需要對(duì)FPGA程序進(jìn)行功能仿真和時(shí)序仿真,再對(duì)各個(gè)功能模塊分別進(jìn)行測(cè)試,確保代碼準(zhǔn)確無(wú)誤。
4.1 DDR3-SDRAM測(cè)試
利用Xilinx公司提供的ChipScope Pro工具對(duì)DDR3-SDRAM代碼進(jìn)行測(cè)試,測(cè)試過(guò)程中,由系統(tǒng)內(nèi)部產(chǎn)生遞增數(shù)寫(xiě)入到寫(xiě)數(shù)據(jù)FIFO中,然后從讀數(shù)據(jù)FIFO中讀取數(shù)據(jù),將寫(xiě)入的數(shù)據(jù)和讀出的數(shù)據(jù)通過(guò)ChipScope Pro工具抓取,再對(duì)抓取結(jié)果繪出波形并進(jìn)行比對(duì),測(cè)試結(jié)果如圖7所示。從測(cè)試結(jié)果來(lái)看,讀寫(xiě)速度快且沒(méi)有出現(xiàn)數(shù)據(jù)亂碼情況,符合系統(tǒng)要求。
4.2 HDMI接口測(cè)試
HDMI接口模塊測(cè)試結(jié)果如圖8所示,測(cè)試過(guò)程中,視頻數(shù)據(jù)源由系統(tǒng)內(nèi)部產(chǎn)生,包括三基色、棋盤(pán)格、彩色條等數(shù)據(jù),最后將串行數(shù)據(jù)發(fā)送到支持1080p分辨率的顯示器上。從測(cè)試結(jié)果來(lái)看,顯示效果符合要求。
4.3 系統(tǒng)整體測(cè)試
圖9所示為系統(tǒng)整體測(cè)試結(jié)果,測(cè)試過(guò)程中,視頻數(shù)據(jù)源為攝像頭采集的視頻數(shù)據(jù),數(shù)據(jù)經(jīng)過(guò)DDR3-SDRAM緩存,再發(fā)送到HDMI接口芯片,然后通過(guò)HDMI連接器和傳輸線將差分?jǐn)?shù)據(jù)傳輸給顯示器。從測(cè)試結(jié)果來(lái)看,如圖9(a)所示,視頻顯示清晰完整;當(dāng)攝像頭移動(dòng)時(shí),如圖9(b)所示,圖像顯示無(wú)拖影現(xiàn)象,證明通過(guò)DDR3-SDRAM高效緩存和乒乓操作結(jié)合的方式,能夠有效解決高速大容量數(shù)據(jù)的緩存問(wèn)題。
5 結(jié)論
為了滿足人們對(duì)視頻顯示質(zhì)量的需求,本系統(tǒng)設(shè)計(jì)了一種全高清視頻采集顯示系統(tǒng),系統(tǒng)以O(shè)miniVision公司的500萬(wàn)像素級(jí)別CMOS圖像傳感器OV5640為前端采集攝像頭,以Xilinx公司Spartan6系列FPGA作為主控芯片,以4 Gbit容量DDR3-SDRAM作為緩存芯片,再結(jié)合MCB硬核、MIG IP核以及乒乓操作,實(shí)現(xiàn)視頻數(shù)據(jù)的高效緩存;同時(shí)以Silion Image公司的SiI9134為HDMI芯片,能有效支持全高清視頻。系統(tǒng)能夠穩(wěn)定采集顯示全高清視頻,顯示質(zhì)量高且無(wú)拖影現(xiàn)象,該系統(tǒng)可應(yīng)用于軍用監(jiān)控系統(tǒng)、民用多媒體系統(tǒng)以及醫(yī)學(xué)等領(lǐng)域。
參考文獻(xiàn)
[1] 黃慶敏,羅鍵.HDMI接口標(biāo)準(zhǔn)及應(yīng)用設(shè)計(jì)[J].電視技術(shù),2007(2):32-34.
[2] 顧海峰,夏寧,吳杰.一種基于CH7301C的顯示接口電路設(shè)計(jì)[J].信息化研究,2012,38(6):30-34.
[3] 劉佳.數(shù)字圖像高速采集和傳輸技術(shù)的研究與實(shí)現(xiàn)[D].天津:天津大學(xué),2014.
[4] 李先友,趙曙光,段永成,等.基于FPGA的實(shí)時(shí)MIPI CSI-2圖像采集與處理系統(tǒng)[J].電子技術(shù)應(yīng)用,2019,45(1):97-100.
[5] 潘磊,葛中芹,莊建軍,等.基于FPGA的HDMI視頻流圖像處理的系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2015,34(10):76-80.
[6] 向梓豪,陸安江.基于FPGA的HDMI多模式顯示模塊設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(12):48-51.
[7] 陳一波,楊玉華,王紅亮,等.基于DDR3-SDRAM的圖像采集與顯示系統(tǒng)[J].電子器件,2017,40(3):702-707.
[8] 周浩,王浩全,任時(shí)磊.基于FPGA和NAND Flash的便攜式信號(hào)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2018,44(9):82-86.
[9] 林謀錦,林子威.DVI接口與HDMI接口的比較[J].中國(guó)有線電視,2005(6):581-582.
[10] 楊帆,張皓,馬新文,等.基于FPGA的圖像處理系統(tǒng)[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,43(2):119-123.
[11] 宋海吒,唐立軍,謝新輝.基于FPGA和OV7620的圖像采集及VGA顯示[J].電視技術(shù),2011,35(5):45-47.
[12] 李華.基于FPGA的高精度圖像采集系統(tǒng)設(shè)計(jì)[J].電子器件,2014,37(5):840-843.
[13] 潘明,陳元枝,李強(qiáng).基于FPGA的圖像采集系統(tǒng)的設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2012,31(3):58-61.
作者信息:
王少斌,蘇淑靖,袁財(cái)源
(中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)