文獻標識碼: 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.
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ù),。
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為串行通信信號,。
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ù)均在時鐘上升沿進行采樣,。
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ù)取中值的方式進行合成,。
在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ù)提取中值,。
對于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ù),。
在程序設(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之中,。
系統(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)硬盤中,。
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所示,。
通過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)