《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應用 > 高速CMOS圖像存儲與實時顯示系統(tǒng)設(shè)計
高速CMOS圖像存儲與實時顯示系統(tǒng)設(shè)計
2017年電子技術(shù)應用第6期
馬 林1,,2,,李錦明1,,2,,張虎威1,,2,,侯天喜1,2,,降 帥1,,2
1.中北大學 電子測試國家重點實驗室,山西 太原030051,; 2.中北大學 儀器科學與動態(tài)測試教育部重點實驗室,,山西 太原030051
摘要: 針對遙測系統(tǒng)圖像單元存在數(shù)據(jù)量大、速度快,、無法直接存儲顯示等問題,,設(shè)計了一種高速圖像存儲與實時顯示系統(tǒng)。系統(tǒng)以Spartan 6系列現(xiàn)場可編程門陣列(FPGA)作為核心處理器,,使用Full模式Camera Link接口采集CMOS相機輸出的圖像數(shù)據(jù),,利用DDR3乒乓緩存技術(shù)將圖像數(shù)據(jù)寫入由SATA控制器組成的磁盤陣列中,并且通過千兆以太網(wǎng)接口將處理后的數(shù)據(jù)上傳至計算機,;圖像數(shù)據(jù)采用抽幀以及降低分辨率的形式,,將其轉(zhuǎn)換為1 024×768像素的VGA分辨率格式,最后通過VGA接口對圖像進行實時顯示,。實驗結(jié)果表明,,該系統(tǒng)能夠?qū)Ψ直媛蕿? 048×2 048像素、幀頻為150 f/s的高速圖像數(shù)據(jù)進行長時間存儲與實時顯示,。
中圖分類號: TN919.5
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.06.002
中文引用格式: 馬林,,李錦明,張虎威,,等. 高速CMOS圖像存儲與實時顯示系統(tǒng)設(shè)計[J].電子技術(shù)應用,,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)測領(lǐng)域,,高分辨率、高幀頻的工業(yè)相機有著廣泛的應用,,它可以有效捕捉高速飛行器的飛行姿態(tài),,最終通過計算機對圖像進行分析與處理,提取出其運行速度,、加速度等重要參數(shù)[1],。隨著工業(yè)相機分辨率以及幀頻的不斷提高,對圖像存儲系統(tǒng)的要求也越來越高,,特別是在載人航天測試領(lǐng)域,,存儲系統(tǒng)必須能夠應對復雜的工況環(huán)境。傳統(tǒng)的Nand Flash以及機械硬盤等存儲介質(zhì)存在容量小,、操作復雜以及抗干擾能力差等缺點,,而SSD固態(tài)硬盤憑借其容量大、速度快,、環(huán)境特性好等特點,,在科研,、航空航天以及軍事測試等領(lǐng)域,有廣闊的應用前景,。

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

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

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

htdz2-t1.gif

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

2.1 圖像采集模塊

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

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

htdz2-t2.gif

2.2 VGA驅(qū)動電路

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

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

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

htdz2-t3.gif

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

3.1 圖像實時顯示模塊

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

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

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

htdz2-t4.gif

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

htdz2-t5.gif

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

3.1.2 抽幀緩存模塊

    由于相機輸出圖像的幀頻為150 f/s,而常用VGA分辨率格式的幀頻一般都在75 Hz以下,,為了匹配VGA接口分辨率,,對相機圖像進行抽幀緩存處理,每兩幀抽取一幀,,依次存入兩片DDR3中,,最終以1 024×768@75格式的VGA分辨率進行顯示。

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

htdz2-t6.gif

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

3.2 圖像存儲模塊

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

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

htdz2-t7.gif

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

htdz2-t8.gif

4 系統(tǒng)測試

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

htdz2-t9.gif

htdz2-t10.gif

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

5 結(jié)束語

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

參考文獻

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

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

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

[4] 馬志剛,劉文怡,,凌偉.基于PCI和LVDS的高速數(shù)據(jù)存儲系統(tǒng)的設(shè)計[J].電子技術(shù)應用,,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ù)研究與實現(xiàn)[D].太原:中北大學,,2016.

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

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



作者信息:

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

(1.中北大學 電子測試國家重點實驗室,山西 太原030051,;

2.中北大學 儀器科學與動態(tài)測試教育部重點實驗室,,山西 太原030051)

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