当前位置:   article > 正文

【FPGA】SCCB通信协议_sccb协议

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。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/881565
推荐阅读
相关标签
  

闽ICP备14008679号