OV7620
HQ7620攝像頭模組是基於Omnivision公司的CMOS圖像感測器--- OV7620的方案設計;1/3英寸數字式CMOS圖像感測器OV7620,總有效像素單元為664(水平方向)×492(垂直方向)像素;內置10位雙通道A/D轉換器,輸出8點陣圖像數據;具有自動增益和自動白平衡控制,能進行亮度、對比度、飽和度、γ校正等多種調節功能;其視頻時序產生電路可產生行同步、場同步、混合視頻同步等多種同步信號和像素時鐘等多種時序信號;5V電源供電,工作時功耗<120mW,待機時功耗<10μW。可套用於數位相機、電腦攝像頭、可視電話、第三代網路攝像機、手機、智慧型型安全系統、汽車倒車雷達、玩具,以及工業、醫療等多種用途。
OV7620是1/3”CMOS彩色/黑白圖像感測器。它支持連續和隔行兩種掃描方式,VGA與QVGA兩種圖像格式;最高像素為664×492,幀速率為30fps;數據格式包括YUV、YCrCb、RGB三種,能夠滿足一般圖像採集系統的要求。
基本參數:
大 小:33x27x24(mm)
電 源:DC+5V ±5%
掃描方式:逐行/隔行掃描
最低照度:2.5 lux at f1.4 (3000k)
信 噪 比:> 48 dB
最大像素:(H)664 x (V)492; 預設有效像素:(H)640 x (V)480
數據輸出格式:
YCrCb 16bit/8bit selectable
60Hz 16 Bit YCrCb 4:2:2 - 640x480
60Hz 8 Bit YCrCb 4:2:2 - 640x480
RGB Raw Data Digital Output 16Bit/8Bit selectable
CCIR601, CCIR656, ZV 連線埠:支持8/16 位視頻數據
SCCB接口:最大速率支持400 kBit/s
YCrCB或YUV輸出格式:支持TV或監視器顯示
OV7620掃描方式
OV7620是CMOS彩色/黑白圖像感測器。它支持連續和隔行兩種掃描方式,VGA與QVGA兩種圖像格式;最高像素為664492,幀速率為30fp8;數據格式包括YUV、YCrCb、RGB三種,能夠滿足一般圖像採集系統的要求。
OV7620內部可程式功能暫存器的設定有上電模式和SCCB編程模式。
OV7620的控制採用SCCB(SeriaI Camera ControlBus)協定。SCCB是簡化的I2C協定,SIO-l是串列時鐘輸入線,SIO-O是串列雙向數據線,分別相當於I2C協定的SCL和SDA。SCCB的匯流排時序與I2C基本相同,它的回響信號ACK被稱為一個傳輸單元的第9位,分為Don’t care和NA。Don’t care位由從機產生;NA位由主機產生,由於SCCB不支持多位元組的讀寫,NA位必須為高電平。另外,SCCB沒有重複起始的概念,因此在SCCB的讀周期中,當主機傳送完片內暫存器地址後,必須傳送匯流排停止條
件。不然在傳送讀命令時,從機將不能產生Don’t care回響信號。
由於I2C和SCCB的一些細微差別,所以採用GPIO模擬SCCB匯流排的方式。SCL所連線的引腳始終設為輸出方式,而SDA所連線的引腳在數據傳輸過程中,通過設定IODIR的值,動態改變引腳的輸入/輸出方式。SCCB的寫周期直接使用I2C匯流排協定的寫周期時序;而SC-CB的讀周期,則增加一個匯流排停止條件。
OV7620功能暫存器的地址為0x00~0x7C(其中,不少是保留暫存器)。通過設定相應的暫存器,可以使OV7620工作於不同的模式。例如,設定OV7620為連續掃描、RGB原始數據16位輸出方式,需要進行如下設定:
I2CSendByte()為寫暫存器函式,它的第1個參數OV7620為宏定義的晶片地址0x42,第2個參數為片內暫存器地址,第3個參數為相應的暫存器設定值。
OV7620有4個同步信號:VSYNC(垂直同步信號)、FODD(奇數場同步信號)、HSYNC(水平同步信號)和PCLK(像素同步信號)。當採用連續掃描方式時,只使用VSYNC和HSYNC、PCLK三個同步信號,還引入了HREF水平參考信號。
LPC2210的3個外部中斷引腳分別作為3個同步信號的輸入,相應的中斷服務程式分別為Vsync_IRQ()、Hsync_IRQ()和Pclk_IRQ()。在記憶體中定義一個二維數組存儲圖像數據,一維用變數y表示,用於水平同步信號計數;二維用變數x表示,用於像素同步信號計數。圖像採集的基本流程
當用SCCB初始化好OV7620後,使能VSYNC對應的中斷,在Vsync_IRQ()中斷服務程式中判斷是否已取得一幀數據。若是,則在主程式的循環體中進行數據處理;若不是,則使能HSYNC對應的中斷,並將y置為O。在Hsync_IRQ()中斷服務程式中,判斷HREF的有效電平,若有效,則y加1,x置為O,並使能PCLK對應的中斷。在Pclk_IRQ()中斷服務程式中,判斷HREF的有效電平,若有效,則z增加,同時採集一個像素點的圖像數據。
在OV7620的3個同步信號中,PCLK的周期最短。當OV7620使用27 MHz的系統時鐘時,默認的PCLK的周期為74 ns。而LPC2210的中斷回響時間遠遠大於這個值。LPC2210的最大中斷延遲時問為27個處理器指令周期,最小延遲時問為4個指令周期,再加上中斷服務時間、現場恢復時間等,完成一次中斷回響的時問要大於7~30個指令周期。當LPC2210使用最高系統頻率60 MHz時,它的中斷回響時間遠大於O.2~0,6 μs,所以只能將OV7620的PCLK降頻。通過設定時鐘頻率控制暫存器,可將PCLK的周期設為4μs左右。
OV7620作為主設備的工作方式
當OV7620工作於主設備方式時,它的YUV通道將連續不斷地向匯流排上輸出數據。如果將OV7620的YUV通道直接接在LPC2210的DO~D15數據匯流排上,則會干擾數據匯流排,使LPC2210不能正常運行;如果使用74HC244等隔離,分時使用數據匯流排的方法,則會大大降低系統的運行速度,使得LPC2210不能及時取走匯流排上的數據,造成圖像數據不完整。由於LPC2210的數據匯流排寬度為32位,而Flash和SRAM僅占用了低16位數據線D0~D15,因此可以採用圖l中的方法,將空閒的高16位數據線D16~D31設為GPIO,用於採集OV7620輸出的16點陣圖像數據。
OV7620採用16位輸出方式時,Y通道和UV通道的數據輸出格式如表l所列。從表l中可以看出,每一行Y通道和UV通道交替輸出上一行的重複數據和本行的新數據。而在一行之內,B數據只在奇數列出現,R數據只在偶數列出現。
OV7620套用舉例
下面以一個55的像素點陣為例,詳細介紹圖像數據的恢復。
首先定義一個515的位元組型數組,在Pclk_IRQ()中斷服務程式中讀取55個像素點的圖像數據;然後對圖像數據進行插值,奇數點則在數組的連續3個位元組中存入B、G、0,偶數點則存入O、G、R;最後對當前行的每一個位元組與下一行對應列的每一個位元組求平均值,即可算出當前行的RGB值。而在每一行內,奇數點的R數據和偶數點的B數據可通過分別對其兩側的2個點的R和B數據求平均值得到。
這樣,一幅圖像就恢復好了。可以直接存成二進制檔案(本系統採用串口輸出到PC進行顯示),或者增加BMP點陣圖檔案頭信息,存成biBitCouNt=24的DIB點陣圖檔案;也可用LPC2210對此圖像數據進行進一步的處理,如指紋識別等。
如果採用帶有DMA控制器,並且具有更高處理速度的ARM晶片,可大大提高整個圖像採集系統的速度。例如,採用具有ARM9核心的S3C2410,其最高系統頻率達203 MHz,完成一次DMA傳送的時間約為30 ns。小於默認的PCLK的周期74 ns,可以實現30 fps的圖像採集速度。 與搭配OV511+或CPLD/FPGA的圖像採集系統相比,此圖像採集系統極大地簡化了系統結構,降低了系統設計成本,縮短了開發周期;圖像數據的採集與處理均由ARM晶片完成,因而降低了數據中轉過程中傳輸錯誤的幾率,提高了系統的可靠性。