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