SCCB接口

文章目录

  • 概述
  • 引脚
  • 传输时序
    • 起始/结束信号
      • 三线模式
      • 两线模式
  • 传输周期
    • 3阶段写传输周期
    • 2阶段写传输周期
    • 2阶段读传输周期
    • 阶段一 ID Address
    • 阶段二 子地址/读数据
    • 阶段三 写数据
  • SCCB与IIC区别
  • 未完待续(还有代码)...

概述

SCCB(Serial Camera Control Bus,串行摄像头控制总线)是由OV(OmniVision的简称)公司定义和发展的三线式串行总线,该总线控制着摄像头大部分的功能,包括图像数据格式、分辨率以及图像处理参数等。结构框图如下所示:

在这里插入图片描述

引脚

在这里插入图片描述

OV公司为了减少传感器引脚的封装,现在SCCB总线大多采用两线式接口总线,包括SIO_C串行时钟输入线和SIO_D串行双向数据线,分别相当于IIC协议的SCL信号线和SDA信号线。SIO_C的最小时间为10us,即最大频率为100K。一般来说,100K-400K之间都可以。
在这里插入图片描述

传输时序

在这里插入图片描述

起始/结束信号

三线模式

  • 起始:SCCB_E由高变低
  • 结束:SCCB_E由低变高

两线模式

  • 起始:SIO_C为高时,SIO_D由高变低
  • 结束:SIO_C为高时,SIO_D由低变高

参数说明

  • tPRC:SCCB_E拉低之前,SIO_D必须保持高电平的最短时间,15ns
  • tPRA:SIO_D拉低之前,SCCB_E必须保持低电平的最短时间,1.25us
  • tPSA:SCCB_E拉高之前,SIO_D必须保持高电平的最短时间,15ns
  • tPSC:SIO_D拉低之前,SCCB_E必须保持低电平的最短时间,0ns

在这里插入图片描述

传输周期

每个阶段包含9bits,高位优先传输,第9bit为 Don’t care 或 NA

在这里插入图片描述

3阶段写传输周期

用于主设备写单byte数据至从设备

  • 第一阶段:传输从设备地址
  • 第二阶段:传输写寄存器地址
  • 第三阶段:传输写数据
  • 三阶段的第9bit均为Don’t care

在这里插入图片描述

2阶段写传输周期

用于指示从设备读寄存器地址

  • 读数据前需要先指明从设备读寄存器地址

  • 两阶段的第9bit均为Don’t care

在这里插入图片描述

2阶段读传输周期

阶段一 ID Address

主设备通过阶段1来识别所选的从设备,以便读取或写入数据。每个从设备都有一个唯一的ID地址,由7位组成,从高到低依次编号为位7到位1。第8位(即位0)是读/写选择器位,用于指定当前周期的传输方向。逻辑0表示写入周期,逻辑1表示读取周期。

  • SIO_D_OE_M、SIO_D_OE_S低有效,分别为主设备和从设备的I/O使能信号
  • SIO_D_OE_S 先变为低,即从设备输出SIO_D信号,主设备作为输入端
  • tCYC :单bit传输周期,最短10us,对应时钟频率100KHz

在这里插入图片描述

阶段二 子地址/读数据

在阶段2中,主设备向所选的从设备发送子地址信息。子地址用于指定要读取或写入的特定寄存器地址。


子地址

在这里插入图片描述


读数据

第9bit 主设备回复 NA(逻辑1)

在这里插入图片描述

阶段三 写数据

在阶段3中,主设备向所选的从设备发送数据信息。如果是写入周期,则主设备将数据写入所选寄存器地址;如果是读取周期,则从设备将请求数据发送回主设备。

在这里插入图片描述

SCCB与IIC区别

  • SCCB的应答位称为X,表示“Don’t care”,而IIC应答位称为ACK。

  • SCCB只能单次读,而IIC除了单次读还支持连续读。

  • SCCB读操作中间有stop,而IIC读操作中间可以有stop也可以不需要stop,具体表现如下

SCCB读:start_1 + phase_1 + phase_2 + stop_1 + start_2 + phase_1+ phase_2 + stop_2
IIC读:start_1 + phase_1 + phase_2 + + start_2 + phase_1 + phase_2+ stop_2

除去上面三点,SCCB和IIC再无区别,因此如果只需要配置寄存器(只用到写),可以直接拿IIC的时序来当做SCCB用,如果需要读,读操作中间必须有一个stop。

  • start_2 + phase_1 + phase_2+ stop_2

除去上面三点,SCCB和IIC再无区别,因此如果只需要配置寄存器(只用到写),可以直接拿IIC的时序来当做SCCB用,如果需要读,读操作中间必须有一个stop。

未完待续(还有代码)…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/341476.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【极数系列】Flink 初相识(01)

# 【极数系列】Flink 初相识(01) 引言 Flink官网:https://flink.apache.org/ Flink版本:https://flink.apache.org/blog/ Flink文档:https://ci.apache.org/projects/flink/flink-docs-release-1.12/ Flink代码库…

Redis(五)管道

文章目录 官网总结Pipeline与原生批量命令对比Pipeline与事务对比使用Pipeline注意事项 官网 https://redis.io/docs/manual/pipelining/ Pipeline是为了解决RTT往返回时,仅仅是将命令打包一次性发送对整个Redis的执行不造成其它任何影响 总结 Pipeline与原生批量…

Med-YOLO:3D + 医学影像 + 检测框架

Med-YOLO:3D 医学影像 检测框架 提出背景设计思路网络设计训练设计讨论分析 魔改代码:加强小目标检测总结 提出背景 论文链接:https://arxiv.org/abs/2312.07729 代码链接:https://github.com/JDSobek/MedYOLO 提出背景&…

flutter设置windows是否显示标题栏和状态栏和全屏显示

想要让桌面软件实现全屏和不显示状态栏或者自定义状态栏,就可以使用window_manager这个依赖库,使用起来还是非常方便的,可以自定义显示窗口大小和位置,还有设置标题栏是否展示等内容,也可以设置可拖动区域。官方仓库地…

<C++>STL->list

list的介绍 list list是一个类模板,第一个模板参数为存储数据类型;第二个模板参数为空间适配器list是一个可以在常数时间内完成任意位置的插入和删除的顺序容器。list容器是以双链表的形式实现的;双链表可以将其包含的每个元素存储在不同且…

Java开发工具:IntelliJ IDEA 2023 for Mac中文激活

IntelliJ IDEA 2023是一款由JetBrains开发的强大的集成开发环境(IDE)软件,适用于多个编程语言。它旨在提高开发人员的生产力和代码质量。 软件下载:Java开发工具:IntelliJ IDEA 2023 for Mac中文激活 IntelliJ IDEA 20…

Docker入门学习

1、docker简介 1.1什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,它是基于 dotCloud 公司多年云服务技术的一次革新,并于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitH…

Maven工程继承和聚合关系

1. Maven工程继承关系 1.1 继承概念 Maven 继承是指在 Maven 的项目中,让一个项目从另一个项目中继承配置信息的机制。继承可以让我们在多个项目中共享同一配置信息,简化项目的管理和维护工作。 1.2 继承作用 在父工程中统一管理项目中的依赖信息。 …

Kafka(三)【Broker 存储】

目录 前言 Kafka Broker 1、工作流程 1.1、Zookeeper 存储的 Kafka 信息 1.2、Kafka Broker 的总体工作流程 1.3、Broke 重要参数 2、Kafka 副本 2.1、副本基本信息 2.2、Keader 选举流程 2.3、Leader 和 Follower 的故障处理细节 Follower 故障 Leader 故障&#x…

GAMMA处理数据(五)

1、差分干涉 命令:SLC_diff_int 2、相干性估计 命令:cc_ad 3、地形相位去除 因为这个错误:浪费了大把时间,到处百度,bing,怀疑是脑子糊涂了,我的参数输入错误了,命令叫输入par文件…

智能合约:Web3的商业合作新模式

随着区块链技术的发展,智能合约在Web3时代崭露头角,成为商业合作中的全新模式。这一技术不仅重新定义了商业合作的方式,还为各行各业带来了更加高效、透明和安全的商务交往。本文将深入探讨智能合约在Web3时代的崭新商业合作模式,…

【一站解决您的问题】mac 利用命令升级nodejs、npm、安装Nodejs的多版本管理器n、nodejs下载地址

一:下载nodejs 官网地址,点击下载稳定版 https://nodejs.org/en 如果官网下载特别慢,可以点击这个地址下载 点击这里 https://nodejs.cn/download/current/ 安装完成后,就包含了nodejs 和 npm。此时您的版本就是下载安装的版本…

Redis 面试题 | 05.精选Redis高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

STM32WLE5JC 低功耗模式

低功耗模式 该器件支持多种功耗模式,以实现低功耗、短启动时间、可用外设和可用唤醒源之间的最佳折衷。 默认情况下,在系统或上电复位后,微控制器处于运行模式,范围1: 休眠模式:CPU时钟关闭,…

使用PSIM软件生成DSP28335流水灯程序

最近在学习DSP28335芯片,然后在使用PSIM仿真软件时发现这个仿真软件也支持28335芯片,于是就想学习下如何在PSIM软件中使用DSP28335芯片。在PSIM自带的官方示例中有使用DSP28335芯片的相关例子。 工程下载链接 https://download.csdn.net/download/qq_20…

mockjs使用(2)

mockjs使用(1) 4、Mock 4.1 Mock.mock() 根据数据模版生成模拟数据 Mock.mock( rurl?, rtype?, template|function(options) )问号代表该参数不必填 4.1.1 各参数及其默认值 rurl: 不必填。表示需要拦截的URL,可以使URL字符串或URL正…

QT quick基础:组件Canvas

参考《QT quick 核心编程》 使用qml画图。以下面的代码段为例,记录画图方法。 一、基本用法 Canvas {// 画布id:canvas;width: parent.width; // 画布宽度height: parent.height;// 画布高度onPaint: {var ctx canvas.getContext("2d"); // 使用画布类…

Scala基础知识

scala 1、scala简介 ​ scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数式编程。 2、scala解释器 要启动scala解释器,只需要以下几步: 按住windows键 r输入scala即可 在scala命令提示窗口中执行:quit,即可退…

深度学习笔记(九)——tf模型导出保存、模型加载、常用模型导出tflite、权重量化、模型部署

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 本篇博客主要是工具性介绍,可能由于软件版本问题导致的部分内容无法使用。 首先介绍tflite: TensorFlow Lite 是一组工具,可帮助开…

Java21 + SpringBoot3集成easy-captcha实现验证码显示和登录校验

文章目录 前言相关技术简介easy-captcha 实现步骤引入maven依赖定义实体类定义登录服务类定义登录控制器前端登录页面实现测试和验证 总结附录使用Session缓存验证码前端登录页面实现代码 前言 近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的…