STM32F1之OV7725摄像头

目录

1.  摄像头简介        

2.  OV7725  摄像头简介

3.  OV7725 引脚

4.  OV7725 功能框架图

5.  SCCB时序

5.1  SCCB 的起始、停止信号及数据有效性

5.2  SCCB 数据读写过程


1.  摄像头简介        

        在各类信息中,图像含有最丰富的信息,作为机器视觉领域的核心部件,摄像头被广泛地应用在安防、探险以及车牌检测等场合。

        摄像头按输出信号的类型来看可以分为数字摄像头和模拟摄像头,数字摄像头跟模拟摄像头区别在于:

①输出信号类型:数字摄像头输出信号为数字信号,模拟摄像头输出信号为标准的模拟信号。

②接口类型:数字摄像头有 usb 接口(比如常见的 pc 端免驱摄像头)、IEE1394 火线接口(由苹果公司领导的开发联盟开发的一种高速度传送接口,数据传输率高达 800Mbps)、千兆网接口(网络摄像头)。模拟摄像头多采用 AV 视频端子(信号线+地线)或 S-VIDEO(即莲花头--SUPER VIDEO,是一种五芯的接口,由两路视频亮度信号、两路视频色度信号和一路公共屏蔽地线共五条芯线组成)。

③分辨率:模拟摄像头的感光器件,其像素指标一般维持在 752(H)*582(V)左右的水平,像素数一般情况下维持在 41W 左右。数字摄像头分辨率一般从数十万到数百万甚至数千万。但这并不能说明数字摄像头的成像分辨率就比模拟摄像头的高,原因在于模拟摄像头输出的是模拟视频信号,一般直接输入至电视或监视器,其感光器件的分辨率与电视信号的扫描数呈一定的换算关系,图像的显示介质已经确定,因此模拟摄像头的感光器件分辨率不是不能做高,而是依据于实际情况没必要做这么高。

        按照摄像头图像传感器材料构成来看可以分为 CCD 和 CMOS。现在智能手机的摄像头绝大部分都是 CMOS 类型的数字摄像头。对于二者的区别:

①成像材料:CCD 与 CMOS 的名称跟它们成像使用的材料有关,CCD 是“电荷耦合器件”(ChargeCoupled Device)的简称。

而 CMOS 是“互补金属氧化物半导体”(Complementary MetalOxide Semiconductor)的简称。

②功耗:由于 CCD 的像素由 MOS 电容构成,读取电荷信号时需使用电压相当大(至少 12V)的二相或三相或四相时序脉冲信号,才能有效地传输电荷。因此 CCD 的取像系统除了要有多个电源外,其外设电路也会消耗相当大的功率。有的 CCD 取像系统需消耗2~5W 的功率。而 CMOS 光电传感器件只需使用一个单电源 5V 或 3V,耗电量非常小,仅为 CCD 的 1/8~1/10,有的 CMOS 取像系统只消耗 20~50mW 的功率。

③成像质量:CCD 传感器件制作技术起步早,技术成熟,采用 PN 结或二氧化硅(sio2)隔离层隔离噪声,所以噪声低,成像质量好。与 CCD 相比,CMOS 的主要缺点是噪声高及灵敏度低,不过现在随着 CMOS 电路消噪技术的不断发展,为生产高密度优质的 CMOS传感器件提供了良好的条件,现在的 CMOS 传感器已经占领了大部分的市场,主流的单反相机、智能手机都已普遍采用 CMOS 传感器。

2.  OV7725  摄像头简介

        该摄像头主要由镜头、图像传感器、板载电路、FIFO 缓存及下方的信号引脚组成。镜头部件包含一个镜头座和一个可旋转调节距离的凸透镜,通过旋转可以调节焦距,正常使用时,镜头座覆盖在电路板上遮光,光线只能经过镜头传输到正中央的图像传感器,它采集光线信号,采集得的数据被缓存到摄像头背面的 FIFO 缓存中,然后外部器件通过下方的信号引脚获取拍摄得到的图像数据。

        若拆开摄像头座,在摄像头的正下方可看到 PCB 板上的一个方形器件,它是摄像头的核心部件,型号为 OV7725 的 CMOS 类型数字图像传感器。该传感器支持输出最大为 30 万像素的图像 (640x480 分辨率),它的体积小,工作电压低,支持使用 VGA 时序输出图像数据,输出图像的数据格式支持 YUV(422/420)、YCbCr422 以及 RGB565 格式。它还可以对采集得的图像进行补偿,支持伽玛曲线、白平衡、饱和度、色度等基础处理。

3.  OV7725 引脚

        OV7725 传感器采用 BGA 封装,它的前端是采光窗口,引脚都在背面引出。

        图中的非彩色部分是电源相关的引脚,彩色部分是主要的信号引脚。

管脚名称
管脚类型
管脚描述
RSTB
输入
系统复位管脚,低电平有效
PWDN
输入
掉电 / 省电模式 ( 高电平有效 )
HREF
输出
行同步信号
VSYNC
输出
场同步信号
PCLK
输出
像素时钟
XCLK
输入
系统时钟输入端口
SCL
输入
SCCB 总线的时钟线
SDA
I/O
SCCB 总线的数据线
D0 D9
输出
像素数据端口

4.  OV7725 功能框架图

        找到OV7725规格书如下图,其中框住部分是 OV7725 的控制寄存器,它根据这些寄存器配置的参数来运行,而这些参数是由外部控制器通过 SCL 和 SDA 引脚写入的,SCL 与 SDA 使用的通讯协议 SCCB 跟 I2C 十分类似,在 STM32 中我们完全可以直接用 I2C 硬件外设来控制。

        找到如下位置,包含了 OV7725 的通信、控制信号及外部时钟,其中 PCLK、HREF 及VSYNC 分别是像素同步时钟、行同步信号以及帧同步信号,这与液晶屏控制中的VGA 信号是很类似的。RSTB 引脚为低电平时,用于复位整个传感器芯片,PWDN用于控制芯片进入低功耗模式。注意最后的一个 XCLK 引脚,它跟 PCLK 是完全不同的,XCLK 是用于驱动整个传感器芯片的时钟信号,是外部输入到 OV7725 的信号;而 PCLK 是 OV7725 输出数据时的同步信号,它是由 OV7725 输出的信号。XCLK 可以外接晶振或由外部控制器提供,若要类比 XCLK 之于 OV7725 就相当于 HSE 时钟输入引脚与 STM32 芯片的关系,PCLK 引脚可类比 STM32 的 I2C 外设的 SCL 引脚。

        找到如下位置,是感光矩阵,光信号在这里转化成电信号,经过各种处理,这些信号存储成由一个个像素点表示的数字图像。

        找到如下位置,包含了 DSP 处理单元,它会根据控制寄存器的配置做一些基本的图像处理运算。这部分还包含了图像格式转换单元及压缩单元,转换出的数据最终通过D0-D9 引脚输出,一般来说我们使用 8 根据数据线来传输,这时仅使用 D2-D9 引脚。

5.  SCCB时序

5.1  SCCB 的起始、停止信号及数据有效性

这一个可以等价于IIC通讯,只是改了一下名字:

①起始信号:在 SCL(图中为 SIO_C)为高电平时,SDA(图中为 SIO_D)出现一个下降沿,则 SCCB 开始传输。

②停止信号:在 SCL 为高电平时,SDA 出现一个上升沿,则 SCCB 停止传输。

③数据有效性:除了开始和停止状态,在数据传输过程中,当 SCL 为高电平时,必须保证 SDA 上的数据稳定,也就是说,SDA 上的电平变换只能发生在 SCL 为低电平的时候,SDA 的信号在 SCL 为高电平时被采集。

5.2  SCCB 数据读写过程

        在 SCCB 协议中定义的读写操作与 I2C 也是一样的,只是换了一种说法。它定义了两种写操作,即三步写操作和两步写操作。三步写操作可向从设备的一个目的寄存器中写入数据。在三步写操作中,第一阶段发送从设备的 ID 地址+W 标志(等于 I2C 的设备地址:7 位设备地址+读写方向标志),第二阶段发送从设备目标寄存器的 8 位地址,第三阶段发送要写入寄存器的 8 位数据。图中的“X”数据位可写入 1 或 0,对通讯无影响。

        而两步写操作没有第三阶段,即只向从器件传输了设备 ID+W 标志和目的寄存器的地址。两步写操作是用来配合后面的读寄存器数据操作的,它与读操作一起使用,实现 I2C 的复合过程。

        两步读操作,它用于读取从设备目的寄存器中的数据。在第一阶段中发送从设备的设备 ID+R 标志(设备地址+读方向标志)和自由位,在第二阶段中读取寄存器中的 8 位数据和写 NA 位(非应答信号)。由于两步读操作没有确定目的寄存器的地址,所以在读操作前,必需有一个两步写操作,以提供读操作中的寄存器地址。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谈谈你对 vue 的理解 ?

1.谈谈你对 vue 的理解 ? 官方: Vue是一套用于构建用户界面的渐进式框架,Vue 的核心库只关注视图层 2. 声明式框架 Vue 的核心特点,用起来简单。那我们就有必要知道命令式和声明式的区别! 早在 JQ 的时代编写的代码都是命令式的,命令式框架重要特点就是关注过程 声明…

world machine学习笔记(3)

打开 可以打开场景设置,项目设置平铺构建设置 场景设置: 输出范围 设置中心点和范围 设置分辨率 项目设置: 设置地图颜色,单位,最高地形高度 点击这个图形进行预览设置 该按钮还有其他的功能 world machine基础流程…

LeetCode算法题:42. 接雨水(Java)

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3…

分享一个用AI降本的思路,不懂代码也能上手

如何用AI解决实际的业务问题? 生财圈友我来利用ChatGPT做算法建模,每年为公司省下6万元。 今天他将分享通过ChatGPT进行数据分析的思路,从最开始定义问题到最终数据论证。 上手的实操过程门槛并不高,但可以实现把官方电商平台的…

huggingface笔记: accelerate estimate-memory 命令

探索可用于某一机器的潜在模型时,了解模型的大小以及它是否适合当前显卡的内存是一个非常复杂的问题。为了缓解这个问题,Accelerate 提供了一个 命令行命令 accelerate estimate-memory。 accelerate estimate-memory {MODEL_NAME} --library_name {LIBR…

Ubuntu22.04虚拟机设置静态IP

虚拟机设置静态IP 按下电脑的 “win”键,在弹出的输入框中输入“控制面板”,选中控制面板 1.选择 “网络和Internet” 2.选择 “网络和共享中心” 3.选择 “更改适配器设置” 4.选择 “VMnet8”,双击打开 5.选择 “属性” 找到 “Internet …

Reactor设计模式

Reactor设计模式 Reactor模式称为反应器模式或应答者模式,是基于事件驱动的设计模式,拥有一个或多个并发输入源,有一个服务处理器和多个请求处理器,服务处理器会同步的将输入的请求事件以多路复用的方式分发给相应的请求处理器。…

Qt 界面上字体自适应控件大小 - 随控件缩放

Qt 界面上字体自适应控件大小 - 随控件缩放 引言一、设计思路二、进阶版大致思路三、参考链接 引言 Qt控件自适应字体大小可以用adjustSize()函数,但字体自适应控件大小并没有现成的函数可调. - 本文实现了按钮上的字体随按钮大小变化而变化 (如上图所示) - 其他控件…

10款免费黑科技软件,强烈推荐!

1.AI视频生成——巨日禄 网页版https://aitools.jurilu.com/ "巨日禄 "是一款功能强大的文本视频生成器,可以快速将文本内容转换成极具吸引力的视频。操作简单,用户只需输入文字,选择喜欢的样式和模板, “巨日禄”就会…

Python | Leetcode Python题解之第111题二叉树的最小深度

题目: 题解: class Solution:def minDepth(self, root: TreeNode) -> int:if not root:return 0que collections.deque([(root, 1)])while que:node, depth que.popleft()if not node.left and not node.right:return depthif node.left:que.appen…

Qt学习记录(14)线程

前言&#xff1a; 我的臀部已经翘到可以顶起一屁股债了 为什么要使用线程 什么时候用线程 复杂的数据处理 头文件.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer>//定时器头文件QT_BEGIN_NAMESPACE namespace Ui { class Widget; }…

Hive安装教程

前置条件:hadoop&mysql docker容器安装mysql-CSDN博客 以下的/opt/bigdata目录根据自己实际情况更改 1.上传hive包并解压 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/bigdata/ 2.修改路径 mv /opt/bigdata/apache-hive-3.1.3-bin/ hive cd /opt/bigdata/hive/…

CIC滤波器

CIC滤波器结构简单&#xff0c;没有乘法器&#xff0c;只有加法器、积分器和寄存器&#xff0c;适合工作在高抽样率条件下&#xff0c;而且CIC滤波器是一种基于零点相消的FIR滤波器。 CIC滤波器分为单级和多级滤波器。 1.在单极滤波器中&#xff1a; 当CIC滤波器的长度M远大于…

MongoDB(介绍,安装,操作,Springboot整合MonggoDB)

目录 MongoDB 1 MongoDB介绍 MongoDB简介 MongoDB的特点 MongoDB使用场景 小结 2 MongoDB安装 安装MongoDB 连接MongoDB MongoDB逻辑结构 MongoDB数据类型 小结 3 MongoDB操作 操作库和集合 操作文档-增删改 操作文档-查询 MongoDB索引 小结 4 SpringBoot整合…

【微积分】CH16 integrals and vector fields听课笔记

【托马斯微积分学习日记】13.1-线积分_哔哩哔哩_bilibili 概述 16.1line integrals of scalar functions [中英双语]可视化多元微积分 - 线积分介绍_哔哩哔哩_bilibili 16.2vector fields and line integrals&#xff1a; work circulation and flux 向量场差不多也是描述某种…

kubernetes的服务发现

目录 概述集群内部ip访问ServiceDNSHeadlessService 集群内 --> 集群外集群外--> 集群内NodePortHostPortIngress 概述 本篇介绍kubernetes的服务发现&#xff0c;主要分三部分&#xff1a;k8s 集群内部互相通信、k8s 集群内部访问外部、集群外部访问集群内部。   解决…

数理逻辑:1、预备知识

17.1 命题和联结词 ​ 命题&#xff1a;可以判定真假的陈述句。&#xff08;则悖论&#xff0c;祈使句&#xff0c;疑问句都不是命题&#xff09; ​ 原子命题&#xff1a;不能被分割为更小的命题的命题 例如&#xff1a; 2既是素数又是偶数 可以由$p: 2 是素数&#xff0c;…

与用户沟通获取需求的方法

1 访谈 访谈是最早开始使用的获取用户需求的技术&#xff0c;也是迄今为止仍然广泛使用的需求分析技术。 访谈有两种基本形式&#xff0c;分别是正式的和非正式的访谈。正式访谈时&#xff0c;系统分析员将提出一些事先准备好的具体问题&#xff0c;例如&#xff0…

Linux网络编程(socket)

1. 概念 局域网和广域网 局域网&#xff1a;局域网将一定区域内的各种计算机、外部设备和数据库连接起来形成计算机通信的私有网络。广域网&#xff1a;又称广域网、外网、公网。是连接不同地区局域网或城域网计算机通信的远程公共网络。 IP&#xff08;Internet Protocol&a…

三维场景感知之三维目标检测方向入门

三维目标检测入门 1 文档需知2 基础知识深度学习基础必上手项目科研研究必知道的论文门户深度学习必看论文 3 目标检测入门知识二维目标检测必看论文 4 三维目标检测入门知识三维目标检测必熟悉数据集三维目标检测点云分类分割预备知识三维目标检测必熟悉&#xff0c;必跑通&am…