SCCB协议理解及实现

前记:
  众说周知,SCCB协议与IIC协议十分相似,不过IIC是PHILIPS的专利,所以OmnVision在IIC的基础上做了点小改动,然后你懂的。SCCB最主要是阉割了IIC的连续读写的功能,即每读写完一个字节就主机必须发送一个NA信号。

SCCB简介

  SCCB是欧姆尼图像技术公司(OmniVision)开发的一种总线,并广泛的应用于OV系列图像传感器上,所以一般使用OV的图像传感器都离不开SCCB总线协议。
  可以通俗地讲SCCB有两种工作模式,一主多从,一主一从模式。

  1. 一主机多从机 也即3线操作:(通过控制使能端SCCB_E控制选中的从机)
    在这里插入图片描述
  2. 一主一从 也即2线操作:(默认SCCB_E被拉低)
    在这里插入图片描述

管脚定义

可与IIC对比来看

SCCB IIC 方向 描述
SIO_E \ 主机发出 低电平有效,总线空闲时主机驱动此引脚为1,驱动为0时表示开始传输或者挂起模式
SIO_C SCL 主机发出 总线空闲时主机驱动此引脚为1;
当驱动SIO_E为0时,主机驱动此引脚为0或1;当挂起时主机驱动SIO_C为0;
SIO_D只能在SIO_C为0时发生变化。
SIO_D SDA 双向传输 当总线空闲时保持浮动,状态不固定(0、1或高阻态)
相当于数据位!

SCCB时序

  1. SCCB_E为低电平时传输有效,SIO_C为高电平时SIO_D读取数据(SIO_C为低电平时SIO_D改变)

在这里插入图片描述

  1. 开始传输的时序

在这里插入图片描述
tPRC>=15ns
tPRA>=2.5ns
2线操作的代码实现

void SCCB_Start(void)
{
   
	SCCB_SDA_OUT();		//数据线为输出模式
	SCCB_SDA=1;			//数据线高电平
	delay_us(50);
	
	SCCB_SCL=1;			//在时钟高的时候数据线由高至低
	delay_us(50);
	
	SCCB_SDA=0;
	delay_us(50);
	
	SCCB_SCL=0;			//数据线恢复低电平,单操作函数必要
	delay_us(50);
}
  1. 结束传输的时序

在这里插入图片描述
tPSC>=15ns
tPSA>=0ns
2线操作的代码实现

void SCCB_Stop(void)
{
   
	SCCB_SDA_OUT(
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值