基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計(jì)
摘要:提出了一種采用Altera公司CycloneⅡ系列的FPGA作為主控芯片,采用OV7670這款CMOS圖像傳感器作為視頻信號(hào)源并采用SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)作為數(shù)據(jù)緩存的實(shí)用方案,實(shí)現(xiàn)了對(duì)圖像傳感器寄存器配置、圖像傳感器輸出信號(hào)采集、圖像數(shù)據(jù)格式轉(zhuǎn)換、圖像數(shù)據(jù)緩存及最終在VGA顯示器上進(jìn)行圖像顯示的一系列過(guò)程。該視頻采集系統(tǒng)設(shè)計(jì)能夠很好地滿足實(shí)時(shí)圖像的輸出需求。
關(guān)鍵詞:視頻采集;OV7670;FPGA;SRAM;VGA
CMOS與CCD傳感器是目前被普遍采用的2種圖像傳感器。CMOS圖像傳感器可通過(guò)CMOS(互補(bǔ)金屬氧化物半導(dǎo)體)技術(shù)將像素陣列與外圍支持電路(如圖像傳感器核心、單一時(shí)鐘、所有的時(shí)序邏輯、可編程功能和A/D轉(zhuǎn)換器)集成在同一塊芯片上。與CCD(電容耦合器件)圖像傳感器相比,CMOS圖像傳感器將整個(gè)圖像系統(tǒng)集成在一塊芯片上,具有體積小、重量輕、功耗低、編程方便、易于控制等優(yōu)點(diǎn),并且可通過(guò)I2C,SPI等接口配置其工作方式等功能,可控性強(qiáng)。所以CMOS圖像傳感器在消費(fèi)類電子、汽車電子、工業(yè)控制、圖像處理等領(lǐng)域的應(yīng)用越來(lái)越廣泛。
通常視頻數(shù)據(jù)流需要處理的數(shù)據(jù)量大,而且對(duì)于實(shí)時(shí)性的要求也很高,圖像的采集和數(shù)據(jù)處理速度直接影響后續(xù)的圖像顯示質(zhì)量。而可編程邏輯器件FPGA的快速發(fā)展使之在視頻圖像采集及圖像的無(wú)損傳輸領(lǐng)域具有得天獨(dú)厚的優(yōu)勢(shì)。因此,本系統(tǒng)針對(duì)OV7670這款CMOS圖像傳感器,采用Altera公司CycloneⅡ系列的FPGA作為主控芯片,來(lái)實(shí)現(xiàn)視頻數(shù)據(jù)的無(wú)損傳輸及顯示。
1 系統(tǒng)總體結(jié)構(gòu)和工作原理
本視頻采集系統(tǒng)采用OmniVision公司的OV7670數(shù)字圖像傳感器提供數(shù)字視頻信號(hào),采用Altera公司CycloneⅡ系列的FPGA作為主控芯片,并采用單片SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)作為數(shù)據(jù)緩存,將從FPGA輸出的數(shù)字信號(hào)經(jīng)過(guò)D/A轉(zhuǎn)換換后輸入到VGA顯示器上進(jìn)行顯示。其總體結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)的工作原理為:系統(tǒng)上電后,F(xiàn)PGA通過(guò)標(biāo)準(zhǔn)SCCB(Serial Camera Control Bus)接口對(duì)圖像傳感器芯片的控制寄存器進(jìn)行配置,設(shè)置它的工作方式(如輸出數(shù)據(jù)格式、輸出像素時(shí)鐘、曝光時(shí)間等),在本系統(tǒng)中將圖像傳感器輸出圖像格式設(shè)置為RGB565格式;對(duì)芯片初始化完畢后,F(xiàn)PGA為圖像傳感器提供25 MHz的主時(shí)鐘,實(shí)時(shí)讀出圖像傳感器的行、幀同步信號(hào)以及像素時(shí)鐘和8位圖像數(shù)據(jù)信號(hào);FPGA中數(shù)據(jù)采集與格式轉(zhuǎn)換模塊將讀入的圖像數(shù)據(jù)實(shí)時(shí)兩兩拼接轉(zhuǎn)換成16位RGB數(shù)據(jù),由于圖像數(shù)據(jù)要進(jìn)行跨時(shí)鐘域傳輸,需要由緩存控制模塊中的FIFO進(jìn)行緩沖,然后送到SRAM存儲(chǔ),同時(shí)VGA控制模塊產(chǎn)生VGA顯示時(shí)序,在需要將視頻圖像顯示時(shí)由VGA控制模塊產(chǎn)生讀信號(hào),通過(guò)FIFO從SRAM中讀出圖像數(shù)據(jù),圖像數(shù)據(jù)最終經(jīng)D/A轉(zhuǎn)換送到VGA顯示器進(jìn)行顯示。
2 系統(tǒng)各模塊介紹
2.1 圖像傳感器OV7670
本視頻采集系統(tǒng)采用OmniVision公司的OV7670這款CMOS圖像傳感器來(lái)采集視頻,為系統(tǒng)提供數(shù)字視頻信號(hào)。
OV7670圖像傳感器體積小,工作電壓低,提供單片VGA攝像頭和影像處理器的所有功能。通過(guò)SCCB總線控制,可以輸入整幀、子采樣、取窗口等方式的各種分辨率8位影像數(shù)據(jù)。所有圖像處理功能過(guò)程包括伽瑪曲線、白平衡、飽和度、色度等都可以通過(guò)SCCB接口編程。而SCCB是和I2C相同的一個(gè)協(xié)議。在本系統(tǒng)中采用Verilog語(yǔ)言描述的I2C配置模塊對(duì)OV7670的控制寄存器進(jìn)行配置。
OV7670共有201個(gè)可供配置的控制寄存器,下面對(duì)幾個(gè)比較重要的控制寄存器進(jìn)行說(shuō)明。
CLKRC(寄存器地址0x11):配置OV7670輸出像素時(shí)鐘相對(duì)于外部(本系統(tǒng)中為FPGA)提供給OV7670圖像傳感器主時(shí)鐘的分頻。OV7670輸出的像素時(shí)鐘需要輸入FPGA用作數(shù)據(jù)處理的時(shí)鐘。
COM7(寄存器地址0x12):設(shè)置圖像的輸出格式,240)RGB565格式等??梢詫D像分辨率配置成從40×30到VGA分辨率的各尺寸,并且可以將圖像數(shù)據(jù)格式配置成YUV,RGB565,Bayer RGB RAW,Processed Bayer RAW等。這個(gè)寄存器的最高位是用來(lái)軟件復(fù)位所有寄存器的值的。
SCALING_XSC(寄存器地址0x70)和SCAUNG_YSC(寄存器地址0x71):主要在調(diào)試的時(shí)候使用,分別將SCALING_XSC和SCALING_YSC的最高位配置為1和0,就可以讓圖像傳感器輸出8色彩帶。這2個(gè)寄存器的其他位分別用于設(shè)置圖像的水平縮放系數(shù)和垂直縮放系數(shù)。
評(píng)論