蚌埠网站制作公司排名,网站调用微信数据,网站图片引导页怎么做,wordpress娱乐插件在正式开始OV7725视频采集实现之前#xff0c;Bingo不得不先讲解一下OV7725的寄存器配置接口。OV7725上电会默认输出YUV422格式的视频流#xff0c;但我们希望传感器能够按照我们预期的模式工作#xff0c;我们需要配置分辨率#xff0c;配置内部时钟#xff0c;配置亮度、… 在正式开始OV7725视频采集实现之前Bingo不得不先讲解一下OV7725的寄存器配置接口。OV7725上电会默认输出YUV422格式的视频流但我们希望传感器能够按照我们预期的模式工作我们需要配置分辨率配置内部时钟配置亮度、色差、3A参数等。因此我们需要一个接口来完成OV7725寄存器的配置——这就是SCCB接口即Serial Camera Control Bus串行相机控制总线。OV7725的SCCB总线实际上就是我们常用的I2C通信总线这在前文已经提到过只不过OmniVision针对Camera的控制专门提供了一个术语。OV7725的SCCB接口有两个信号即时钟信号SCL、数据信号SDA。OV7725通过这两个信号完成寄存器的配置实现预期配置的视频流输出。Bingo曾在2012年的时候写过《从零开始走进OV7670世界》详细的介绍了OV7725的SSCB(I2C)接口的HDL初始化介绍了CMOS视频数据的采集同时介绍了YUV2RGB等内容。由于OV7760与OV7725属于OmniVision的同系列数字相机驱动方式与时序完全一样因此SCCB总线的初始化可以参照该手册。I2C/SCCB总线制方式简单器件封装形式小主要有一下几个特点(1) I2C总线只需要两条总线一条串行数据线SDA一条串行时钟线SCL(2) I2C总线不需要片选就可以实现多个设备的链接并且通过从机为唯一地址识别器件通过地址的响应完成每一个器件的配置(3) I2C是一个真正的多主机总线如果多个主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏(4) 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s快速模式下可达400kbit/s高速模式下可达3.4Mbit/s(5) 连接到相同总线的IC 数量只受到总线的最大电容400pF 限制官方手册给出了SCCB总线8Bit数据串行发送的时序图如下图所示(其中SCCB_E作为I2C的使能信号类似于SPI总线的CS信号这里我们不需要关心)SCCB总线通过串行方式发送8Bit数据先发送MSB再发送LSB与SPI总线协议的数据发送很类似(除了不需要SPI_CS)。在发送完8Bit数据后通过器件的响应信号完成一次数据的传输。很久前在《从零开始走进OV7670世界》中Bingo移植并优化了Terasic的I2C控制器但是可读性和bug实在太多因此后面花了九牛二虎之力自己大淘了一套I2C读写代码每一个代码都经过苛刻的追求无数次ModelsimCMOS测试(虽然完美是没有极限的)。在没个Sensor采集工程中的cmos_i2c_oVxxxx均可找到i2c_timing_ctrl.v文件该模块完整的描述了I2C时序实现了CMOS Sensor的SCCB寄存器读写功能。详情请仔细分析i2c_timing_ctrl.v文件Bingo在状态机的基础上完美的实现了I2C总线时序的封装接口及例化如下所示从接口例化中可见Bingo还额外的为OV7725 SCCB初始化配套的设计了寄存器接口如下表所示(部分参照了Terasic的代码)