SCCB(Serial Camera Control Bus)是和I2C相同的一个协议。 SIO_C和SIO_D分别为SCCB
总线的时钟线和数据线。目前,SCCB
总线通信协议只支持100Kb/s或400Kb/s的传输速度,并且支持两种地址形式:①从设备地址(ID Address,8bit),分为读地址和写地址,高7位用于选中芯片, 第0位是读/写控制位(R/W),决定是对该芯片进行读或写操作;②内部
寄存器单元地址(Sub_ Address,8bit),用于决定对内部的哪个寄存器单元进行操作,通常还支持地址单元连续的多
字节顺序读写操作。SCCB
控制总线功能的实现完全是依靠SIO_C、SIO_D两条总线上电平的状态以及两者之间的相互配合实现的。SCCB
总线传输的启动和停止条件如右图
SCCB总线时序图
过程:采用简单的三相(Phase)写数据的方式,即在写
寄存器的过程中先发送OV7649的ID地址(ID Address),然后发送写数据的目地寄存器地址(Sub_address),最后发送要写入的数据(Write Data),见图3。如果给连续的
寄存器写数据,写完一个寄存器后,OV7649会自动把寄存器地址加1,程序可继续向下写,而不需要再次输入ID地址,从而三相写数据变为了两相写数据,由于本系统只需对有限个不连续寄存器进行配置,如果采用对全部寄存器都加以配置这一方法的话,会浪费很多时间和资源,所以我们只对需要更改数据的寄存器进行写数据。对于每一个需更改的
寄存器,都采用三相写数据的方法。