一種基于A(yíng)RM和FPGA的嵌入式高速圖像采集存儲系統設計與實(shí)現
現代化生產(chǎn)和科學(xué)研究對圖像采集系統要求日益提高。傳統圖像采集系統大都是基于PC機上,而在一些特殊的場(chǎng)合,尤其是在實(shí)時(shí)性要求較高時(shí),普通的PC機顯然無(wú)法滿(mǎn)足應用要求。它主要包括圖像采集模塊、圖像處理模塊以及圖像存儲模塊等。
本文引用地址:http://dyxdggzs.com/article/149959.htm1 系統結構及工作原理
本系統的結構模型,如圖1所示。圖像采集模塊負責采集原始圖像,并將原始圖像數據送給FPGA,采用了可編程視頻輸入處理器SAA7113H。一幀圖像采集完成后,ARM將圖像數據通過(guò)FPGA取出,進(jìn)行必要的處理,并形成圖片文件存到CF卡中,本系統選用了Philips公司的LPC2214。
圖像采集芯片將原始圖像數據傳到FPGA,FPGA將圖像原始數據暫存于SRAMl中,當一幀圖像存儲完后,下一幀圖像數據存于SRAM2中。同時(shí),將SRAMl中的數據送給ARM,ARM在對原始圖像進(jìn)行必要的處理后,將圖像數據以圖片文件的方式存儲在CF卡中。這樣就實(shí)現了嵌入式高速圖像采集和存儲功能,用戶(hù)可以很方便地將CF卡上的圖片上傳到PC機中進(jìn)行進(jìn)一步的分析和處理。
2 系統硬件設計
2.1 圖像采集模塊
用可編程視頻輸入處理器SAA7113H進(jìn)行視頻信號處理。SAA7113H內部集成了強大圖像色度、亮度處理功能以及多種輸出模式;有32個(gè)工作寄存器,在系統復位時(shí),必須通過(guò)I2C總線(xiàn)對其進(jìn)行初始化。本系統使用灰度圖像,沒(méi)有使用色度信號,所以數據線(xiàn)為8位。SAA7113H與FPGA的接口,如圖2所示。
圖像采集卡(Image Capture Card),又稱(chēng)圖像捕捉卡,是一種可以獲取數字化視頻圖像信息,并將其存儲和播放出來(lái)的硬件設備。很多圖像采集卡能在捕捉視頻信息的同時(shí)獲得伴音,使音頻部分和視頻部分在數字化時(shí)同步保存、同步播放。
圖像采集卡,其功能是將圖像信號采集到電腦中,以數據文件的形式保存在硬盤(pán)上。它是我們進(jìn)行圖像處理必不可少的硬件設備,通過(guò)它,我們就可以把攝像機拍攝的視頻信號從攝像帶上轉存到計算機中,利用相關(guān)的視頻編輯軟件,對數字化的視頻信號進(jìn)行后期編輯處理、比如剪切畫(huà)面、添加濾鐿、字幕和音效、設置轉場(chǎng)效果以及加入各種視頻特效等等,最后將編輯完成的視頻信號轉換成標準的VCD、DVD以及網(wǎng)上流行媒體等格式,方便傳播。
2.2 FPGA模塊
FPGA主要作用是把圖像采集芯片傳過(guò)來(lái)的圖像原始數據,采取乒乓操作的方式,暫存于兩片SRAM中。當FPGA開(kāi)始接收第一幀圖像時(shí),把該幀圖像根據FPGA內部生成的地址存儲在SRAMl中,一幀圖像接收完畢后,向ARM傳送。同時(shí),把下一幀圖像暫存于SRAM2中,然后傳給ARM,依次循環(huán)。這樣就可以實(shí)現圖像的高速采集。本系統選用了Alter公司的EPlK30TCl44—3,它采用EECMOS技術(shù),144引腳TQFP封裝,容量為10萬(wàn)門(mén),具有高密度、低成本、低功耗的特點(diǎn)。FPGA的內部結構包括時(shí)鐘驅動(dòng)模塊、SAA7113H控制模塊、SRAM控制模塊、ARM數據交換模塊等。本系統中,主要針對640×480的灰度圖像的采集和存儲,所以選用了ISSI公司的IS6lIN25616AL,它是一種高速度、低功耗的256 kB×16的CMOS靜態(tài)隨即存儲器,能夠滿(mǎn)足系統的實(shí)際要求。SRAM控制模塊的內部結構框圖,如圖3所示。
2.3 ARM模塊
ARM模塊的主要作用是,從SRAM中取出圖像原始數據,然后進(jìn)行必要的處理,再存儲在大容量的CF卡上,方便用戶(hù)在PC機上對圖像進(jìn)行必要的處理操作。FPGA接收完一幀圖像后,向ARM發(fā)出中斷請求,ARM收到請求后,通過(guò)FP—GA將SRAM中的數據讀入。一幀數據發(fā)送完畢后,FPGA發(fā)出發(fā)送完畢信號,ARM對接收到的數據進(jìn)行必要的處理后,將數據存儲在大容量的CF卡上。ARM與FPGA及CF卡的接口電路分別,如圖4,圖5所示。
3 系統的工作原理及實(shí)現
3.1 FPGA圖像采集及暫存的實(shí)現
系統上電后,FPGA首先通過(guò)I2C總線(xiàn)對視頻采集模塊(SAA7113H)進(jìn)行初始化,以確定其工作模式。初始化結束后,等待圖像采集命令。當接收到FPGA發(fā)出的圖像采集命令時(shí),視頻采集模塊開(kāi)始工作,FPGA依靠像素時(shí)鐘和行場(chǎng)同步信號采集灰度圖像。由于SAA7113H輸出的灰度圖像是8位的,而外部的SRAM是16位的,因此在FPGA中必須對采集到的灰度圖像進(jìn)行處理,將兩個(gè)字節的數據組合,一起輸出到外部SRAM中。一幀圖像采集結束后,SAA7113H停止圖像采集,等待下一次的采集命令。
3.2 FPGA與ARM的數據交換
為了實(shí)現圖像數據的實(shí)時(shí)采集與處理,應使圖像數據的采集與外部圖像數據的讀取同時(shí)進(jìn)行。因此本系統采用雙SRAM緩存結構。這樣,在同一時(shí)刻,一片可用于存儲圖像數據,另一片可用于外部ARM對圖像數據的讀取。兩塊SRAM存儲區乒乓式切換。當圖像數據寫(xiě)滿(mǎn)SRAMl時(shí),FPGA向ARM發(fā)送一個(gè)中斷信號,然后,AlRM響應中斷并讀取SRAMl中的圖像數據,同時(shí)將其寫(xiě)入到CF卡中,圖像數據將寫(xiě)入SRAM2,當圖像數據寫(xiě)滿(mǎn)SRAM2時(shí),FPGA也向ARM發(fā)送一個(gè)中斷信號。
3.3 圖像數據在CF卡上的存儲
CF卡內部控制器設計完全模擬硬盤(pán),使用標準的ATA/IDE接口界面,可通過(guò)IDE接口與電腦連接,而且早已實(shí)現無(wú)驅動(dòng)設計,使用非常方便。在本系統中,圖像數據通過(guò)ARM存入CF卡,因此必須實(shí)現ARM對CF卡的配置、讀寫(xiě)控制等操作。ARM對CF卡驅動(dòng)的接口函數由硬件接口函數和用戶(hù)使用函數組成,硬件接口函數是與系統硬件相關(guān)的函數集。主要包括硬件復位函數、ATA寄存器操作函數和ATA設備探測函數;用戶(hù)使用函數包括ATA設備驅動(dòng)初始化函數、查找ATA接口設備函數、讀扇區函數、寫(xiě)扇區函數、獲取設備信息、使設備立即進(jìn)入待機狀態(tài)和使設備立即進(jìn)入空閑狀態(tài)。
CF卡全稱(chēng)為 “ Compact Flash ” 卡,譯為漢語(yǔ)就是 “ 標準閃存卡 ” , CF卡是最早推出的存儲卡產(chǎn)品,由最大的FLASH MEMORY廠(chǎng)商之一的美國SANDISK于1994年研發(fā)成功的。
CF卡是目前應用最為廣泛的存儲卡,由于它不帶驅動(dòng)器,也沒(méi)有其它的移動(dòng)部件,因此,極少出現機械故障,使存儲的圖像數據更加安全。CF卡的使用壽命也非常長(cháng),即使用上100多年也可以保證數據完好無(wú)損。而且CF卡耗電量小,只有普通硬盤(pán)的5%。與其它存儲卡相比,容量大是CF卡的另一個(gè)優(yōu)勢,目前主流產(chǎn)品已經(jīng)達到512Mb和1Gb標準。另外它還具備速度快、價(jià)格便宜等優(yōu)點(diǎn)。CF卡的主要缺點(diǎn)是CF模塊在設備與安裝程序之間不存在互換性,不能直接運行程序,功耗大,勢必會(huì )影響到電池續航時(shí)間等。
4 結束語(yǔ)
文中介紹了用ARM和FPGA實(shí)現的一個(gè)嵌入式實(shí)時(shí)圖像采集存儲系統的設計方案,本系統的工作溫度為O~60℃,可以實(shí)現每秒20~30幀的視頻流灰度圖像采集和存儲,能夠滿(mǎn)足嵌入式實(shí)時(shí)圖像采集存儲的應用要求,系統的持續工作時(shí)間取決于CF卡的存儲容量。在本系統中,圖像的采集存儲脫離了PC機,使圖像的采集存儲真正達到了實(shí)時(shí)性和嵌入式的要求。本系統可以應用在軍事射擊評價(jià)、工業(yè)產(chǎn)品質(zhì)量檢測、醫療和生物等領(lǐng)域。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論