現代化生產和科學研究對圖像采集系統要求日益提高。傳統圖像采集系統大都是基于PC機上,而在一些特殊的場合,尤其是在實時性要求較高時,普通的PC機顯然無法滿足應用要求。文中設計了一種基于ARM和FPGA的嵌入式的圖像采集存儲系統,可以很好地解決實時的嵌入式圖像采集和存儲問題。它主要包括圖像采集模塊、圖像處理模塊以及圖像存儲模塊等。 1 系統結構及工作原理 本系統的結構模型,如圖1所示。圖像采集模塊負責采集原始圖像,并將原始圖像數據送給FPGA,采用了可編程視頻輸入處理器SAA7113H。原始圖像數據送到FPGA后,FPGA將原始圖像數據暫存于兩個SRAM中,系統采用了Alter公司的EPlK30TCl44—3和ICSI公司的IS6LV25616AL。一幀圖像采集完成后,ARM將圖像數據通過FPGA取出,進行必要的處理,并形成圖片文件存到CF卡中,本系統選用了Philips公司的LPC2214。 圖像采集芯片將原始圖像數據傳到FPGA,FPGA將圖像原始數據暫存于SRAMl中,當一幀圖像存儲完后,下一幀圖像數據存于SRAM2中。同時,將SRAMl中的數據送給ARM,ARM在對原始圖像進行必要的處理后,將圖像數據以圖片文件的方式存儲在CF卡中。這樣就實現了嵌入式高速圖像采集和存儲功能,用戶可以很方便地將CF卡上的圖片上傳到PC機中進行進一步的分析和處理。 2 系統硬件設計 2.1 圖像采集模塊 用可編程視頻輸入處理器SAA7113H進行視頻信號處理。SAA7113H內部集成了強大圖像色度、亮度處理功能以及多種輸出模式;有32個工作寄存器,在系統復位時,必須通過I2C總線對其進行初始化。本系統使用灰度圖像,沒有使用色度信號,所以數據線為8位。SAA7113H與FPGA的接口,如圖2所示。 2.2 FPGA模塊 FPGA主要作用是把圖像采集芯片傳過來的圖像原始數據,采取乒乓操作的方式,暫存于兩片SRAM中。當FPGA開始接收第一幀圖像時,把該幀圖像根據FPGA內部生成的地址存儲在SRAMl中,一幀圖像接收完畢后,向ARM傳送。同時,把下一幀圖像暫存于SRAM2中,然后傳給ARM,依次循環。這樣就可以實現圖像的高速采集。本系統選用了Alter公司的EPlK30TCl44—3,它采用EECMOS技術,144引腳TQFP封裝,容量為10萬門,具有高密度、低成本、低功耗的特點。FPGA的內部結構包括時鐘驅動模塊、SAA7113H控制模塊、SRAM控制模塊、ARM數據交換模塊等。SAA7113H控制模塊主要負責對視頻采集芯片SAA7113H的初始化和啟停等功能控制;SRAM控制模塊則主要進行讀寫地址生成、“乒乓”讀寫控制等;ARM數據交換模塊負責向ARM申請中斷和數據傳輸。這些模塊在設計中利用VHDL語言,在Quartus II環境下進行編程和調試,具體實現方法參見文獻。本系統中,主要針對640×480的灰度圖像的采集和存儲,所以選用了ISSI公司的IS6lIN25616AL,它是一種高速度、低功耗的256 kB×16的CMOS靜態隨即存儲器,能夠滿足系統的實際要求。SRAM控制模塊的內部結構框圖,如圖3所示。 2.3 ARM模塊 ARM模塊的主要作用是,從SRAM中取出圖像原始數據,然后進行必要的處理,再存儲在大容量的CF卡上,方便用戶在PC機上對圖像進行必要的處理操作。FPGA接收完一幀圖像后,向ARM發出中斷請求,ARM收到請求后,通過FP—GA將SRAM中的數據讀入。一幀數據發送完畢后,FPGA發出發送完畢信號,ARM對接收到的數據進行必要的處理后,將數據存儲在大容量的CF卡上。本系統選用了Philips公司的LPC2214,它是基于ARM7TDSI體系的嵌入式微處理器,內部具有16 kB的靜態隨機存儲器和256 kB的Flash程序存儲器,可實現高達60 MHz的工作頻率。ARM與FPGA及CF卡的接口電路分別,如圖4,圖5所示。 3 系統的工作原理及實現 3.1 FPGA圖像采集及暫存的實現 系統上電后,FPGA首先通過I2C總線對視頻采集模塊(SAA7113H)進行初始化,以確定其工作模式。初始化結束后,等待圖像采集命令。當接收到FPGA發出的圖像采集命令時,視頻采集模塊開始工作,FPGA依靠像素時鐘和行場同步信號采集灰度圖像。由于SAA7113H輸出的灰度圖像是8位的,而外部的SRAM是16位的,因此在FPGA中必須對采集到的灰度圖像進行處理,將兩個字節的數據組合,一起輸出到外部SRAM中。一幀圖像采集結束后,SAA7113H停止圖像采集,等待下一次的采集命令。 3.2 FPGA與ARM的數據交換 為了實現圖像數據的實時采集與處理,應使圖像數據的采集與外部圖像數據的讀取同時進行。因此本系統采用雙SRAM緩存結構。這樣,在同一時刻,一片可用于存儲圖像數據,另一片可用于外部ARM對圖像數據的讀取。兩塊SRAM存儲區乒乓式切換。當圖像數據寫滿SRAMl時,FPGA向ARM發送一個中斷信號,然后,AlRM響應中斷并讀取SRAMl中的圖像數據,同時將其寫入到CF卡中,圖像數據將寫入SRAM2,當圖像數據寫滿SRAM2時,FPGA也向ARM發送一個中斷信號。ARM響應中斷并讀取SRAM2中的圖像數據,同時將其寫入到CF卡中。之后,圖像傳感器的數據將再次寫入SRAMl。 3.3 圖像數據在CF卡上的存儲 CF卡內部控制器設計完全模擬硬盤,使用標準的ATA/IDE接口界面,可通過IDE接口與電腦連接,而且早已實現無驅動設計,使用非常方便。在本系統中,圖像數據通過ARM存入CF卡,因此必須實現ARM對CF卡的配置、讀寫控制等操作。ARM對CF卡驅動的接口函數由硬件接口函數和用戶使用函數組成,硬件接口函數是與系統硬件相關的函數集。主要包括硬件復位函數、ATA寄存器操作函數和ATA設備探測函數;用戶使用函數包括ATA設備驅動初始化函數、查找ATA接口設備函數、讀扇區函數、寫扇區函數、獲取設備信息、使設備立即進入待機狀態和使設備立即進入空閑狀態。由于篇幅所限,這里不再一一介紹,讀者可以根據CF卡的具體參數編寫相應的函數。 4 結束語 文中介紹了用ARM和FPGA實現的一個嵌入式實時圖像采集存儲系統的設計方案,本系統的工作溫度為O"60℃,可以實現每秒20"30幀的視頻流灰度圖像采集和存儲,能夠滿足嵌入式實時圖像采集存儲的應用要求,系統的持續工作時間取決于CF卡的存儲容量。在本系統中,圖像的采集存儲脫離了PC機,使圖像的采集存儲真正達到了實時性和嵌入式的要求。本系統可以應用在軍事射擊評價、工業產品質量檢測、醫療和生物等領域。 |