SCCB 接口:摄像头控制的串行通信标准(上)
扫描二维码
随时随地手机看文章
在图像采集系统中,主机与图像传感器之间的控制信号交互需要一种简洁高效的通信协议。SCCB(Serial Camera Control Bus,串行摄像头控制总线)作为专为摄像头控制设计的串行通信接口,凭借其简单的硬件实现和可靠的通信机制,成为 CMOS 图像传感器领域的主流控制接口之一。本文将系统解析 SCCB 接口的通信原理、时序规范、实现方法及应用场景,揭示其在图像采集系统中的核心价值。
一、SCCB 接口的定义与定位
SCCB 接口是 OmniVision 公司为其 CMOS 图像传感器系列设备开发的专用控制总线,最初用于实现主机(如微处理器、FPGA)对图像传感器的配置与状态读取。作为一种简化的串行通信协议,SCCB 在保持与 I2C 协议兼容性的同时,针对摄像头控制场景进行了优化,具有以下核心特点:
轻量级设计:仅需两根信号线即可实现双向通信,硬件成本低
主从架构:支持单主机多从机的星形拓扑,最多可连接 127 个从设备
低速可靠:通信速率通常在 100kbps-400kbps 之间,适合控制信号传输
地址可配置:每个从设备具有唯一的 7 位地址,支持灵活的设备扩展
与通用通信接口(如 I2C、SPI)相比,SCCB 的定位更加专注:
不追求高速数据传输,而注重控制命令的可靠交互
针对摄像头寄存器操作优化了数据帧结构
简化了时序要求,降低了嵌入式系统的实现难度
这种专业化设计使 SCCB 在手机摄像头、安防监控、机器视觉等领域得到广泛应用,尤其在 OmniVision、GalaxyCore 等主流图像传感器厂商的产品中成为标准配置。
二、SCCB 接口的通信原理
1. 物理层特性
SCCB 接口的物理层设计简洁高效,主要特性包括:
信号线组成:由两根信号线构成 ——SIO_C(Serial Interface Clock,串行接口时钟)和 SIO_D(Serial Interface Data,串行接口数据),均为开漏输出,需要外部上拉电阻(通常为 4.7kΩ)
电气特性:支持 3.3V 电压域,兼容 5V 输入(通过电平转换)
传输距离:适合板级短距离通信,典型传输距离小于 1 米
抗干扰能力:差分信号设计(通过上拉电阻实现),具备基本的噪声抑制能力
这种总线结构允许单个主机通过两根信号线控制多个从设备,极大简化了硬件设计。
2. 数据帧结构
SCCB 采用帧格式传输数据,每个完整的通信周期包含地址帧和数据帧两部分:
地址帧(Address Frame)
由 8 位组成,包含 7 位从设备地址和 1 位读写方向位(R/W#)
方向位为 0 表示写操作(主机→从设备),为 1 表示读操作(从设备→主机)
示例:0x42(二进制 1000010)表示地址为 0x21 的设备,执行写操作
数据帧(Data Frame)
由 8 位数据组成,根据操作类型不同有不同含义:
写操作:表示要写入的寄存器地址或寄存器数据
读操作:表示从寄存器读出的数据
应答信号(ACK)
每传输完 8 位数据后,接收方需要返回 1 位应答信号
应答信号为低电平(0)表示接收成功,高电平(1)表示接收失败或未响应
一个完整的写寄存器操作包含三个帧:
地址帧(从设备地址 + 写方向)
数据帧(目标寄存器地址)
数据帧(要写入的数据)
读寄存器操作则包含四个帧:
地址帧(从设备地址 + 写方向)
数据帧(目标寄存器地址)
地址帧(从设备地址 + 读方向)
数据帧(读出的数据)
这种帧结构设计专门针对寄存器操作优化,使读写过程直观高效。
3. 通信时序
SCCB 的时序规范定义了信号间的时间关系,确保数据可靠传输:
关键时序参数
t_HIGH:SIO_C 高电平持续时间,最小为 4μs
t_LOW:SIO_C 低电平持续时间,最小为 5μs
t_SU:数据建立时间,SIO_D 信号在 SIO_C 上升沿前的稳定时间,最小为 100ns
t_HD:数据保持时间,SIO_D 信号在 SIO_C 上升沿后的稳定时间,最小为 100ns
t_RISE:信号上升时间,从 0.3V 到 3.0V 的时间,最大为 1μs
t_FALL:信号下降时间,从 3.0V 到 0.3V 的时间,最大为 1μs
写操作时序
主机拉低 SIO_C,开始传输周期
在 SIO_C 低电平期间,主机设置 SIO_D 为地址帧的第一位
主机释放 SIO_C(高电平),从设备采样 SIO_D 上的数据
重复步骤 2-3,传输完 8 位地址帧
主机释放 SIO_D,等待从设备返回 ACK(低电平)
按相同方式传输寄存器地址和数据
传输完成后,主机拉低 SIO_D,释放 SIO_C,产生停止条件
读操作时序
与写操作类似,但在地址帧后增加一个读方向的地址帧,且数据传输方向相反:
从设备在 SIO_C 高电平时输出数据
主机在接收完 8 位数据后,不发送 ACK 信号(通过保持 SIO_D 高电平表示)
最后由主机产生停止条件结束通信
这些时序要求比 I2C 更为宽松,降低了软件实现的难度。
4. 通信过程
SCCB 的通信过程遵循主从应答机制,以写寄存器操作为例:
起始条件:主机先拉低 SIO_D,再拉低 SIO_C,标志通信开始
发送设备地址:主机在 SIO_C 时钟控制下,逐位发送 8 位地址帧(7 位地址 + 1 位写方向)
从设备应答:从设备接收到匹配地址后,在第 9 个时钟周期拉低 SIO_D 作为应答
发送寄存器地址:主机继续发送 8 位寄存器地址,从设备应答
发送数据:主机发送 8 位数据到指定寄存器,从设备应答
停止条件:主机先拉高 SIO_C,再拉高 SIO_D,标志通信结束
读寄存器操作多出一个地址切换步骤:在发送寄存器地址后,主机重新发送带读方向的设备地址,然后接收从设备返回的数据。