《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的圖像采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)
基于FPGA的圖像采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)
2015年電子技術(shù)應(yīng)用第11期
魏麗玲1,2,朱 平1,2,石永亮1,2
(1.中北大學(xué) 電子測(cè)試技術(shù)重點(diǎn)實(shí)驗(yàn)室,山西 太原030051;2.中北大學(xué) 儀器與電子學(xué)院,山西 太原030051)
摘要: 設(shè)計(jì)了一種針對(duì)具有大數(shù)據(jù)量特點(diǎn)圖像數(shù)據(jù)采集、存儲(chǔ)及長線回讀的測(cè)控系統(tǒng)。在控制信號(hào)的作用下,此測(cè)控系統(tǒng)將CMOS傳感器采集的大容量數(shù)據(jù)存儲(chǔ)到Flash芯片中。存儲(chǔ)完成后,通過LVDS總線,將Flash芯片中存儲(chǔ)的數(shù)據(jù)回傳到上位機(jī)進(jìn)行存盤并顯示。實(shí)驗(yàn)證明,此系統(tǒng)穩(wěn)定性高,在工業(yè)控制領(lǐng)域具有借鑒意義。
中圖分類號(hào): TP274.2
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.019

中文引用格式: 魏麗玲,朱平,石永亮. 基于FPGA的圖像采集與存儲(chǔ)系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2015,41(11):67-69,73.
英文引用格式: Wei Liling,Zhu Ping,Shi Yongliang. Design of image capture and storage system based on FPGA[J].Application of Electronic Technique,2015,41(11):67-69,73.
Design of image capture and storage system based on FPGA
Wei Liling1,2,Zhu Ping1,2,Shi Yongliang1,2
1.Science and Technology on Electronic Test & Measurement Laboratory,North University of China,Taiyuan 030051,China; 2.School Instrument and Electronics,North University of China,Taiyuan 030051,China
Abstract: A kind of test system which has function of storage, collection and long-term backward read to image is designed in this paper. The system stores high-capacity image data into FLASH chip. After the image data storage finishing, in order to read module backward read to control computer to save and decode through LVDS bus way. Experiments show that this system has high stability, it has reference significance in the field of industrial control.
Key words : image data;FPGA;Flash;data storage

  

0 引言

  隨著科學(xué)技術(shù)的發(fā)展,視覺技術(shù)被廣泛應(yīng)用于軍事、工業(yè)以及測(cè)控領(lǐng)域。視覺是人們主要的信息源,通過圖像采集系統(tǒng)對(duì)周圍環(huán)境圖像數(shù)據(jù)進(jìn)行采集,這樣機(jī)器能夠替代人類獲得環(huán)境信息,此種系統(tǒng)被廣泛應(yīng)用于測(cè)控系統(tǒng),以獲得飛行器的環(huán)境參數(shù)。利用高性能的FPGA控制圖像數(shù)據(jù)的采集與圖像數(shù)據(jù)處理,通過交錯(cuò)雙平面技術(shù)對(duì)處理后的圖像數(shù)據(jù)進(jìn)行存儲(chǔ),通過USB總線,將處理后的數(shù)據(jù)傳輸給上位機(jī)進(jìn)行解包并顯示。

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

  系統(tǒng)工作過程:采集存儲(chǔ)模塊的FPGA通過模擬IIC時(shí)序,對(duì)CMOS模擬傳感器進(jìn)行初始化與配置,并采集圖像數(shù)據(jù),通過信號(hào)調(diào)理電路將采集的模擬信號(hào)進(jìn)行濾波放大,并將調(diào)理放大的信號(hào)進(jìn)行A/D轉(zhuǎn)換后輸出給FPGA,F(xiàn)PGA將接收的數(shù)據(jù)通過內(nèi)部FIFO緩存后傳輸給Flash芯片進(jìn)行存儲(chǔ)。FPGA回讀Flash芯片內(nèi)的數(shù)據(jù),通過LVDS總線(型號(hào)DS92LV1023)發(fā)送給監(jiān)控讀數(shù)模塊,通過USB接口(型號(hào)CY7C68013)傳輸給上位機(jī),由上位機(jī)對(duì)圖像進(jìn)行解碼顯示。系統(tǒng)的原理框圖如圖1所示。

009.jpg

FPGA采用XILINX公司的XC3S1400AN,內(nèi)部包含有豐富的RAM資源,便于數(shù)據(jù)采集[1-3]。

2 CMOS圖像數(shù)據(jù)采集模塊

  通過FPGA對(duì)CMOS圖像采集模塊進(jìn)行邏輯控制。其中采集模塊主要完成對(duì)視頻圖像的采集,對(duì)采集到的信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換,并對(duì)此信號(hào)進(jìn)行低通濾波及放大后[4-7]傳輸給圖像數(shù)據(jù)存儲(chǔ)模塊進(jìn)行存儲(chǔ)。

  在本文的系統(tǒng)設(shè)計(jì)中,對(duì)圖像數(shù)據(jù)的采集是核心模塊。視頻前端應(yīng)用CMOS圖像傳感器(型號(hào)OV7670),輸出的圖像數(shù)據(jù)最高為30幀/s,30萬像素,芯片內(nèi)部的寄存器達(dá)201個(gè),通過FPGA控制單片機(jī)對(duì)傳感器寄存器進(jìn)行配置。單片機(jī)采用IIC總線為傳感器寄存器串行傳輸數(shù)據(jù),在對(duì)IIC總線時(shí)序控制中,利用54個(gè)SDA時(shí)鐘傳輸32 bit的配置數(shù)據(jù),其中前兩個(gè)時(shí)鐘周期完成時(shí)序模塊的初始化,延時(shí)4個(gè)周期后,啟動(dòng)串行數(shù)據(jù)的傳輸,傳送完一個(gè)字節(jié)數(shù)據(jù)后等待從接收器(CMOS圖像傳感器)的應(yīng)答信號(hào),當(dāng)單片機(jī)確定從接收器正確接收后,啟動(dòng)發(fā)送下一個(gè)字節(jié)的配置數(shù)據(jù),直到發(fā)送完4個(gè)字節(jié)的配置數(shù)據(jù)后,發(fā)送終止信號(hào),結(jié)束IIC總線的傳輸,完成傳感器的初始化,從而控制圖像數(shù)據(jù)的質(zhì)量、圖像數(shù)據(jù)的制式以及數(shù)據(jù)的傳輸方式。其中IIC總線傳輸模塊的時(shí)鐘為30 kHz。

  CMOS圖像傳感器將采集到的光信號(hào)轉(zhuǎn)換為模擬信號(hào),被轉(zhuǎn)換的模擬信號(hào)很微弱,為達(dá)到A/D轉(zhuǎn)換芯片對(duì)處理信號(hào)電平的要求,需要對(duì)傳感器輸出的模擬信號(hào)進(jìn)行放大處理,經(jīng)A/D轉(zhuǎn)換芯片將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)輸出。FPGA的解碼部分通過控制3種同步信號(hào)(像素時(shí)鐘同步信號(hào)、行同步信號(hào)和場(chǎng)同步信號(hào)),進(jìn)而得到8 bit的RGB制式的圖像數(shù)據(jù)信號(hào)。圖像傳感器的分辨率為640×480,行同步信號(hào)為“1”時(shí)有效,每行顯示的有效數(shù)據(jù)是640 bit;每列顯示的有效數(shù)據(jù)是480 bit,場(chǎng)同步信號(hào)為“0”時(shí)輸出轉(zhuǎn)化后的有效數(shù)據(jù),當(dāng)其變?yōu)椤?”時(shí),表明一幀圖像數(shù)據(jù)傳輸完成。采集到的數(shù)據(jù)通過FPGA芯片的內(nèi)部FIFO緩存。

3 圖像數(shù)據(jù)存儲(chǔ)模塊

  本文采用的FPGA片內(nèi)存儲(chǔ)器有限,考慮到大數(shù)據(jù)量的圖像數(shù)據(jù),需要外部擴(kuò)展存儲(chǔ)器,選用K9WBG08U1M型號(hào)的Flash,此Flash最大存儲(chǔ)4 GB圖像數(shù)據(jù),以頁為單位對(duì)數(shù)據(jù)進(jìn)行讀寫,以塊為單位對(duì)數(shù)據(jù)進(jìn)行擦除,包含3種地址控制信號(hào)(列地址、行地址和塊地址)。圖像存儲(chǔ)模塊在上電初始化后,F(xiàn)PGA控制時(shí)序擦除Flash內(nèi)存,并等待存儲(chǔ)視頻前端采集到的圖像數(shù)據(jù)。采用交錯(cuò)雙平面式對(duì)接收到的圖像數(shù)據(jù)進(jìn)行存儲(chǔ),將1片4 GB的Flash分成2片2 GB的Flash,對(duì)其中一片F(xiàn)lash進(jìn)行寫操作的同時(shí)對(duì)另一片F(xiàn)lash進(jìn)行讀操作,此種交錯(cuò)方式使輸入輸出不間斷,實(shí)現(xiàn)圖像數(shù)據(jù)的無縫處理,提高數(shù)據(jù)傳輸與處理的效率。

  為了方便對(duì)圖像數(shù)據(jù)進(jìn)行讀寫操作,引入3種控制信號(hào):地址使能信號(hào)、命令使能信號(hào)和數(shù)據(jù)鎖存信號(hào)。在FPGA的邏輯時(shí)序控制中,當(dāng)?shù)刂肥鼓苄盘?hào)有效為“0”時(shí),F(xiàn)PGA的8個(gè)I/O口并行輸出地址,在對(duì)Flash芯片進(jìn)行尋址時(shí)寫入32 bit地址(13 bit是字節(jié)地址,19 bit是頁地址和塊地址),分5次輸出;當(dāng)命令使能信號(hào)有效為“0”時(shí),8位I/O口輸出命令,當(dāng)數(shù)據(jù)鎖存信號(hào)有效為“0”時(shí),8位I/O口輸入8 bit圖像數(shù)據(jù)。圖2所示為Flash存儲(chǔ)模塊工作時(shí)序流程圖。

010.jpg

4 監(jiān)控讀數(shù)模塊

  通過綜合考慮,圖像數(shù)據(jù)存儲(chǔ)模塊與監(jiān)控讀數(shù)模塊通過低壓差分傳輸方式(LVDS)進(jìn)行數(shù)據(jù)的傳輸,此種傳輸方式適用于高速短距離傳輸,但是,在利用普通雙絞線進(jìn)行數(shù)據(jù)的傳輸時(shí),信號(hào)的傳輸損耗隨著信號(hào)頻率的增加而增加?;诖朔N限制,在圖像數(shù)據(jù)的發(fā)送端加入驅(qū)動(dòng)以增強(qiáng)信號(hào),在圖像數(shù)據(jù)的接收端采用均衡補(bǔ)償法補(bǔ)償信號(hào)在傳輸過程中的損耗。

011.jpg

  此監(jiān)控讀數(shù)模塊采用LVDS接口和422接口與圖像數(shù)據(jù)存儲(chǔ)模塊進(jìn)行通信。LVDS接口主要負(fù)責(zé)存儲(chǔ)命令的下發(fā)和回讀存儲(chǔ)模塊的圖像數(shù)據(jù),422接口主要負(fù)責(zé)對(duì)存儲(chǔ)模塊狀態(tài)的監(jiān)控,通過回讀存儲(chǔ)模塊的狀態(tài)信息以確定存儲(chǔ)模塊是否正常工作。圖3所示為監(jiān)控讀數(shù)模塊與數(shù)據(jù)存儲(chǔ)模塊的LVDS接口示意圖。存儲(chǔ)模塊接收到讀數(shù)命令,通過LVDS接口,將數(shù)據(jù)傳輸給監(jiān)控讀數(shù)模塊,監(jiān)控讀數(shù)模塊通過檢測(cè)數(shù)據(jù)的高兩位判斷是否為有效數(shù)據(jù)。若為有效數(shù)據(jù),將此數(shù)據(jù)存儲(chǔ)到外部的FIFO中,若為無效數(shù)據(jù),則丟棄。監(jiān)控讀數(shù)模塊向存儲(chǔ)模塊發(fā)送啟動(dòng)存數(shù)數(shù)據(jù)命令后,數(shù)據(jù)存儲(chǔ)模塊通過422接口將本身的狀態(tài)信息發(fā)送給數(shù)據(jù)監(jiān)控模塊,通過這些狀態(tài)信息能夠判斷存儲(chǔ)模塊是否正常工作。

5 系統(tǒng)測(cè)試結(jié)果

  在對(duì)本系統(tǒng)的硬件和軟件模塊調(diào)試成功后,對(duì)系統(tǒng)的總體功能進(jìn)行測(cè)試。CMOS模擬傳感器對(duì)圖像數(shù)據(jù)進(jìn)行采集后,通過數(shù)據(jù)存儲(chǔ)模塊對(duì)采集到的數(shù)據(jù)進(jìn)行存儲(chǔ),由監(jiān)控讀數(shù)模塊通過LVDS接口回讀圖像數(shù)據(jù),并將此數(shù)據(jù)通過USB接口上傳給上位機(jī),上位機(jī)對(duì)此數(shù)據(jù)進(jìn)行解碼并顯示,圖4所示為還原后的圖像數(shù)據(jù)。其中FAF6為幀開始標(biāo)志,幀標(biāo)志前面的3個(gè)字節(jié)是幀計(jì)數(shù)。

012.jpg

6 結(jié)論

  本文利用CMOS傳感器實(shí)現(xiàn)了對(duì)圖像數(shù)據(jù)實(shí)時(shí)采集的要求。應(yīng)用K9WBG08U1M型號(hào)的Flash芯片通過交叉雙平面技術(shù)對(duì)此圖像數(shù)據(jù)進(jìn)行存儲(chǔ),實(shí)現(xiàn)了數(shù)據(jù)的無縫傳輸,以流水線的數(shù)據(jù)傳輸方式提高了本系統(tǒng)的傳輸效率。監(jiān)控讀數(shù)模塊通過LVDS接口和422接口對(duì)存儲(chǔ)模塊的數(shù)據(jù)進(jìn)行回讀并在上位機(jī)上顯示。系統(tǒng)充分利用了具有高性能的XC3S1400AN(所用FPGA型號(hào))芯片,提高了系統(tǒng)的運(yùn)行速度,具有很高的參考價(jià)值。

參考文獻(xiàn)

  [1] 吳萌.一種高速、大容量圖像存儲(chǔ)系統(tǒng)設(shè)計(jì)[D].西安:中國科學(xué)院西安光學(xué)精密機(jī)械研究所,2009.

  [2] 邢彥梅,董曉倩,張園.一種基于JPEG2000算法的圖像傳感器設(shè)計(jì)[J].電視技術(shù),2012,36(11):44-46.

  [3] 王小艷,張會(huì)新,孫永生,等.Camera link協(xié)議和FPGA的數(shù)字圖像信號(hào)源設(shè)計(jì)[J].國外電子元器件,2008,16(7):59-61.

  [4] 任偉,張彥軍,白先民.基于LVDS的高速數(shù)據(jù)傳輸裝置的設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2012,12(29):7759-7763.

  [5] 郭錚,劉文怡,馮妮.基于FPGA多通道高速數(shù)據(jù)采集存儲(chǔ)器設(shè)計(jì)[J].電視技術(shù),2012,37(17):55-57.

  [6] 蔣鵬,吳建峰,董林璽.一種改進(jìn)的無線多媒體傳感器網(wǎng)絡(luò)分布式圖像壓縮算法[J].傳感技術(shù)學(xué)報(bào),2012,25(6):815-820.

  [7] 張健,吳曉冰.LVDS技術(shù)原理和設(shè)計(jì)簡(jiǎn)介[J].電子技術(shù)應(yīng)用,2000,26(5):59-61.


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