《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 高速CMOS圖像存儲(chǔ)與實(shí)時(shí)顯示系統(tǒng)設(shè)計(jì)
高速CMOS圖像存儲(chǔ)與實(shí)時(shí)顯示系統(tǒng)設(shè)計(jì)
2017年電子技術(shù)應(yīng)用第6期
馬 林1,2,李錦明1,2,張虎威1,2,侯天喜1,2,降 帥1,2
1.中北大學(xué) 電子測(cè)試國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051; 2.中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051
摘要: 針對(duì)遙測(cè)系統(tǒng)圖像單元存在數(shù)據(jù)量大、速度快、無(wú)法直接存儲(chǔ)顯示等問(wèn)題,設(shè)計(jì)了一種高速圖像存儲(chǔ)與實(shí)時(shí)顯示系統(tǒng)。系統(tǒng)以Spartan 6系列現(xiàn)場(chǎng)可編程門陣列(FPGA)作為核心處理器,使用Full模式Camera Link接口采集CMOS相機(jī)輸出的圖像數(shù)據(jù),利用DDR3乒乓緩存技術(shù)將圖像數(shù)據(jù)寫入由SATA控制器組成的磁盤陣列中,并且通過(guò)千兆以太網(wǎng)接口將處理后的數(shù)據(jù)上傳至計(jì)算機(jī);圖像數(shù)據(jù)采用抽幀以及降低分辨率的形式,將其轉(zhuǎn)換為1 024×768像素的VGA分辨率格式,最后通過(guò)VGA接口對(duì)圖像進(jìn)行實(shí)時(shí)顯示。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠?qū)Ψ直媛蕿? 048×2 048像素、幀頻為150 f/s的高速圖像數(shù)據(jù)進(jìn)行長(zhǎng)時(shí)間存儲(chǔ)與實(shí)時(shí)顯示。
中圖分類號(hào): TN919.5
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.002
中文引用格式: 馬林,李錦明,張虎威,等. 高速CMOS圖像存儲(chǔ)與實(shí)時(shí)顯示系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2017,43(6):7-10,14.
英文引用格式: Ma Lin,Li Jinming,Zhang Huwei,et al. Design of high-speed CMOS image storage and real-time display system[J].Application of Electronic Technique,2017,43(6):7-10,14.
Design of high-speed CMOS image storage and real-time display system
Ma Lin1,2,Li Jinming1,2,Zhang Huwei1,2,Hou Tianxi1,2,Jiang Shuai1,2
1.National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China; 2.Key Laboratory of Instrumentation Science & Dynamic Measurement of Ministry of Education, North University of China,Taiyuan 030051,China
Abstract: A high-speed image storage and real-time display system is designed for telemetry system of aiming at the problems of large data volume, high-speed and inability to store display directly. The system takes the Spartan 6 series FPGA as the core processor, and uses the full mode Camera Link interface to gather the image data of CMOS camera output. The system of possessing high-speed image storage and real-time display uses technology of DDR3 Ping-Pong cache to write image data into a disk array consisting of SATA controllers as well as through Gigabit Ethernet interface upload to computer after analysis and processing. Image data is converted to the VGA resolution format of the 1 024×768 pixels in the form of pumping frames and reducing resolution. Finally the system conduct the image real-time display through the VGA interface. What the experimental results show that the system can store and display the high-speed image data with 2 048×2 048 pixels and frame frequency with 150 f/s resolution.
Key words : CMOS camera;FPGA;disk array;Gigabit Ethernet

0 引言

    在航空航天圖像監(jiān)測(cè)領(lǐng)域,高分辨率、高幀頻的工業(yè)相機(jī)有著廣泛的應(yīng)用,它可以有效捕捉高速飛行器的飛行姿態(tài),最終通過(guò)計(jì)算機(jī)對(duì)圖像進(jìn)行分析與處理,提取出其運(yùn)行速度、加速度等重要參數(shù)[1]。隨著工業(yè)相機(jī)分辨率以及幀頻的不斷提高,對(duì)圖像存儲(chǔ)系統(tǒng)的要求也越來(lái)越高,特別是在載人航天測(cè)試領(lǐng)域,存儲(chǔ)系統(tǒng)必須能夠應(yīng)對(duì)復(fù)雜的工況環(huán)境。傳統(tǒng)的Nand Flash以及機(jī)械硬盤等存儲(chǔ)介質(zhì)存在容量小、操作復(fù)雜以及抗干擾能力差等缺點(diǎn),而SSD固態(tài)硬盤憑借其容量大、速度快、環(huán)境特性好等特點(diǎn),在科研、航空航天以及軍事測(cè)試等領(lǐng)域,有廣闊的應(yīng)用前景。

    現(xiàn)階段,主要使用傳統(tǒng)的Flash對(duì)圖像數(shù)據(jù)進(jìn)行采集。文獻(xiàn)[2]和[3]采用Flash陣列進(jìn)行數(shù)據(jù)的存儲(chǔ),雖然在一定程度上提高了讀寫速度,但是存在接口操作復(fù)雜、穩(wěn)定性差等缺點(diǎn)。文獻(xiàn)[4]使用圖像采集卡進(jìn)行圖像數(shù)據(jù)的實(shí)時(shí)顯示,增加了系統(tǒng)的體積與復(fù)雜度,而且圖像的分辨率不高。本文通過(guò)采用FPGA對(duì)系統(tǒng)功能進(jìn)行開發(fā),利用4塊SSD固態(tài)硬盤構(gòu)成存儲(chǔ)陣列對(duì)高速圖像進(jìn)行存儲(chǔ),可以在飛行器回收后讀取原始圖像數(shù)據(jù),同時(shí)以抽幀并降低分辨率的形式對(duì)圖像數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示,以減小遙測(cè)數(shù)據(jù)回傳時(shí)的帶寬占用,實(shí)現(xiàn)了圖像數(shù)據(jù)的大容量高速存儲(chǔ)與實(shí)時(shí)顯示,并且具有可移植性。

1 系統(tǒng)總體設(shè)計(jì)

    系統(tǒng)設(shè)計(jì)總體框圖如圖1所示。系統(tǒng)選用Point Grey公司生產(chǎn)的GZL-CL-41C6型號(hào)高速灰度相機(jī),通過(guò)Camera Link接口發(fā)送圖像數(shù)據(jù)和同步信號(hào),串口接收相機(jī)控制命令,圖像分辨率為2 048×2 048像素,幀頻為150 f/s,像素格式為8 bit[5]。由于相機(jī)產(chǎn)生的數(shù)據(jù)量約為600 MB/s,而SATA2.0接口的單塊固態(tài)硬盤的寫入速度約為180 MB/s[6],所以使用4塊固態(tài)硬盤構(gòu)成RAID0陣列進(jìn)行存儲(chǔ)。系統(tǒng)采集工業(yè)相機(jī)輸出的高速圖像數(shù)據(jù),并將數(shù)據(jù)發(fā)送到FPGA后分成兩路,一路經(jīng)過(guò)DDR3緩存后,并行存入固態(tài)硬盤整列中;另一路經(jīng)過(guò)格式轉(zhuǎn)換后存入DDR3緩存中,然后通過(guò)VGA接口實(shí)時(shí)顯示圖像數(shù)據(jù)。

htdz2-t1.gif

2 系統(tǒng)硬件電路設(shè)計(jì)

2.1 圖像采集模塊

    系統(tǒng)前端工業(yè)相機(jī)使用了8-tap模式輸出像素?cái)?shù)據(jù),即一次輸出8個(gè)像素?cái)?shù)據(jù),所以使用Full模式Camera Link接口電路。在Full模式下,Camera Link接口使用兩個(gè)連接器,需要使用3個(gè)數(shù)據(jù)接口芯片、一個(gè)相機(jī)控制芯片和一個(gè)串行通信芯片。通過(guò)接口芯片將Camera Link電纜所傳輸?shù)腖VDS差分信號(hào)轉(zhuǎn)換為FPGA可以直接進(jìn)行處理的TTL電平信號(hào)。

    相機(jī)與FPGA連接示意圖如圖2所示。系統(tǒng)選用TI公司生產(chǎn)的DS90CR288A作為數(shù)據(jù)接收芯片,DS90LV-047ATM為控制芯片,DS90LV019TM為串行通信芯片。其中,D0~D23為數(shù)據(jù)信號(hào),F(xiàn)VAL、LVAL、DVAL為同步信號(hào),CC1~CC4為相機(jī)控制信號(hào),SerTC與SerTFG為串行通信信號(hào)。

htdz2-t2.gif

2.2 VGA驅(qū)動(dòng)電路

    FPGA的輸出為3.3 V的電平信號(hào),而VGA接口要求的輸入信號(hào)為0~0.714 V的模擬信號(hào),所以為了滿足VGA顯示要求,必須對(duì)FPGA的輸出信號(hào)進(jìn)行D/A轉(zhuǎn)換,以實(shí)現(xiàn)0~0.714 V的模擬信號(hào)輸入[7]。系統(tǒng)選用ADI公司生產(chǎn)的視頻轉(zhuǎn)換芯片ADV7123實(shí)現(xiàn)VGA驅(qū)動(dòng),由于相機(jī)輸出的圖像數(shù)據(jù)為灰度圖像,所以將R、G、B三個(gè)通道中的任意一個(gè)與FPGA相連,并且將其他兩路接地。本設(shè)計(jì)將FPGA輸出與紅色輸入端口相連,并將未使用的綠色和藍(lán)色模擬信號(hào)連接37.5 Ω終端電阻。

2.3 千兆以太網(wǎng)接口電路

    系統(tǒng)使用了Realtek公司生產(chǎn)的以太網(wǎng)收發(fā)器RTL8211EG實(shí)現(xiàn)千兆以太網(wǎng)數(shù)據(jù)傳輸。鏈路層、傳輸層以及網(wǎng)絡(luò)層使用UDP/IP協(xié)議,由FPGA實(shí)現(xiàn)。RTL8211EG與FPGA的電路連接示意圖如圖3所示,RTL8211EG通過(guò)GMII接口與FPGA進(jìn)行連接,主要用來(lái)連接以太網(wǎng)的MAC層和PHY層。當(dāng)使用千兆以太網(wǎng)進(jìn)行數(shù)據(jù)傳輸時(shí),接口時(shí)鐘為125 MHz。其中,接收時(shí)鐘由RTL8211EG的E_RXC提供;發(fā)送時(shí)鐘由FPGA的E_GTXC提供,接收與發(fā)送數(shù)據(jù)均在時(shí)鐘上升沿進(jìn)行采樣。

htdz2-t3.gif

3 系統(tǒng)軟件設(shè)計(jì)與仿真

3.1 圖像實(shí)時(shí)顯示模塊

    系統(tǒng)相機(jī)輸出的圖像分辨率為2 048×2 048像素、150 f/s幀頻的圖像,無(wú)論是分辨率還是幀頻都超過(guò)了通用VGA接口顯示器的顯示格式,所以可以采取抽幀并降低分辨率的方式對(duì)圖像進(jìn)行顯示。

3.1.1 圖像壓縮單元設(shè)計(jì)

    系統(tǒng)對(duì)原始分辨率為2 048×2 048像素的圖像進(jìn)行如圖4所示的縮小,將3×3范圍內(nèi)的9個(gè)像素?cái)?shù)據(jù)合成為1個(gè)像素?cái)?shù)據(jù),最終得到分辨率為682×682像素格式的圖像。為了降低噪聲信號(hào)在圖像中的影響,使用了對(duì)9個(gè)像素?cái)?shù)據(jù)取中值的方式進(jìn)行合成。

htdz2-t4.gif

    在FPGA程序設(shè)計(jì)中,使用了9個(gè)FIFO對(duì)算法進(jìn)行實(shí)現(xiàn),實(shí)現(xiàn)方法如圖5所示。每個(gè)FIFO的大小為1 024×8 bit,通過(guò)9個(gè)FIFO對(duì)3行像素?cái)?shù)據(jù)進(jìn)行緩存。其中,首先用FIFO1、FIFO2、FIFO3分別存儲(chǔ)第一行的第1、2、3個(gè)數(shù)據(jù),緊接著再存儲(chǔ)第一行的第4、5、6個(gè)數(shù)據(jù),直到第一行存儲(chǔ)完畢;之后使用FIFO4、FIFO5、FIFO6以相同的方式緩存第二行數(shù)據(jù),F(xiàn)IFO7、FIFO8、FIFO9緩存第三行數(shù)據(jù)。前三行數(shù)據(jù)緩存完之后,再使用另外9個(gè)FIFO存儲(chǔ)第4、5、6行數(shù)據(jù),與第一組FIFO構(gòu)成乒乓緩存結(jié)構(gòu)。這樣,每一組FIFO可以在一個(gè)周期讀出需要處理的9個(gè)像素?cái)?shù)據(jù),并對(duì)這9個(gè)數(shù)據(jù)提取中值。

htdz2-t5.gif

    對(duì)于N為奇數(shù)的中值運(yùn)算,若N為9,則需要比較的次數(shù)為36次,結(jié)合FPGA并行處理的優(yōu)勢(shì),同時(shí)使用36個(gè)比較器,可以達(dá)到最大處理速度[8]。此外,VGA顯示器分辨率為1 024×768像素,而經(jīng)過(guò)處理后的圖像分辨率為682×682像素,所以圖像應(yīng)在顯示器中央顯示,在進(jìn)行VGA驅(qū)動(dòng)顯示時(shí),可以將其他像素補(bǔ)0,即黑色圖像。

3.1.2 抽幀緩存模塊

    由于相機(jī)輸出圖像的幀頻為150 f/s,而常用VGA分辨率格式的幀頻一般都在75 Hz以下,為了匹配VGA接口分辨率,對(duì)相機(jī)圖像進(jìn)行抽幀緩存處理,每?jī)蓭槿∫粠来未嫒雰善珼DR3中,最終以1 024×768@75格式的VGA分辨率進(jìn)行顯示。

    抽幀顯示時(shí)序圖如圖6所示。將相機(jī)幀同步信號(hào)FVAL進(jìn)行4分頻,得到抽幀控制信號(hào)F_Control,再生成一個(gè)以F_Control的邊沿為復(fù)位信號(hào)的FVAL上升沿計(jì)數(shù)器CNT。當(dāng)F_Control為低電平時(shí),將CNT為1的幀圖像存入緩存1;當(dāng)F_Control為高電平時(shí),將CNT為1的幀圖像存入緩存2。讀緩存與寫緩存正好相反,在F_Control為低電平時(shí)讀取緩存2中的數(shù)據(jù);在F_Control為高電平時(shí)讀取緩存1中的數(shù)據(jù)。

htdz2-t6.gif

    在程序設(shè)計(jì)時(shí),對(duì)圖像分辨率、圖像縮放因子、圖像幀頻、抽幀系數(shù)等關(guān)鍵參數(shù)使用Verilog HDL語(yǔ)言中的`define語(yǔ)法進(jìn)行宏定義,實(shí)現(xiàn)任意分辨率和幀頻的圖像格式轉(zhuǎn)換,以便相機(jī)和顯示器型號(hào)的改變以及系統(tǒng)移植。

3.2 圖像存儲(chǔ)模塊

    系統(tǒng)以Spartan6-T系列FPGA中的GTP高速串行收發(fā)器為基礎(chǔ),實(shí)現(xiàn)SATA2.0控制器的物理層,并使用Verilog HDL語(yǔ)言實(shí)現(xiàn)鏈路層、傳輸層以及命令層的開發(fā),最終實(shí)現(xiàn)SATA2.0協(xié)議的DMA傳輸。

    在進(jìn)行圖像存儲(chǔ)時(shí),首先將圖像采集模塊采集到的數(shù)據(jù)先通過(guò)異步FIFO進(jìn)行位寬轉(zhuǎn)換,系統(tǒng)使用FPGA中的MCB(Memory Controller Block)硬核來(lái)控制DDR3存儲(chǔ)器,為了最大化帶寬,其用戶端口位寬選擇為128 bit,所以需要把Camera Link接口64 bit位寬的數(shù)據(jù)轉(zhuǎn)換為128 bit位寬數(shù)據(jù),再把數(shù)據(jù)輸入數(shù)據(jù)分配模塊。數(shù)據(jù)分配模塊流程如圖7所示。系統(tǒng)使用的DDR3存儲(chǔ)器型號(hào)為MT41J256M16,容量為512 MB,將其分為上、下半頁(yè),數(shù)據(jù)以256 MB為單位按照流水線方式依次存入兩片DDR3之中。

htdz2-t7.gif

    系統(tǒng)使用的SATA控制器的尋址方式為邏輯塊尋址,每個(gè)邏輯塊的大小為512 B。為了最大化利用存儲(chǔ)帶寬,使用突發(fā)讀寫模式,其中寫突發(fā)讀寫控制端口cmd_bl的位寬為18 bit,最大讀寫深度為262 144,一次可以讀寫262 144×512 B,即128 MB的數(shù)據(jù)。硬盤存儲(chǔ)數(shù)據(jù)分配流程圖如圖8所示,以128 MB為單位將DDR存儲(chǔ)器每半頁(yè)再次分塊,SATA控制器0~SATA控制器4分別按照命令讀取DDR3_0和DDR3_1中的數(shù)據(jù),并以流水線的方式存入固態(tài)硬盤中。

htdz2-t8.gif

4 系統(tǒng)測(cè)試

    為了驗(yàn)證系統(tǒng)功能的正確性,對(duì)系統(tǒng)存儲(chǔ)模塊以及顯示模塊分別進(jìn)行了測(cè)試。使用三星公司的750 EVO固態(tài)硬盤進(jìn)行測(cè)試,在SATA控制器數(shù)據(jù)端口插入觸發(fā)信號(hào),當(dāng)控制器讀取或?qū)懭胗脖P數(shù)據(jù)時(shí),記錄數(shù)據(jù)流量及時(shí)間,當(dāng)計(jì)滿1GB的數(shù)據(jù)后,計(jì)算讀寫速度,同時(shí)對(duì)計(jì)數(shù)器清零,之后將速度信息通過(guò)串口模塊發(fā)送到上位機(jī)。系統(tǒng)存儲(chǔ)模塊讀寫速度測(cè)試如圖9、圖10所示。

htdz2-t9.gif

htdz2-t10.gif

    通過(guò)Camera Link串行通信芯片發(fā)送命令,將相機(jī)圖像設(shè)定為測(cè)試圖像。相機(jī)測(cè)試圖像在同一行中灰度值逐漸遞減,可以清晰地反映圖像數(shù)據(jù)的傳輸過(guò)程,并且可以根據(jù)每一個(gè)像素的相鄰數(shù)據(jù)判斷圖像傳輸是否發(fā)生錯(cuò)誤。通過(guò)上位機(jī)回讀顯示的圖像與實(shí)時(shí)顯示的圖像均顯示良好,沒(méi)有發(fā)生像素缺損和錯(cuò)位現(xiàn)象。

5 結(jié)束語(yǔ)

    本文設(shè)計(jì)了一種高速CMOS圖像存儲(chǔ)與實(shí)時(shí)顯示系統(tǒng),主要包括系統(tǒng)圖像接口模塊、VGA驅(qū)動(dòng)電路以及圖像回讀模塊等硬件電路,同時(shí)對(duì)圖像顯示模塊及存儲(chǔ)模塊的軟件進(jìn)行設(shè)計(jì)。經(jīng)過(guò)讀寫速度測(cè)試以及圖像顯示測(cè)試,表明該系統(tǒng)可以對(duì)分辨率為2 048×2 048像素、幀頻為150 f/s的高速圖像進(jìn)行存儲(chǔ)與實(shí)時(shí)顯示,具有較高的可移植性以及實(shí)用價(jià)值。

參考文獻(xiàn)

[1] 韓帥.基于工業(yè)相機(jī)的圖像采集與回放系統(tǒng)研究[D].太原:中北大學(xué),2015.

[2] 張惠臻,周炎,王成.基于NAND Flash的嵌入式大規(guī)模數(shù)據(jù)存儲(chǔ)機(jī)制[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,45(1):46-51.

[3] 徐永剛,任國(guó)強(qiáng),吳欽章,等.NAND Flash圖像記錄系統(tǒng)底層寫入控制技術(shù)[J].光電工程,2012,39(9):138-144.

[4] 馬志剛,劉文怡,凌偉.基于PCI和LVDS的高速數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(4):80-83.

[5] BARRERA E,RUIZ M,SANZ D,et al.Test bed for real-time image acquisition and processing systems based on F1exRI0,Camera Link and EPICS[J].Fusion Engineering and Design,2014,89(5):633-637.

[6] 劉偉.SATA接口雙硬盤控制技術(shù)研究與實(shí)現(xiàn)[D].太原:中北大學(xué),2016.

[7] 吳偉學(xué).基于FPGA的圖像采集與處理系統(tǒng)設(shè)計(jì)[D].廣州:華南理工大學(xué),2015.

[8] 李飛飛,劉偉寧,王艷華.改進(jìn)的中值濾波算法及其FPGA快速實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(14):175-177.



作者信息:

馬  林1,2,李錦明1,2,張虎威1,2,侯天喜1,2,降  帥1,2

(1.中北大學(xué) 電子測(cè)試國(guó)家重點(diǎn)實(shí)驗(yàn)室,山西 太原030051;

2.中北大學(xué) 儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。