stm32 DCMI的知识点

1.DCMI的简介

DCMI全称Digital camera interface(数字摄像头接口),是一种可以采集摄像头数据的一种接口。此接口适用于黑白摄像头、X24 和 X5 摄像头,并可以假定所有预处理(如调整大小)都可以在该摄像头模块中执行。支持原始的按行、帧格式来组织的图像数据,如 YUV、 RGB,也支持接收 JPEG 格式压缩的数据流。接收数据时,主要使用 HSYNC 及 VSYNC 信号来同步。

STM32 的 DCMI 接口整体框图
在这里插入图片描述
DCMI 的信号线说明
在这里插入图片描述
2.OV5640 传感器简介

图像传感器是摄像头的核心部件,上述摄像头中的图像传感器是一款型号为 OV5640 的 CMOS
类型数字图像传感器。该传感器支持输出最大为 500 万像素的图像 (2592x1944 分辨率),支持使
用 VGA 时序输出图像数据,输出图像的数据格式支持 YUV(422/420)、 YCbCr422、 RGB565 以及
JPEG 格式,若直接输出 JPEG 格式的图像时可大大减少数据量,方便网络传输。它还可以对采
集得的图像进行补偿,支持伽玛曲线、白平衡、饱和度、色度等基础处理。根据不同的分辨率配
置,传感器输出图像数据的帧率从 15-60 帧可调,工作时功率在 150mW-200mW 之间。

OV5640 管脚说明
在这里插入图片描述
SIO_C 和 SIO_D 引脚:SIO_C 与 SIO_D 使用的通讯协议跟 I2C 十分类似,在 STM32 中我们完全可以直接用 I2C 硬件外设来控制。此两个管脚用于写入和读取OV5640中的控制寄存器。
RESETB :引脚为低电平时,用于复位整个传感器芯片。
PWDN: 用于控制芯片进入低功耗模式
XCLK: XCLK引脚,它跟 PCLK 是完全不同的, XCLK 是用于驱动整个传感器芯片的时钟信号,是外部输入到 OV5640 的信号;而 PCLK 是 OV5640 输出数据时的同步信号,它是由 OV5640 输出的信号。 XCLK 可以外接晶振或由外部控制器提供,若要类比XCLK 之于 OV5640 就相当于 HSE 时钟输入引脚与 STM32 芯片的关系, PCLK 引脚可类比STM32 的 I2C 外设的 SCL 引脚。

OV5640像素数据输出时序
OV5640 采用 SCCB 协议进行控制,而它输出图像时则使用 VGA 时序 (还可用 SVGA、 UXGA,
这些时序都差不多),这跟控制液晶屏输入图像时很类似。 OV5640 输出图像时,一帧帧地输出,
在帧内的数据一般从左到右,从上到下,一个像素一个像素地输出 (也可通过寄存器修改方向),若我们使用 Y2-Y9 数据线,图像格式设置为 RGB565,进行数据输出时, Y2-Y9数据线会在 1 个像素同步时钟 PCLK 的驱动下发送 1 字节的数据信号,所以 2 个 PCLK 时钟可发送 1 个 RGB565 格式的像素数据。像素数据依次传输,每传输完一行数据时,行同步信号 HREF会输出一个电平跳变信号,每传输完一帧图像时, VSYNC 会输出一个电平跳变信号。

DCMI时序图
在这里插入图片描述
3.DCMI编程要点

(1).配置SIO_C,SIO_D的接口,即配置IIC,用于通过IIC接口写入和读取OV5640相关的寄存器。
(2).配置VSYNC(帧同步信号),HSYNC(行同步信号),PIXCLK(像素时钟),D0-D7(像素数据)为复用的IO管脚,配置PWDN,RST管脚为普通的IO输出管脚。
(3).配置DCMI
配置采集模式(连续采集或者单次采集)
配置像素时钟是上升沿有效还是下降沿有效
配置帧同步信号是高电平有效还是低电平有效
配置行同步信号是高电平有效还是低电平有效
配置像素数据的是全采集还是二分之一采集还是四分之一采集
配置像素数据的数据宽度,即用到几根像素数据,一般是8根数据线。
(4).配置DCMI的中断,用于在一帧数据传输完成之后,重新配置DMA。
(5).配置DMA以及DMA的中断,用于从DCMI的数据寄存器中读取像素数据。DCMI 数据寄存器 (DCMI_DR),数字摄像头接口每收到 32 位数据,才触发一次 DMA 请求。 4 字深度的 FIFO 可为 DMA 传输留出足够时间并避免出现 DMA 溢出情况。
(6).启动DCMI以及DMA

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

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

相关文章

初识小程序

一、小程序的页面布局 1、小程序组件(标签) view:代表块级区块 html中的div text:代表行内区块 html中的span 2、样式选择器 --- 类选择器、标签选择器、后代选择器 3、组成页面的4种文件类型 .wxml:页面结构和内容 …

Ubuntu 20.04.1 共享samba给windows 10

通过ssh登录ubuntu,修改/etc/下的smb配置文件, uidq4932hzh57415u:/work$ cat /etc/samba/smb.conf [global] security ads realm V01.NET workgroup V01 idmap uid 10000-20000 idmap gid 10000-20000 winbind enum users yes winbind enum grou…

若依不分离版本部署流程

一、分离与不分离的区别 参考博客:前后端分离与不分离的本质区别!_前后端分离本质-CSDN博客 概念适用场景前后端不分离前端页面看到的效果都是由后端控制,由后端渲染页面或重定向适合纯网页应用前后端分离后端仅返回前端所需的数据&#xf…

MySQL--SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了。 本文将从MySQL总体架构—>查询执行流程—>语句执行顺序来探讨一下其中的知识。 一、MySQL架构总览&a…

算法沉淀——BFS 解决拓扑排序(leetcode真题剖析)

算法沉淀——BFS 解决拓扑排序 01.课程表02.课程表 II03.火星词典 Breadth-First Search (BFS) 在拓扑排序中的应用主要是用来解决有向无环图(DAG)的拓扑排序问题。拓扑排序是对有向图中所有节点的一种线性排序,使得对于每一条有向边 (u, v)&…

Qt C++春晚刘谦魔术约瑟夫环问题的模拟程序

什么是约瑟夫环问题? 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N6,M5,被杀掉的顺序是:5&#xff…

Java实现自动化pdf打水印小项目 使用技术pdfbox、Documents4j

文章目录 前言源码获取一、需求说明二、 调研pdf处理工具word处理工具 三、技术栈选择四、功能实现实现效果详细功能介绍详细代码实现项目目录WordUtilsMain类实现部分:第一部分Main类实现部分:第二部分Main类实现部分:第三部分 资料获取 前言…

UE蓝图 分支(Branch)节点和源码

系列文章目录 UE蓝图 Cast节点和源码 UE蓝图 分支(Branch)节点和源码 文章目录 系列文章目录一、分支节点功能二、分支节点用法三、分支节点使用场景四、分支节点实现过程五、分支节点相关源码 一、分支节点功能 在Unreal Engine(UE)的蓝图中&#xff0…

数据采集三防平板丨三防平板电脑丨停车场应用

随着现代科技的不断发展,三防平板已经成为许多人工作和生活的必备工具。在停车场这个场景中,三防平板的应用可以大大提高停车场管理的效率和安全性。 停车场是现代城市交通管理的重要组成部分,它直接关系到城市交通的流畅和公共安全。停车场…

BUGKU-WEB 留言板1

题目描述 题目截图如下: 进入场景看看: 解题思路 之间写过一题类似的,所以这题应该是有什么不同的那就按照之前的思路进行测试试试提示说:需要xss平台接收flag,这个和之前说的提示一样 相关工具 xss平台&#xf…

『论文阅读|研究用于视障人士户外障碍物检测的 YOLO 模型』

研究用于视障人士户外障碍物检测的 YOLO 模型 摘要1 引言2 相关工作2.1 障碍物检测的相关工作2.2 物体检测和其他基于CNN的模型 3 问题的提出4 方法4.1 YOLO4.2 YOLOv54.3 YOLOv64.4 YOLOv74.5 YOLOv84.6 YOLO-NAS 5 实验和结果5.1 数据集和预处理5.2 训练和实现细节5.3 性能指…

Spring6学习技术|简要介绍+安装环境+入门案例+log4j2日志

学习材料 尚硅谷Spring零基础入门到进阶,一套搞定spring6全套视频教程(源码级讲解) 碎碎念一下吧,javaWeb跟完了全程。还是感觉啥也不知道,啥也没学会。2025年春天能找到实习吗?真的好担心。 环境安装 纠…