学习笔记——STM32摄像头OV7725(一)

学习笔记——STM32摄像头OV7725(一)OV7725简介在各类信息中,图像含有最丰富的的信息,作为机器视觉领域的核心部件,摄像头被广泛地应用在安防、探险、以及车牌检测等场合。其按照输出信号的类型可以分为数字和模拟摄像头,按照材料构成可以分为CCD和CMOS。模拟摄像头的感光器件一般维持在752(H)*582(V)像素指标左右。由于CCD的像素由MOS电容组成,读取电荷信号是需要使用电压相当大的(至少2V)的二相/三相/四相的时序脉…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

OV7725简介
在各类信息中,图像含有最丰富的的信息,作为机器视觉领域的核心部件,摄像头被广泛地应用在安防、探险、以及车牌检测等场合。其按照输出信号的类型可以分为数字和模拟摄像头,按照材料构成可以分为CCD和CMOS。

模拟摄像头的感光器件一般维持在752(H)*582(V)像素指标左右。

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

CCD传感器件制作技术起步早,采用PN结成SIO2隔离层,因此噪声低,成像好,与CCD相比,CMOS的缺点在于噪声高,灵敏度低。不过现在随着 CMOS 电路消噪技术的不断发展,为生产高密度优质的 CMOS传感器件提供了良好的条件,现在的 CMOS 传感器已经占领了大部分的市场,主流的单反相机、智能手机都已普遍采用 CMOS 传感器。

我接下来学习的就是野火公司出产的秉火OV7725,这是一款分辨率为30万像素的CMOS摄像头,由镜头,图像传感器、板载电路及下方的信号引脚组成。

镜头部件包含一个镜头座和一个可旋转调节距离的凸透镜,通过旋转可以调节焦距,正
常使用时,镜头座覆盖在电路板上遮光,光线只能经过镜头传输到正中央的图像传感器,它
采集光线信号,采集得的数据被缓存到摄像头背面的 FIFO 缓存中,然后外部器件通过下方
的信号引脚获取拍摄得到的图像数据。
如果我们拆开摄像头座,在摄像头的正下方可看到 PCB 板上的一个方形器件,它是摄像头的
核心部件,型号为 OV7725 的 CMOS 类型数字图像传感器。该传感器支持输出最大为 30 万
像素的图像 (640×480 分辨率),它的体积小,工作电压低,支持使用 VGA 时序输出图像数
据,输出图像的数据格式支持 YUV(422/420)、YCbCr422 以及 RGB565 格式。它还可以对采
集得的图像进行补偿,支持伽玛曲线、白平衡、饱和度、色度等基础处理。

OV7725的芯片原理图如下所示:
在这里插入图片描述

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

OV7725的功能框图如下:一共分为四个部分
在这里插入图片描述

(1) 控制寄存器

标号1处的是 OV7725 的控制寄存器,它根据这些寄存器配置的参数来运行,而这些参数是由外部控制器通过 SCL 和 SDA 引脚写入的,SCL 与 SDA 使用的通讯协

议 SCCB 跟 I2C 十分类似,在 STM32 中我们完全可以直接用 I2C 硬件外设来控
制。

(2) 通信、控制信号及时钟

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

(3) 感光矩阵

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

(4) 数据输出信号

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

SCCB时序

外部控制器对 OV7725 寄存器的配置参数是通过 SCCB 总线传输过去的,而 SCCB 总线跟 I2C 十分类似,所以在 STM32 驱动中可以直接使用片上 I2C 外设与它通讯。

SCCB与标准IIC协议的区别在于它每次传输只能写入或者读取一个字节的数据,儿IIC协议是支持突发读写的,即在一次传输中可以写入多个字节的数据。

SCCB 的起始信号、停止信号及数据有效性与 I2C 完全一样。

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

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

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

主控制器控制OV7725时采用SCCB协议读写其寄存器,而他输出图像时则使用VGA/QVGA时序,其中VGA为分辨率480640时采用,QVGA为Quarter VGA,其输出分辨率为240320,OV7725输出图像时为一帧帧输出,一般从左至右,从上至下。
在这里插入图片描述
好的,今天就先写到这里,下一次的内容是FIFO时序、AL422B及摄像头的驱动原理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190142.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LoadRunner基础入门教程

    LoadRunner基础入门教程方法/步骤   1:LoadRunner是一款性能测试软件,通过模拟真实的用户行为,通过负载、并发和性能实时监控以及完成后的测试报告,分析系统可能存在的瓶颈,LoadRunner最为有效的手段之一应该就是并发的控制。通过在控制台的设置,以达到同一个业务同时模拟成千上万的用户进行操作。  2:安装完成LoadRunner后,进入初始化界面。先对初始化界面做一个简单介绍:在界面左侧有三项分别为:…

    2022年5月10日
    47
  • redis 乐观锁_用了乐观锁还需要事物吗

    redis 乐观锁_用了乐观锁还需要事物吗文章目录GeospatialHyperloglogBitmapsRedis事务悲观锁和乐观锁JedisSpringboot继承RedisGeospatial存储地理位置的数据结构应用场景朋友的定位,附近的人,打车距离计算Geospatial底层使用的是Zset127.0.0.1:6379> geoadd city 116.23 40.22 beijing 添加一个数据127.0.0.1:6379> geoadd city 121.47 31.23 shanghai 118.77

    2022年8月8日
    3
  • ffmpeg 入门_python入门笔记

    ffmpeg 入门_python入门笔记写在前面最近在读《FFmpeg从入门到精通》这本书,结合着雷神的博客,学习音视频的知识~在学习的过程中,也记录了一些摘要。因为是边看边记的,所以一些要点在看到后面的时候,需要反过来整理前面的。我用有道云笔记写的markdown没法加图片,所以就先把这部分发了出来。后续会针对内容和排版一步步的优化,如果你被这凌乱的内容辣到了眼睛,请谅解哈哈哈~2019.06.18第一章+第二章知识点(未…

    2022年4月19日
    50
  • linux命令看文件或文件夹个数[通俗易懂]

    linux命令看文件或文件夹个数

    2022年2月11日
    77
  • 数学建模【规划模型–线性规划(整数规划、0-1规划)、非线性规划-附:案例分析、奶制品的生产和销售(详细求解过程)】

    数学建模【规划模型–线性规划(整数规划、0-1规划)、非线性规划-附:案例分析、奶制品的生产和销售(详细求解过程)】4.1数学规划介绍1、数学规划模型的定义2、数学规划模型2.1、企业生产计划3、例1加工奶制品的生产计划3.1、整数规划(IntegerProgramming,简记IP)4、0-1规划模型选课策略5、非线性规划模型5.1、非线性规划5.2、基本概念5.3、算法概述5.4、MATLAB软件求解4.2奶制品的生产和销售1、优化模型和优化软件的重要意义2、优化(Optimization),规划(Programming)3、优化问题的一般形式

    2022年7月14日
    18
  • C语言中volatile关键字的作用[通俗易懂]

    C语言中volatile关键字的作用[通俗易懂]一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变

    2022年6月1日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号