文獻(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ā)展到全高清,,其分辨越來越高,數(shù)據(jù)量也成倍增加,,這就推進(jìn)了顯示接口技術(shù)的高速發(fā)展,,顯示接口技術(shù)經(jīng)過了一個(gè)從模擬到數(shù)字、從并行到串行,、低速到高速的發(fā)展過程[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萬像素級(jí)別CMOS攝像頭OV5640,,輸出視頻信號(hào)分辨率可達(dá)2K級(jí)別,支持多種數(shù)據(jù)格式輸出,。為了解決由于視頻數(shù)據(jù)緩存速率和容量不足導(dǎo)致的拖影問題,,該系統(tǒng)選用容量為4 Gbit的DDR3 SDRAM作為換緩存介質(zhì),通過Xilinx公司的MIG IP和對(duì)其進(jìn)行控制,,再結(jié)合乒乓操作,,能有效解決高數(shù)大容量數(shù)據(jù)的緩存問題,使顯示質(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ù)源,在其開始采集之前需要FPGA主控模塊通過SCCB(Serial Camera Control Bus)總線將攝像頭配置信息發(fā)送到攝像頭中的寄存器,;FPGA主控模塊是此系統(tǒng)的控制核心,,其控制著攝像頭、DDR3-SDRAM,、HDMI接口芯片以及視頻數(shù)據(jù)流,;數(shù)據(jù)緩存模塊以一塊4 Gbit容量的DDR3-SDRAM作為緩存介質(zhì),能有效解決高速大容量數(shù)據(jù)的緩存問題,;HDMI接口電路主要包含一塊HDMI接口芯片,,其作用是實(shí)現(xiàn)視頻數(shù)據(jù)的并串轉(zhuǎn)換;最后,,串行視頻數(shù)據(jù)通過HDMI傳輸線傳輸?shù)街С諬DMI接口的顯示器上,,就能實(shí)時(shí)顯示全高清視頻圖像。
2 主要硬件電路設(shè)計(jì)
2.1 視頻采集模塊
視頻采集模塊選用OmniVision公司OV5640攝像頭,,其為500萬像素級(jí)別CMOS圖像傳感器,,支持分辨率可達(dá)2K級(jí)別,能輸出多種圖像格式數(shù)據(jù),,且支持多種自適應(yīng)調(diào)節(jié)功能,。此CMOS圖像傳感器支持DVP和MIPI兩種數(shù)據(jù)接口,,本系統(tǒng)中選擇DVP接口。在主控模塊獲取數(shù)據(jù)之前需要通過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ù)的緩存問題,此系統(tǒng)選用Micron公司4 Gbit容量DDR3-SDRAM存儲(chǔ)芯片MT41J256M16HA-125作為緩存介質(zhì),,其與FPAG的硬件連接示意圖如圖2所示,。A0~A14為地址總線,B0~B3為Bank地址,,F(xiàn)PGA通過控制地址總線和Bank地址就能控制數(shù)據(jù)在DDR3-SDRAM中的存儲(chǔ)位置,;D0~D15為數(shù)據(jù)總線,與FPGA并行連接,;CLK-N和CLK-P為差分時(shí)鐘輸入端口,,本系統(tǒng)中設(shè)定時(shí)鐘頻率為312.5 MHz;FPGA通過列地址選擇信號(hào)(CAS),、行地址選擇信號(hào)(RAS),、寫使能信號(hào)(WE)對(duì)DDR3-SDRAM進(jìn)行讀寫控制,通過控制ODT使能片內(nèi)電阻優(yōu)化性能來防止數(shù)據(jù)線中斷反射[12],;DQS為DDR3-SDRAM與控制器之間的同步信號(hào),,其為雙向信號(hào),當(dāng)寫入數(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所示,。在芯片工作之前,需要通過I2C(SCL,、SDA)總線將寄存器信息配置到芯片里,,配置過程中頻率為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ù)后通過連接器和傳輸線將數(shù)據(jù)發(fā)送給顯示器,,最終顯示出全高清視頻。
3 控制邏輯設(shè)計(jì)
本系統(tǒng)控制邏輯設(shè)計(jì)中,,包括OV5640配置及視頻數(shù)據(jù)獲取邏輯,、DDR3-SDRAM數(shù)據(jù)存取控制邏輯,、SiI9134配置及視頻數(shù)據(jù)發(fā)送邏輯。系統(tǒng)通過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也開始進(jìn)入初始化和校驗(yàn)過程,。所有初始化工作完成后,系統(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的工作模式,,通過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)來獲取數(shù)據(jù),。場(chǎng)同步信號(hào)下降沿表示一幀數(shù)據(jù)的開始,,行同步信號(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è)端口用于寫數(shù)據(jù),,一個(gè)端口用于讀數(shù)據(jù),。其工作狀態(tài)示意圖如圖5所示,在MIG IP核的前端和后端分別加入一個(gè)寫數(shù)據(jù)FIFO和讀數(shù)據(jù)FIFO,,對(duì)于調(diào)用此緩存模塊的邏輯來說,,就相當(dāng)于一個(gè)大容量的FIFO。在MIG IP核內(nèi)部,,采用乒乓操作的方式來提高緩存效率,,在緩存的過程中,將4 Gbit容量的存儲(chǔ)區(qū)域分為N個(gè)區(qū)域,,每個(gè)區(qū)域的容量為一幀視頻數(shù)據(jù)的容量,,在寫入過程中,先將數(shù)據(jù)寫入第1區(qū)域,,第1區(qū)域?qū)憹M后開始寫下一區(qū)域(為第2區(qū)域,,寫下一區(qū)域時(shí)確保該區(qū)域數(shù)據(jù)為空),此時(shí)就可以讀取第1區(qū)域的數(shù)據(jù),,第1區(qū)域讀完再讀下一區(qū)域(為第2區(qū)域,,在讀下一區(qū)域時(shí)確保該區(qū)域數(shù)據(jù)已滿)數(shù)據(jù),依此順序循環(huán)讀寫,,完成乒乓操作,。這種緩存方式可極大提高視頻數(shù)據(jù)緩存效率,有效解決高速大容量數(shù)據(jù)的緩存問題,,一幀視頻數(shù)據(jù)連續(xù)且不會(huì)出現(xiàn)數(shù)據(jù)交叉的情況(地址不會(huì)交叉),,避免了視頻顯示的拖影現(xiàn)象。
3.3 HDMI接口控制部分
在HDMI工作之前,,需要通過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ù)的開始,,上升沿代表一幀數(shù)據(jù)的結(jié)束,當(dāng)一行數(shù)據(jù)發(fā)送完后開始發(fā)送下一行數(shù)據(jù),當(dāng)一幀數(shù)據(jù)最后一行發(fā)送完成后再發(fā)送下一幀畫面的第一行數(shù)據(jù),。以此重復(fù)循環(huán)發(fā)送數(shù)據(jù),,DE為數(shù)據(jù)有效信號(hào),高電平有效,。
4 測(cè)試結(jié)果
硬件電路電氣性能測(cè)試完成后,,開始進(jìn)行整體性能的測(cè)試,在整體性能測(cè)試之前,,還需要對(duì)FPGA程序進(jìn)行功能仿真和時(shí)序仿真,,再對(duì)各個(gè)功能模塊分別進(jìn)行測(cè)試,確保代碼準(zhǔn)確無誤,。
4.1 DDR3-SDRAM測(cè)試
利用Xilinx公司提供的ChipScope Pro工具對(duì)DDR3-SDRAM代碼進(jìn)行測(cè)試,,測(cè)試過程中,由系統(tǒng)內(nèi)部產(chǎn)生遞增數(shù)寫入到寫數(shù)據(jù)FIFO中,,然后從讀數(shù)據(jù)FIFO中讀取數(shù)據(jù),,將寫入的數(shù)據(jù)和讀出的數(shù)據(jù)通過ChipScope Pro工具抓取,再對(duì)抓取結(jié)果繪出波形并進(jìn)行比對(duì),,測(cè)試結(jié)果如圖7所示,。從測(cè)試結(jié)果來看,讀寫速度快且沒有出現(xiàn)數(shù)據(jù)亂碼情況,,符合系統(tǒng)要求,。
4.2 HDMI接口測(cè)試
HDMI接口模塊測(cè)試結(jié)果如圖8所示,測(cè)試過程中,,視頻數(shù)據(jù)源由系統(tǒng)內(nèi)部產(chǎn)生,,包括三基色、棋盤格,、彩色條等數(shù)據(jù),,最后將串行數(shù)據(jù)發(fā)送到支持1080p分辨率的顯示器上。從測(cè)試結(jié)果來看,,顯示效果符合要求,。
4.3 系統(tǒng)整體測(cè)試
圖9所示為系統(tǒng)整體測(cè)試結(jié)果,測(cè)試過程中,,視頻數(shù)據(jù)源為攝像頭采集的視頻數(shù)據(jù),,數(shù)據(jù)經(jīng)過DDR3-SDRAM緩存,再發(fā)送到HDMI接口芯片,,然后通過HDMI連接器和傳輸線將差分?jǐn)?shù)據(jù)傳輸給顯示器,。從測(cè)試結(jié)果來看,如圖9(a)所示,,視頻顯示清晰完整,;當(dāng)攝像頭移動(dòng)時(shí),,如圖9(b)所示,圖像顯示無拖影現(xiàn)象,,證明通過DDR3-SDRAM高效緩存和乒乓操作結(jié)合的方式,,能夠有效解決高速大容量數(shù)據(jù)的緩存問題。
5 結(jié)論
為了滿足人們對(duì)視頻顯示質(zhì)量的需求,,本系統(tǒng)設(shè)計(jì)了一種全高清視頻采集顯示系統(tǒng),,系統(tǒng)以O(shè)miniVision公司的500萬像素級(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ì)量高且無拖影現(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)