CMOS圖像采集系統普遍存在圖像質量問題,如果沒有對圖像進行專門的處理,則圖像質量難以保障。近些年來,隨著SoC技術的快速發展,在圖像采集和處理領域,出現了SoC影像傳感器,它集成CMOS傳感器和圖形處理器功能,可以得到令人非常滿意的圖像質量。本文設計的視頻采集系統采用了SoC成像芯片MT9M111和USB2.0接口芯片CY7C68013。 系統結構 本系統的原理框圖如圖1所示。當圖像傳感器開始工作后,先將采集到的數據通過FPGA控制邏輯存儲到SRAM1中,一幀圖像的采集/存儲過程結束后,SRAM1進入寫結束狀態。此時切換SRAM,SRAM2繼續存儲采集到的數據,同時,SRAM1處于可讀狀態,由FPGA里的控制邏輯控制,將SRAM1中的數據傳輸到USB芯片,然后傳輸到主機。本系統采用雙SRAM結構和乒乓機制,兩片存儲器交替工作,使圖像的采集和傳輸并行進行。雙幀存結構不僅提高了系統的速度,而且,由于在FPGA里實現各種圖像處理的算法大都需要比較大的存儲空間,所以兩個大容量SRAM在實現算法時可以充當外部緩存。 MT9M111 本系統采用美光公司推出的集成CMOS傳感器和圖形處理器的SoC產品MT9M111。MT9M111是低功耗、低成本漸進掃描CMOS圖像傳感器;130萬像素分辨率(1280H×1024V);1/3英寸光學格式;全分辨率15fps的功耗為170mW,VGA分辨率30fps的功耗為90mW。MT9M111采用低漏電DRAM工藝,配備了美光的DigitalClarity專利技術,即使在最差的光照條件下也能提供清晰明亮的彩色圖像。MT9M111具有較低的暗電流,并降低了色度/亮度干擾和瞬間噪聲。MT9M111的嵌入可編程圖像流處理器提供的功能包括色彩恢復和修補、自動曝光、白平衡、鏡頭陰影修正、增加清晰度、可編程灰度修正、黑暗電平失調修正、閃爍避免、連續調整濾光尺寸、平滑的數字變焦、快速自動曝光模式和不工作時缺陷修正等。而且,還配備了兩線串行接口,USB芯片可以通過這兩線串口對其進行配置。 IS61WV20488 與圖像處理有關的SRAM參數主要是SRAM 的讀寫速度和容量。在容量方面,本系統采集圖像的最大分辨率為1280×1024,數據寬度為8位,2M×8bit的SRAM可以滿足存放一幀圖像數據的要求。SRAM的讀寫速度一般為12ns、15ns、20ns或者更慢,由于SRAM的讀寫速度直接影響整個圖像處理系統的時鐘,所以,SRAM的讀寫速度越快越好。本系統選用了ISSI公司的IS61WV20488,芯片容量為2M×8bit。 CY7C68013 圖像數據傳輸部分采用Cypress公司推出的專門用于USB2.0的接口芯片CY7C68013。該芯片包括帶815kB 片上RAM 的增強型8051 處理器(與標準8051 系列兼容,速度提高3"5倍)、4kB FIFO 存儲器和通用可編程接口I2C 總線、串行接口引擎( S IE ) 以及USB2.0 收發器。 圖1 基于SoC影像傳感器的視頻采集系統 系統軟/硬件設計 系統軟/硬件設計由3部分構成:圖像采集/存儲模塊、圖像傳輸模塊和USB驅動/主機應用程序模塊。 圖像采集/存儲模塊 該模塊主要由FPGA的控制邏輯將成像芯片MT9M111采集到的圖像數據實時地傳送到SRAM中。在系統中采用雙幀存結構,每個由一片IS61WV20488 SRAM構成,能夠存放一幀1280×1024分辨率的圖像數據。由于采用了乒乓機制,兩片存儲器之間交替工作,從而使圖像的采集和傳輸并行進行。為確保在任何時刻只有一片SRAM可以讀取采集到的圖像數據,設置了一個讀互斥鎖,同樣,只有一個SRAM可接收采集到的圖像數據,因此,又設置了一個寫互斥鎖。需要注意的是,由于圖像傳感器的圖像數據輸出速度要比USB2.0傳輸速度慢,所以,當讀完SRAM2的數據以后,需要等待另一片SRAM1完成寫圖像數據后,才可以向SRAM2寫入下一幀圖像數據,而SRAM1無需等待便可以直接進行讀取圖像數據的工作,如此循環往復,實現了并行工作,有效地提高了系統的工作效率。圖2為系統控制電路的原理框圖,FPGA內部各個模塊均采用Verilog HDL編寫。 圖2 FPGA控制電路框圖 圖像傳輸模塊 采集完一幀圖像后,要經過USB時鐘信號控制模塊將外部RAM中的圖像數據讀入到主機。在本圖像采集系統中,使用CY7C68013的Slave FIFO異步工作方式,把FIFO配置成和EP2端口相連、每個數據包1024字節、4緩沖的方式,塊傳輸模式。這樣的設置可以滿足系統要求,同時也有效地利用了內部的4kB FIFO來傳輸采集到的圖像數據,系統控制使用了FALGB信號引腳,用來報告“FIFO滿”的狀態,默認為低電平有效。本文采用的是自動輸入方式,當FIFO中的數據滿一定量時,EZ-USB-FX2就直接通過FIFO把數據傳送到USB收發器,而不經過CPU的干預,這樣就提高了傳輸速度,本系統當FIFO滿1kB時開始自動發送。 USB驅動和主機應用程序模塊 USB設備驅動程序的開發是USB系統開發的難點,尤其是在本系統傳輸數據量大且速度要求高的情況下,就要編寫出高效的USB設備驅動程序,才能保證高分辨率圖像的實時傳輸。本系統采用DDK來開發WDM驅動程序。實際上,USB 客戶驅動程序中包含大量的例程,對開發驅動程序有很大的幫助。主機應用程序的主要功能是通過USB接口讀取圖像數據并實時顯示動態圖像.為提高主機應用程序的效率,可以使用雙線程。 結語 本系統采用具有130萬像素的影像傳感器MT9M111,保證了圖像質量,采用USB2.0接口芯片CY7C68013保證了圖像的實時傳輸,且設計靈活,為實現各種圖像處理算法提供了軟/硬件支持。 |