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