文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.019
中文引用格式: 魏麗玲,朱平,石永亮. 基于FPGA的圖像采集與存儲系統(tǒng)設計[J].電子技術應用,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.
0 引言
隨著科學技術的發(fā)展,視覺技術被廣泛應用于軍事、工業(yè)以及測控領域。視覺是人們主要的信息源,通過圖像采集系統(tǒng)對周圍環(huán)境圖像數(shù)據(jù)進行采集,這樣機器能夠替代人類獲得環(huán)境信息,此種系統(tǒng)被廣泛應用于測控系統(tǒng),以獲得飛行器的環(huán)境參數(shù)。利用高性能的FPGA控制圖像數(shù)據(jù)的采集與圖像數(shù)據(jù)處理,通過交錯雙平面技術對處理后的圖像數(shù)據(jù)進行存儲,通過USB總線,將處理后的數(shù)據(jù)傳輸給上位機進行解包并顯示。
1 系統(tǒng)的總體設計
系統(tǒng)工作過程:采集存儲模塊的FPGA通過模擬IIC時序,對CMOS模擬傳感器進行初始化與配置,并采集圖像數(shù)據(jù),通過信號調(diào)理電路將采集的模擬信號進行濾波放大,并將調(diào)理放大的信號進行A/D轉換后輸出給FPGA,F(xiàn)PGA將接收的數(shù)據(jù)通過內(nèi)部FIFO緩存后傳輸給Flash芯片進行存儲。FPGA回讀Flash芯片內(nèi)的數(shù)據(jù),通過LVDS總線(型號DS92LV1023)發(fā)送給監(jiān)控讀數(shù)模塊,通過USB接口(型號CY7C68013)傳輸給上位機,由上位機對圖像進行解碼顯示。系統(tǒng)的原理框圖如圖1所示。
FPGA采用XILINX公司的XC3S1400AN,內(nèi)部包含有豐富的RAM資源,便于數(shù)據(jù)采集[1-3]。
2 CMOS圖像數(shù)據(jù)采集模塊
通過FPGA對CMOS圖像采集模塊進行邏輯控制。其中采集模塊主要完成對視頻圖像的采集,對采集到的信號進行模數(shù)轉換,并對此信號進行低通濾波及放大后[4-7]傳輸給圖像數(shù)據(jù)存儲模塊進行存儲。
在本文的系統(tǒng)設計中,對圖像數(shù)據(jù)的采集是核心模塊。視頻前端應用CMOS圖像傳感器(型號OV7670),輸出的圖像數(shù)據(jù)最高為30幀/s,30萬像素,芯片內(nèi)部的寄存器達201個,通過FPGA控制單片機對傳感器寄存器進行配置。單片機采用IIC總線為傳感器寄存器串行傳輸數(shù)據(jù),在對IIC總線時序控制中,利用54個SDA時鐘傳輸32 bit的配置數(shù)據(jù),其中前兩個時鐘周期完成時序模塊的初始化,延時4個周期后,啟動串行數(shù)據(jù)的傳輸,傳送完一個字節(jié)數(shù)據(jù)后等待從接收器(CMOS圖像傳感器)的應答信號,當單片機確定從接收器正確接收后,啟動發(fā)送下一個字節(jié)的配置數(shù)據(jù),直到發(fā)送完4個字節(jié)的配置數(shù)據(jù)后,發(fā)送終止信號,結束IIC總線的傳輸,完成傳感器的初始化,從而控制圖像數(shù)據(jù)的質量、圖像數(shù)據(jù)的制式以及數(shù)據(jù)的傳輸方式。其中IIC總線傳輸模塊的時鐘為30 kHz。
CMOS圖像傳感器將采集到的光信號轉換為模擬信號,被轉換的模擬信號很微弱,為達到A/D轉換芯片對處理信號電平的要求,需要對傳感器輸出的模擬信號進行放大處理,經(jīng)A/D轉換芯片將模擬信號轉換成數(shù)字信號輸出。FPGA的解碼部分通過控制3種同步信號(像素時鐘同步信號、行同步信號和場同步信號),進而得到8 bit的RGB制式的圖像數(shù)據(jù)信號。圖像傳感器的分辨率為640×480,行同步信號為“1”時有效,每行顯示的有效數(shù)據(jù)是640 bit;每列顯示的有效數(shù)據(jù)是480 bit,場同步信號為“0”時輸出轉化后的有效數(shù)據(jù),當其變?yōu)椤?”時,表明一幀圖像數(shù)據(jù)傳輸完成。采集到的數(shù)據(jù)通過FPGA芯片的內(nèi)部FIFO緩存。
3 圖像數(shù)據(jù)存儲模塊
本文采用的FPGA片內(nèi)存儲器有限,考慮到大數(shù)據(jù)量的圖像數(shù)據(jù),需要外部擴展存儲器,選用K9WBG08U1M型號的Flash,此Flash最大存儲4 GB圖像數(shù)據(jù),以頁為單位對數(shù)據(jù)進行讀寫,以塊為單位對數(shù)據(jù)進行擦除,包含3種地址控制信號(列地址、行地址和塊地址)。圖像存儲模塊在上電初始化后,F(xiàn)PGA控制時序擦除Flash內(nèi)存,并等待存儲視頻前端采集到的圖像數(shù)據(jù)。采用交錯雙平面式對接收到的圖像數(shù)據(jù)進行存儲,將1片4 GB的Flash分成2片2 GB的Flash,對其中一片F(xiàn)lash進行寫操作的同時對另一片F(xiàn)lash進行讀操作,此種交錯方式使輸入輸出不間斷,實現(xiàn)圖像數(shù)據(jù)的無縫處理,提高數(shù)據(jù)傳輸與處理的效率。
為了方便對圖像數(shù)據(jù)進行讀寫操作,引入3種控制信號:地址使能信號、命令使能信號和數(shù)據(jù)鎖存信號。在FPGA的邏輯時序控制中,當?shù)刂肥鼓苄盘栍行椤?”時,F(xiàn)PGA的8個I/O口并行輸出地址,在對Flash芯片進行尋址時寫入32 bit地址(13 bit是字節(jié)地址,19 bit是頁地址和塊地址),分5次輸出;當命令使能信號有效為“0”時,8位I/O口輸出命令,當數(shù)據(jù)鎖存信號有效為“0”時,8位I/O口輸入8 bit圖像數(shù)據(jù)。圖2所示為Flash存儲模塊工作時序流程圖。
4 監(jiān)控讀數(shù)模塊
通過綜合考慮,圖像數(shù)據(jù)存儲模塊與監(jiān)控讀數(shù)模塊通過低壓差分傳輸方式(LVDS)進行數(shù)據(jù)的傳輸,此種傳輸方式適用于高速短距離傳輸,但是,在利用普通雙絞線進行數(shù)據(jù)的傳輸時,信號的傳輸損耗隨著信號頻率的增加而增加?;诖朔N限制,在圖像數(shù)據(jù)的發(fā)送端加入驅動以增強信號,在圖像數(shù)據(jù)的接收端采用均衡補償法補償信號在傳輸過程中的損耗。
此監(jiān)控讀數(shù)模塊采用LVDS接口和422接口與圖像數(shù)據(jù)存儲模塊進行通信。LVDS接口主要負責存儲命令的下發(fā)和回讀存儲模塊的圖像數(shù)據(jù),422接口主要負責對存儲模塊狀態(tài)的監(jiān)控,通過回讀存儲模塊的狀態(tài)信息以確定存儲模塊是否正常工作。圖3所示為監(jiān)控讀數(shù)模塊與數(shù)據(jù)存儲模塊的LVDS接口示意圖。存儲模塊接收到讀數(shù)命令,通過LVDS接口,將數(shù)據(jù)傳輸給監(jiān)控讀數(shù)模塊,監(jiān)控讀數(shù)模塊通過檢測數(shù)據(jù)的高兩位判斷是否為有效數(shù)據(jù)。若為有效數(shù)據(jù),將此數(shù)據(jù)存儲到外部的FIFO中,若為無效數(shù)據(jù),則丟棄。監(jiān)控讀數(shù)模塊向存儲模塊發(fā)送啟動存數(shù)數(shù)據(jù)命令后,數(shù)據(jù)存儲模塊通過422接口將本身的狀態(tài)信息發(fā)送給數(shù)據(jù)監(jiān)控模塊,通過這些狀態(tài)信息能夠判斷存儲模塊是否正常工作。
5 系統(tǒng)測試結果
在對本系統(tǒng)的硬件和軟件模塊調(diào)試成功后,對系統(tǒng)的總體功能進行測試。CMOS模擬傳感器對圖像數(shù)據(jù)進行采集后,通過數(shù)據(jù)存儲模塊對采集到的數(shù)據(jù)進行存儲,由監(jiān)控讀數(shù)模塊通過LVDS接口回讀圖像數(shù)據(jù),并將此數(shù)據(jù)通過USB接口上傳給上位機,上位機對此數(shù)據(jù)進行解碼并顯示,圖4所示為還原后的圖像數(shù)據(jù)。其中FAF6為幀開始標志,幀標志前面的3個字節(jié)是幀計數(shù)。
6 結論
本文利用CMOS傳感器實現(xiàn)了對圖像數(shù)據(jù)實時采集的要求。應用K9WBG08U1M型號的Flash芯片通過交叉雙平面技術對此圖像數(shù)據(jù)進行存儲,實現(xiàn)了數(shù)據(jù)的無縫傳輸,以流水線的數(shù)據(jù)傳輸方式提高了本系統(tǒng)的傳輸效率。監(jiān)控讀數(shù)模塊通過LVDS接口和422接口對存儲模塊的數(shù)據(jù)進行回讀并在上位機上顯示。系統(tǒng)充分利用了具有高性能的XC3S1400AN(所用FPGA型號)芯片,提高了系統(tǒng)的運行速度,具有很高的參考價值。
參考文獻
[1] 吳萌.一種高速、大容量圖像存儲系統(tǒng)設計[D].西安:中國科學院西安光學精密機械研究所,2009.
[2] 邢彥梅,董曉倩,張園.一種基于JPEG2000算法的圖像傳感器設計[J].電視技術,2012,36(11):44-46.
[3] 王小艷,張會新,孫永生,等.Camera link協(xié)議和FPGA的數(shù)字圖像信號源設計[J].國外電子元器件,2008,16(7):59-61.
[4] 任偉,張彥軍,白先民.基于LVDS的高速數(shù)據(jù)傳輸裝置的設計[J].科學技術與工程,2012,12(29):7759-7763.
[5] 郭錚,劉文怡,馮妮.基于FPGA多通道高速數(shù)據(jù)采集存儲器設計[J].電視技術,2012,37(17):55-57.
[6] 蔣鵬,吳建峰,董林璽.一種改進的無線多媒體傳感器網(wǎng)絡分布式圖像壓縮算法[J].傳感技術學報,2012,25(6):815-820.
[7] 張健,吳曉冰.LVDS技術原理和設計簡介[J].電子技術應用,2000,26(5):59-61.