【FPGA】SCCB通信协议

一. 什么是SCCB协议?

SCCB (Serial Camera Control Bus)是 OmniVision公司公布的串行摄像机控制总线协议,相当于一个简易的I2C 协议。SCCB有三线和两线之分,三线的是一主机多从机,两线的是一主机一从机。
在这里插入图片描述
在这里插入图片描述

  • SCCB_E:使能信号,低电平有效。
  • SIO_D:双向数据总线,可由主设备或从设备驱动,空闲时拉高。
  • SIO_C:单向时钟总线,只能由主设备驱动,高电平数据有效,空闲时拉高。
  • PWDN:输出/输入关闭。

二. SCCB时序分析

1. 起始信号

当SCCB_E拉低之后,SIO_D在SIO_C高电平期间拉低,表示一次数据传输开始。
在这里插入图片描述

2. 停止信号

当SCCB_E拉低之后,SIO_D在SIO_C为高电平期间拉高,表示一次数据传输结束。
在这里插入图片描述

3. 数据传输

在 SCCB协议中,一个基本传输单元称作一个相(phase),一个相包含总共9比特,前8比特为数据,它的响应信号ACK被称为一个传输单元的第9位,分为Don’t care和 NA(No ACK)。Don’t care位由从机产生;NA位由主机产生,由于SCCB不支持多字节的读写,NA位必须为高电平。SCCB没有重复起始的概念,因此在 SCCB的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能生Don’t care响应信号。

写数据到从机被定义为写传输,从机中读数据被定义为读传输,每个传输都要有开始位(start)和结束位(sotp);完整的数据传输包括两个或三个phase,每一个phase包含9位数据,其中高8位为所要传输的数据,最低位根据器件读写情况有不同的取值:
每一个阶段组成:8位数据+don’t care/NA

  • 如果是主机发送数据,即进行写操作,第9位就为don’t care;
  • 如果是从机发送数据,即为读操作,第九位就为NA。

3.1 三相写传输

ID Addr :表示从机的器件地址以及读/写控制位;0:写寄存器,1:读寄存器
Sub Addr:写控制字节,表示从机的寄存器地址;
Write Data :表示写入的1字节数据;
3个相后面的的最后1位X都是 Don’t-Care bits。

在这里插入图片描述

3.2 两相写传输:读数据第一阶段

ID Addr :表示从机的器件地址以及写控制位;
Sub Addr :表示从机的寄存器地址;
2个相后面的的最后1位X都是 Don’t-Care bits。
在这里插入图片描述

3.3 两相读传输:读数据第二阶段

ID Addr :表示从机的器件地址以及读控制位;读控制字节
Read Data:表示接收从机发送的数据;
X都是 Don’t-Care bits;NA必须为1。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值