【博文连载】SCCB(I2C)初始化时序介绍

在正式开始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读写代码,每一个代码都经过苛刻的追求,无数次Modelsim+CMOS测试(虽然完美是没有极限的)。在没个Sensor采集工程中的cmos_i2c_oVxxxx,均可找到i2c_timing_ctrl.v文件,该模块完整的描述了I2C时序,实现了CMOS Sensor的SCCB寄存器读写功能。详情请仔细分析i2c_timing_ctrl.v文件,Bingo在状态机的基础上完美的实现了I2C总线时序的封装,接口及例化如下所示:
从接口例化中可见,Bingo还额外的为OV7725 SCCB初始化配套的设计了寄存器接口,如下表所示(部分参照了Terasic的代码):

 

(0)

相关推荐

  • SPI

    折叠 编辑本段 基本协议 折叠 SPI协议概括 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时).也是所有基于SPI ...

  • OV7725学习之SCCB协议(一)

    OV7725摄像头只能作为从机,通过SCCB协议配置内置的172个寄存器.因此首先要了解的就是SCCB总线 1.SCCB协议简述 SCCB协议有两线也有三线,两线为SIO_C与SIO_D,三线为SIO ...

  • 【博文连载】PCIe扫盲——中断机制介绍(MSI-X)

    PCI总线自3.0版本开始支持MSI-X机制,对MSI做出了一些升级和改进,以克服MSI机制的三个主要的缺陷: 1.     随着系统的发展,对于特定的大型应用,32个中断向量不够用了(参考前一篇文章 ...

  • 【博文连载】PCIe扫盲——中断机制介绍(MSI)

    前面的文章中介绍过,MSI本质上是一种Memory Write,和PCIe总线中的Message概念半毛钱关系都没有.并且,MSI的Data Payload也是固定的,始终为1DW. 由于MSI也是从 ...

  • 【博文连载】PCIe扫盲——中断机制介绍(INTx)

    一个简单的PCI总线INTx中断实现流程,如下图所示. 1.     首先,PCI设备通过INTx边带信号产生中断请求,经过中断控制器(Interrupt Controller,PIC)后,转换为IN ...

  • 【博文连载】Wishbone总线标准介绍

    Wishbone名字的由来 根据美国韦伯斯特(Webster,1758-1843,美国词典编辑家)词典,WISHBONE是指大多数鸟类胸骨前的一块叉状型的锁骨.在名字定义初期,Silicore公司设想 ...

  • 【博文连载】边缘检测算法介绍

    所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征.边缘存在于目标.背景和区域之间,所以,它是图像分割所依赖的最重要的依据.由于边缘是位置的标志,对灰度的变化不敏感,,因此,边缘 ...

  • 【博文连载】中值滤波算法的介绍

    言归正传,我们先挑一个相对最简单的滤波算法(其实均值滤波更简单,但是它对边缘的保持太差,那就稍微努力点用中值滤波吧).进行中值滤波不仅可以去除孤点噪声,而且可以保持图像的边缘特性,不会使图像产生显著的 ...

  • 【博文连载】Bingo版HDL-VIP时序约定

    在6.3节中Bayer恢复RGB,其实我们已经或多或少的接触到Bingo设计的VIP模块了.并且我们通过CMOS_RGB565_Capture模块(当然RAW.YCbCr模式的采集,接口不变),已经得 ...

  • 【博文连载】Cypress CY7C68013 介绍

    由于现在的ARM大部分都集成了USB接口,而FPGA由于纯逻辑电路(不要拿异构FPGA比如MPSOC等说事),想要用Verilog HDL设计一个USB2.0内核难度相当大,并且还需要一个PHY,因此 ...

  • 【博文连载】OV7725寄存器介绍

    首先介绍一下OV7725的寄存器.OV7725总共有172个寄存器,作为CMOS Sensor的工作模式的配置.而这172个寄存器,有些只读,有些则同时支持读写功能.在传感器正常工作工作前,必须进行寄 ...