OV7725摄像头只能作为从机,通过SCCB协议配置内置的172个寄存器。因此首先要了解的就是SCCB总线

1、SCCB协议简述

SCCB协议有两线也有三线,两线为SIO_C与SIO_D,三线为SIO_E、SIO_C与SIO_D。

2线的SCCB总线只能是一个主器件对一个从器件控制,但3线SCCB接口可以对多个从器件控制,因此当只有一个从机(slave device)时用两线,有多个从机时用三线。

其中SIO_C只能由主机配置(FPGA),SIO_D是一个三态门,双向数据线,既可以由主机控制,也可以由从机控制。

2、数据传输

当写数据到从机被定义为写传输(write transmission),当从机中读数据被定义为读传输 (read transmission),每一个传输都要有开始和结束来释放总线(start + sotp)

完整的数据传输包括两个或三个阶段,每一个阶段包含9位数据,其中高8位为所要传输的数据,最低位根据器件所处情况有不同的取值:

总结如下:
每一个阶段组成:8位数据+don't care/NA
如果是主机发送数据,即进行写操作,第九位就为don't care
如果是从机发送数据,即为读操作,第九位就为NA.

在进行主器件写操作时,全部阶段的最低位均是Don’t care bit

在进行主器件读操作时,第一阶段的最低位是自由位,第二阶段的最低位为NA,请结合第三部分好好理解

3、SCCB的读写操作

写操作是三个阶段构成一个传输的写,每一阶段都是9位,具体如下

ID地址(7位ID地址+1位读写控制+don't care) + 要写的寄存器地址(8位寄存器地址+don't care) +要写入的数据(8位数据+don't care)

要强调的是ID地址,写为8'h42,读为8'h42 , 8'h42即ID地址的读写控制位为0,8'h43即ID地址的读写控制位为1

总结为: start + ID地址(42)+ 寄存器地址 + 数据 + stop

4、读传输由2个阶段的传输组成,共有两个传输
2个阶段写传输 + 2个阶段读传输,每一相都是9位,具体如下
ID地址(7位ID地址+1位读写控制+don't care)+ FPGA要向从机写入即将要读的寄存器地址(8位寄存器地址+don't care)
ID地址(7位ID地址+1位读写控制+don't care) +从机向FPGA发送被指定寄存器里面的数据的数据(8位数据+NA)
在NA位的时候,主机要配合将数据线为驱动为高电平。
要注意的是第一个ID地址为8'h42,因为是FPGA即将要之星写操作
第二个ID地址为8'h43,因为是从机向FPGA发送数据,即执行的是读操作。
总结为: start1+ ID地址(42)+ 寄存器地址 +stop1+start 1 +ID地址(43)+ 数据 + stop2
此处为什么要有start 1和start 2 呢?
因为SCCB没有重复起始的概念,因此在SCCB的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能产生Don’t care响应信号。即每一个传输都要有开始和结束来释放总线 (start + sotp),这也是SCCB与I2C不同的一个地方。
重复起始的概念:
在主控器控制总线期间完成了一次数据通信(发送或接收)之后,如果想继续占用总线再进行一次数据通信(发送或接收),而又不释放总线,就需要利用重启动Sr信号时序。重启动信号Sr既作为前一次数据传输的结束,又作为后一次数据传输的开始。利用重启动信号的优点是,在前后两次通信之间主控器不需要释放总线,这样就不会丢失总线的控制权,即不让其他主器件节点抢占总线。
5、时序
起始信号

停止信号

继续学习,继续分享,还有好多不懂的。

转载请注明出处:http://www.cnblogs.com/aslmer/p/5965229.html

转载于:https://www.cnblogs.com/aslmer/p/5965229.html

OV7725学习之SCCB协议(一)相关推荐

  1. 软件SCCB协议学习笔记

    一.SCCB协议简介 SCCB协议是OV公司公布的摄像头用的串行总线协议,相当于一个简易的I2C协议.本文写作意图在于记录使用软件SCCB驱动OV7670模块的配置方法. 二.SCCB协议时序简介(二 ...

  2. SCCB协议学习笔记

    目录 一.前言 二.SCCB是什么 三.SCCB与IIC 四.OG02B10中的SCCB 一.前言 在配置某项目的主摄像头时,由于暂时没有现成的驱动文件,需要先根据平台其他摄像头的驱动格式进行移植,在 ...

  3. SCCB协议理解及实现

    前记:   众说周知,SCCB协议与IIC协议十分相似,不过IIC是PHILIPS的专利,所以OmnVision在IIC的基础上做了点小改动,然后你懂的.SCCB最主要是阉割了IIC的连续读写的功能, ...

  4. FPGA利用SCCB协议配置OV5640摄像头

    FPGA利用SCCB协议配置OV5640摄像头 为什么要配置摄像头 配置代码 测试代码 总结 为什么要配置摄像头 OV5640摄像头有许多工作模式,如可以工作在1080P,720P,480P分辨率的情 ...

  5. 【转】医疗业务学习笔记--DICOM协议的基础内容!!!!!!!!!!

    转自:医疗业务学习笔记--DICOM协议的基础内容 - 知乎 本文首发于"雨夜随笔"公众号,欢迎关注. DICOM协议是医疗领域对如何处理.存储.打印和传输医疗图片的一系列标准.D ...

  6. raft算法_学习分布式一致性协议:自己实现一个Raft算法

    前言 MIT6.824是麻省理工学院开设的一个很棒的分布式系统公开课程,课程的Schedule在这里 ,这门课程的学习方式主要是通过教授的 lecture 讲解.Paper阅读.FAQ答疑,以及实践l ...

  7. 蓝牙核心协议学习 -- 基带协议(Baseband)翻译最终版

    2021-10-27 蓝牙核心协议学习 -- 基带协议(Baseband) 剩余篇章已上传到资源分享,链接如下: baseband翻译.pdf-其它文档类资源-CSDN下载 baseband翻译.pd ...

  8. SCCB协议介绍与应用和OV7670摄像头的寄存器配置

    SCCB协议简介: 以OV7670的配置传输为例 OV770中,8'h42是写操作ID,8'h43是读地址 从数据传输时序可以看出,其传输的顺序是: 开始位,数据[7:0] ,X位,其中X位为任意,手 ...

  9. 蓝牙核心协议学习 -- 基带协议(Baseband)

    目录 1 概述 1.1 蓝牙时钟 1.2 蓝牙设备寻址 1.2.1 保留地址 1.3 访问码(ACCESS CODES)                                         ...

最新文章

  1. RPC协议之争和选型要点
  2. 从零到百亿互联网金融架构发展史---架构变迁
  3. word2016配置Mathtype
  4. == 和 is 的区别
  5. mininet 应用实践
  6. Ubuntu 11.04 beta 2发布!
  7. 聚焦数据安全管理——安踏信息安全管理体系实践
  8. php算数组内值的总和,怎样使用array_sum() 计算数组元素值总和
  9. java手机编程软件_手机java编程软件下载
  10. python培训 首选马哥教育
  11. bubu PC端的应用商店2 -目录结构和原理
  12. [Qt] 使用LZMA SDK完成C++的7z格式文件压缩和解压缩
  13. C语言中的强符号和弱符号
  14. Windows远程访问服务器jupyter notebook
  15. 服务器系统fluent,用云服务器算fluent
  16. unity探索者之Shader Graph所有节点详解-Utility篇
  17. 曾经的四大门户网站之一,新浪,这些年错过了三个重要的成长机会
  18. 论文阅读 | Asymmetric Bilateral Motion Estimation for Video Frame Interpolation
  19. 4.STC15W408AS单片机点亮第一个LED
  20. CTFHub_2021-第四届红帽杯网络安全大赛-Web-WebsiteManger

热门文章

  1. Jira 自定义工作流
  2. Jquery validate验证表单时多个name相同的元素只验证第一个的问题
  3. iframe显示错误页面
  4. 央行“意外“降息 专家称贷款买房者首先受益
  5. Eclipse 自动注释的设置
  6. onvif 客户端的发现
  7. S7 Linux用户管理及用户信息查询命令
  8. iphone最新款手机_泄密者称,iPhone 13将拥有苹果粉丝多年来一直想要的新功能|iphone|apple|泄密者|手机|安卓...
  9. write up杂项:眼见非实(ISCCCTF)
  10. ZCMU 1958: 机器翻译(技巧性的模拟)