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