陳一波,楊玉華*,王紅亮,邸麗霞,彭晴晴,王朝杰
(1.中北大學(xué)電子測試技術(shù)重點實驗室,太原 030051;2.北方自動控制技術(shù)研究所,太原 030006)
基于DDR3-SDRAM的圖像采集與顯示系統(tǒng)*
陳一波1,楊玉華1*,王紅亮1,邸麗霞2,彭晴晴2,王朝杰1
(1.中北大學(xué)電子測試技術(shù)重點實驗室,太原 030051;2.北方自動控制技術(shù)研究所,太原 030006)
為了改善運動目標(biāo)拖影現(xiàn)象和滿足高分辨率實時圖像顯示的要求,設(shè)計了一種基于DDR3-SDRAM的圖像采集系統(tǒng)。系統(tǒng)以FPGA為控制核心,前端采用500萬級攝像頭OV5640完成圖像采集,利用單顆粒DDR3-SDRAM通過分區(qū)緩存以及乒乓操作實現(xiàn)數(shù)據(jù)高效緩存。實驗結(jié)果表明單顆粒DDR3-SDRAM通過合理分區(qū)以及乒乓操作可以有效提高緩存效率,極大程度上改善了緩存速率不足導(dǎo)致的運動目標(biāo)拖影現(xiàn)象,實現(xiàn)了高分辨率實時圖像顯示的要求。
DDR3-SDRAM;圖像采集;DVI接口;乒乓操作
圖像數(shù)字化處理廣泛應(yīng)用于航天、軍事、醫(yī)學(xué)和農(nóng)業(yè)等領(lǐng)域,而圖像采集系統(tǒng)是圖像數(shù)字化處理的基礎(chǔ)[1]。隨著設(shè)備小型化的需求越來越高,采用多顆粒DDR3-SDRAM擴(kuò)展緩存容量不僅占用大量板上空間,而且多顆粒DDR3-SDRAM布線處理復(fù)雜。采用單顆粒DDR3-SDRAM緩存模式可以降低布板難度,縮短布板周期,提高系統(tǒng)可靠性,但是單顆粒設(shè)計很難保證較高的緩存速率。為此本系統(tǒng)采用單顆粒DDR3-SDRAM分區(qū)緩存,降低運動目標(biāo)圖像拖影現(xiàn)象發(fā)生概率。
圖像采集與顯示系統(tǒng)設(shè)計框圖如圖1所示。系統(tǒng)主要由FPGA控制模塊、圖像采集模塊、DDR3-SDRAM數(shù)據(jù)緩存電路、DVI實時顯示電路組成。
系統(tǒng)工作過程為:FPGA通過SCCB(Serial Cammera Control Bus)總線將配置信息發(fā)送至OV5640 攝像頭,控制攝像頭開始進(jìn)行圖像采集并通過數(shù)據(jù)接口將數(shù)據(jù)傳至FPGA;在FPGA內(nèi)部將DDR3-SDRAM存儲空間分配為4個區(qū)域,圖像數(shù)據(jù)在4個區(qū)域間進(jìn)行乒乓操作,最終將攝像頭采集到的數(shù)據(jù)通過DVI接口輸送至顯示器顯示。
1.1 圖像采集模塊
圖像采集模塊采用了OmniVision公司的500萬像素級CMOS芯片圖像傳感器OV5640。OV5640 CMOS傳感器支持DVP和MIPI兩種數(shù)據(jù)接口,本系統(tǒng)中設(shè)計采用DVP接口。通過SCCB總線配置圖像采集模塊圖像色彩模式為RGB565、采樣頻率為30 frame/s、分辨率為1 280 pixel×960 pixel的色彩視頻圖像[2]。
圖1 圖像采集與顯示系統(tǒng)設(shè)計框圖
圖2 DDR3-SDRAM和FPGA硬件連接示意圖
1.2 DDR3-SDRAM數(shù)據(jù)緩存電路
本系統(tǒng)設(shè)計中DDR3-SDRAM采用MT41J64M16芯片作為圖像的緩存介質(zhì),DDR3-SDRAM和FPGA之間的連接數(shù)據(jù)寬度為16位,DDR3-SDRAM和FPGA的硬件連接示意圖如圖2所示。其中,A0~A14為地址總線,BA2~BA0為Bank地址,DQ0~DQ15為數(shù)據(jù)總線,DDR3_CLK_P和DDR3_CLK_N為DDR3-SDRAM的差分時鐘輸入,其頻率為200 MHz;FPGA對DDR3的控制主要通過列地址選擇信號(CASA)、行地址選擇信號(RAS)、寫使能信號(WE)實現(xiàn)。此外為了防止數(shù)據(jù)線終端反射,通過FPGA控制ODT使能片內(nèi)電阻優(yōu)化性能。
Spartan-6 FPGA中只有Bank1和Bank3內(nèi)包含MCB硬核,FPGA和DDR3之間16 bit數(shù)據(jù)并行行連接,DDR3-SDRAM工作一次能夠傳輸16位數(shù)據(jù),FPGA直接控制Bank地址和15位行地址控制數(shù)據(jù)在DDR3-SDRAM中的存儲位置。
1.3 DVI接口模塊
傳統(tǒng)VGA接口基于模擬視頻信號在高分辨率條件下延時明顯[3],而DVI是基于最小化傳輸差分信號TMDS(Transition Minimized Differential Signaling)的數(shù)字信號傳輸技術(shù)[4],較上一代VGA接口支持高清及更高分辨率的視頻信號。Chrontel公司的CH7301C,CH7301C的DVI發(fā)送器可達(dá)165 MHz,最高能支持分辨率1 600 pixel×1 200 pixel,可以滿足高分辨率圖像顯示[5]。因此選擇DVI接口電路,以滿足高分辨率實時圖像顯示的要求。本系統(tǒng)設(shè)計中采用CH7301C芯片實現(xiàn)DVI接口,FPGA與CH7301C接口芯片通過IIC總線配置寄存器,通過12位并行數(shù)據(jù)線發(fā)送圖像數(shù)據(jù),利用數(shù)據(jù)使能信號、行同步信號場、同步信號實現(xiàn)圖像輸出。經(jīng)過CH7301C芯片編碼,數(shù)據(jù)信號以差分信號形式傳輸?shù)斤@示屏。CH7301C接口電路數(shù)據(jù)速率快,設(shè)計不合理可能導(dǎo)致圖像顯示不穩(wěn)定,本系統(tǒng)DVI接口電路設(shè)計如圖3所示,其中:
(1)12bit數(shù)據(jù)線和Hysnc、Vysnc、DE串聯(lián)47.5 kΩ的電阻實現(xiàn)阻抗匹配;
(2)CH7301C輸入時鐘差分對間連接100Ω的電阻實現(xiàn)差模信號匹配;
(3)為了達(dá)到最佳顯示效果,設(shè)計五階濾波電路對CH7301C輸出的R、G、B進(jìn)行濾波,利用二階濾波對Hsync、Vsync濾波,防止DVI接口插拔時靜電擊穿,設(shè)計一個BAS40電路如圖4所示。
圖3 DVI接口電路
圖4 濾波電路
數(shù)字邏輯設(shè)計中,主要包括DDR3-SDRAM讀寫控制部分,圖像采集控制部分,以及DVI接口控制部分。系統(tǒng)通過DVP接口接收圖像數(shù)據(jù),控制圖像數(shù)據(jù)按照DDR3-SARAM寫時序?qū)懭隓DR3-SDRAM中;將DDR3-SDRAM中數(shù)據(jù)讀出,數(shù)據(jù)發(fā)送至DVI控制部分將圖像顯示到顯示屏。
系統(tǒng)工作流程如圖5所示。上電后系統(tǒng)復(fù)位,系統(tǒng)各模塊初始化,DDR3初始化完成以后,攝像頭開始工作。FPGA開始接收攝像頭數(shù)據(jù),設(shè)置DDR3起始寫地址,這里為了完成實現(xiàn)高速緩存將DDR3寫地址均分為4個部分,然后判斷區(qū)域滿信號p0_wr_full是否為高電平,為低電平則該區(qū)域可以寫將圖像數(shù)據(jù)寫入當(dāng)前區(qū)域,若為高則重新設(shè)置DDR3起始地址。然后控制器開始向DDR3-SDRAM發(fā)送寫命令、寫地址以及寫數(shù)據(jù)操作。在寫地址達(dá)到當(dāng)前區(qū)域最大值后認(rèn)為該區(qū)域?qū)憹M將p0_wr_full信號拉高,立即設(shè)置新的DDR3起始寫地址,DDR3開始寫入新的區(qū)域,此時如果DVI接口初始化完成則開始在讀上一塊區(qū)域的圖像數(shù)據(jù),將數(shù)據(jù)經(jīng)過DVI接口發(fā)送到顯示屏上。
圖5 系統(tǒng)工作流程
2.1 DDR3-SDRAM讀寫控制部分
DDR3-SDRAM讀寫控制采用了Xilinx公司提供的MIG IP核,MIG IP核主要通過Spartan6 FPGA芯片中的MCB硬核與外部SDRAM芯片完成數(shù)據(jù)緩存[6]。利用Xilinx編譯環(huán)境ISE生成DDR3控制器,按照MIG IP核用戶接口時序控制DDR3讀寫[7]。這里為了實現(xiàn)高效數(shù)據(jù)緩存,將DDR3存儲芯片均分為4個250 Mbit的域,這樣對應(yīng)地址為0~9999999,10000000~19999999,20000000~29999999,30000000~39999999。在執(zhí)行乒乓操作時首先寫入第1區(qū)域,第1區(qū)域?qū)憹M后開始讀第1區(qū)域同時開始寫第2區(qū)域,依次按順序讀寫,這樣DDR3控制器的讀地址和寫地址不會重疊,組成乒乓結(jié)構(gòu),完成乒乓操作[8]。這樣可以極大提高緩存效率,讀取的圖像數(shù)據(jù)不會交叉,有效解決運動圖像變化時的拖影現(xiàn)象。DDR3執(zhí)行乒乓操作的讀寫工作狀態(tài)如圖6所示。
圖6 DDR3工作狀態(tài)示意圖
2.2 圖像采集控制部分
OV5640攝像頭有上電時序要求,所以首先編寫程序以滿足上電時序。完成初始化后通過SCCB總線配置OV5640內(nèi)部功能寄存器,以確定OV5640工作模式。寄存器配置完成以后且DDR3-SDRAM初始化完成后,按照DVP接口時序開始采集數(shù)據(jù),圖像采集要控制OV5640的VSYNC(場同步信號)、HREF(列同步信號)和PCLK(像素同步信號)。VSYNC下降沿表示OV5640開始輸出一幀圖像,VSYNC為低時HREF出現(xiàn)960次高電平,表示960個列數(shù)據(jù);每次高電平持續(xù)1 280個PCLK周期,表示1 280個行數(shù)據(jù),即輸出圖像為1 280 pixel×960 pixel。RGB565格式顏色需要16 bit數(shù)據(jù)表示一個像素,但是DVP接口每次輸出8 bit數(shù)據(jù),因此按照攝頭輸出時鐘每采集兩次數(shù)據(jù)組成一個像素。由于DDR3控制器接口是64 bit,為了最大程度減少延遲,每采集到4個像素產(chǎn)生一次DDR3寫請求。
2.3 DVI接口部分
FPGA通過IIC總線配置CH7301C芯片寄存器,寄存器配置完成后輸出初始化完成信號,開始接收圖像數(shù)據(jù),為了實現(xiàn)與OV5640無縫連接,通過配置CH7301C寄存器將數(shù)據(jù)格式配置為RGB565,分辨率為1 280 pixel×960 pixel,輸出幀頻率為30 frame/s。
DVI接口配置完成后需要按照時序?qū)?shù)據(jù)發(fā)送到顯示屏具體時序如圖7所示,行同步信號上升沿到來時表明一幀圖像一行開始,下降沿到來時表明行結(jié)束。顯示一行的時間為Ts,但是只有Tq為有效時間。由于 都是按照從左到右的順序,完成一行掃描后,掃描點迅速返回左側(cè),重新開始掃描下一行,在開始下一行時要重新對準(zhǔn)新的起始位置。因此一行開始掃描時,開始顯示前沿行消影Ta,之后為有效像素數(shù)據(jù),在一行最后一個像素傳輸后,進(jìn)入顯示后沿行消影Tb,之后行同步開始下一行掃描。Ta和
Tb為行消影時間,不顯示圖像,To為同步時間。場掃描和行掃描相同。
圖7 DVI接口圖像控制時序
程序編譯完成后用Chipscope抓取數(shù)據(jù),如圖8和圖9所示。由圖8可知行計數(shù)達(dá)到1 280時列計數(shù)加一,由圖9可知所示列計數(shù)達(dá)到960時列計數(shù)清零幀計數(shù)加一完成一幀數(shù)據(jù)采集,說明OV5640采集到的圖像每幀分辨率達(dá)到了1 280×960。圖10所示為采集的毫秒級計時器圖像通過DVI接口實時顯示在顯示屏上的圖像,圖10所示的兩幀圖像間隔時間為1 ms,分辨率為1 280 pixel×960 pixel,圖像清晰完整沒有明顯拖影,證明單片DDR3-SDRAM通過分區(qū)緩存和乒乓操作結(jié)合的方式可以提高存儲效率,有效緩解拖影現(xiàn)象。
圖8 Chipscope抓取行計數(shù)
圖9 Chipscope抓取幀計數(shù)
圖10 顯示屏顯示采集結(jié)果
設(shè)計的圖像采集與顯示系統(tǒng)以Xilinx公司的Spartan-6 FPGA核心,利用OmniVision公司的500萬級OV5640攝像頭采集圖像,通過對單片DDR3-SDRAM分區(qū)存儲并結(jié)合乒乓操作實現(xiàn)了高速圖像數(shù)據(jù)采集,對運動目標(biāo)采集也沒有出現(xiàn)拖影現(xiàn)象,并實現(xiàn)了高分辨率實時顯示的要求。
該設(shè)計利用單顆粒DDR3-SDRAM在保證內(nèi)存訪問速度不降低的前提下,降低了開發(fā)成本,節(jié)省了板上空間,經(jīng)長期測試沒有出現(xiàn)丟幀現(xiàn)象。目前該系統(tǒng)已成功應(yīng)用于光電特征標(biāo)識用大功率窄帶輸出變頻調(diào)制MEMS紅外光源儀表設(shè)備自動檢測系統(tǒng)中。在航天、軍事、醫(yī)學(xué)和農(nóng)業(yè)等領(lǐng)域的數(shù)字化圖像處理的方面也具有廣泛的應(yīng)用前景。
[1] 宋海吒,唐立軍,謝新輝. 基于FPGA和OV7620的圖像采集及VGA顯示[J]. 電視技術(shù),2011(5):45-47.
[2] 李華. 基于FPGA的高精度圖像采集系統(tǒng)設(shè)計[J]. 電子器件,2014,37(5):840-843.
[3] 陸華奇. 平板電視控制板構(gòu)架研究與OSD實現(xiàn)[D]. 青島:青島大學(xué),2006.
[4] 汪能棟,趙玉婷,曹峰,等. 雙鏈路DVI在航電顯控系統(tǒng)中的應(yīng)用研究[J]. 電子技術(shù)應(yīng)用,2014(10):52-54.
[5] 顧海峰,夏寧,吳杰. 一種基于CH7301C的顯示接口電路設(shè)計[J]. 信息化研究,2012(38):30-34.
[6] 張宇嘉,楊曉非,姚行中. 基于AXI4的衛(wèi)星接收機(jī)DDR3多端口存儲的設(shè)計[J]. 電子器件,2016,39(3):617-622.
[7] 徐文波,田耘. Xilinx FPGA開發(fā)實用教程[M]. 北京:清華大學(xué)出版社,2012:59-60.
[8] 賈建超.基于FPGA的多通道高速傳輸鏈路的實現(xiàn)[D]. 西安:西安電子科技大學(xué),2014.
Image Acquisition and Display System Based on DDR3-SDRAM*
CHENYibo1,YANGYuhua1*,WANGHongliang1,DiLixia2,PengQingqing2,WANGChaojie1
(1.Key Laboratory of Instrumentation Science and Dynamic Measurement North University of China,Taiyuan 030051,China;2.North Automatic Control Technology Institute,Taiyuan 030006,China)
In order to refine the moving target ghosting phenomenon and meet the requirements of high-resolution real-time image display,a kind of image acquisition system is designed based on DDR3-SDRAM. System with FPGA as control core,in the front end with the help of image acquisition of camera OV5640,uses the single particle DDR3 SDRAM-through the partition and ping-pong operation to realizes efficient data cache. The experimental results show that the single particle DDR3-SDRAM by reasonable partition and ping-pong operation can effectively improve the efficiency of cache,largely improve moving target ghosting phenoenon caused by inadequate cache rate,and realize the request of the high-resolution real-time image display.
DDR3-SDRAM;Image Acquisition;DVI Interface;Ping-pong Operation
項目來源:國家自然科學(xué)基金面上項目(51475437)
2016-05-08 修改日期:2016-07-07
TN95
A
1005-9490(2017)03-0702-06
C:6140
10.3969/j.issn.1005-9490.2017.03.037