基于CMOS圖像傳感器的視頻采集系統(tǒng)設(shè)計(jì)
2.2 I2C控制模塊
I2C(Inter-Integrate Circuit)總線是由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。用來(lái)對(duì)OV7670圖像傳感器進(jìn)行配置的SCCB和I2C是相同的協(xié)議。本系統(tǒng)采用I2C控制模塊實(shí)現(xiàn)對(duì)OV7670的控制寄存器的配置。
I2C控制模塊包括I2C時(shí)序控制模塊和OV7670配置模塊。I2C時(shí)序控制模塊用于產(chǎn)生符合標(biāo)準(zhǔn)I2C協(xié)議的SCL和SDA信號(hào),I2C傳輸時(shí)序如圖2所示。時(shí)序控制模塊每次傳輸24位數(shù)據(jù),前8位是從設(shè)備地址(本系統(tǒng)中從設(shè)備即OV7670,將其地址定義為0x42,代表寫OV7670控制寄存器),接下來(lái)的8位是從設(shè)備寄存器地址,最后8位是對(duì)OV7670控制寄存器進(jìn)行配置的數(shù)據(jù)。OV7670配置模塊對(duì)從設(shè)備地址、從設(shè)備寄存器地址及配置的寄存器值總共24位數(shù)據(jù)進(jìn)行了定義。本系統(tǒng)的I2C總線的時(shí)鐘采用20 kHz,是由50 MHz的系統(tǒng)時(shí)鐘分頻得到。本文引用地址:http://www.biyoush.com/article/159779.htm
由OV7670輸入到FPGA的視頻信號(hào)有8位圖像數(shù)據(jù)cam_data[7:0]、像素時(shí)鐘cam_pclk、行有效cam_href、幀同步cam_vsync。在對(duì)OV7670的控制寄存器進(jìn)行配置后,采用QuartusⅡ軟件提供的SignalTapⅡ邏輯分析儀觀察由OV7670輸入到FPGA的視頻信號(hào),如圖3所示。
2.3 數(shù)據(jù)采集與格式轉(zhuǎn)換模塊
利用I2C配置模塊配置完OV7670的控制寄存器以后,OV7670就能不斷輸出符合要求的8位圖像信號(hào)、像素時(shí)鐘和行幀同步信號(hào)。利用像素時(shí)鐘和行幀同步信號(hào)可以對(duì)采集到的8位RGB565圖像信號(hào)進(jìn)行處理,系統(tǒng)中主要是將采集到的前后2個(gè)8位行數(shù)據(jù)合并成一個(gè)16位數(shù)據(jù),以方便數(shù)據(jù)在后幾個(gè)模塊中的傳輸、緩存及處理。
如圖4所示RGB565時(shí)序及數(shù)據(jù)格式,一個(gè)像素占2個(gè)字節(jié),其中第1個(gè)字節(jié)的前5位用來(lái)表示R(Red),第一個(gè)字節(jié)的后3位加上第2個(gè)字節(jié)的前3位用來(lái)表示G(Green),第二個(gè)字節(jié)的后5位用來(lái)表示B(Blue)。數(shù)據(jù)采集與格式轉(zhuǎn)換模塊將FPGA采集到的數(shù)據(jù)還原成16位的像素?cái)?shù)據(jù)。本系統(tǒng)中OV7670輸入到FPGA的圖像數(shù)據(jù)一幀有240行數(shù)據(jù),在一個(gè)行有效期間有640個(gè)8位數(shù)據(jù),經(jīng)過(guò)轉(zhuǎn)換后輸出320個(gè)16位數(shù)據(jù),輸入到緩存控制模塊。
Verilog代碼如下:
評(píng)論