OV2640

简介: 1/4寸CMOSUXGA (1632 * 1232)图像传感器。体积小、工作电压低,提供单片UXGA摄像头和影像处理器的所有功能。通过SCCB总线控制,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率8/10位影像数据。(此处一般选8位)UXGA最高15帧/秒(SVGA可达30帧,CIF可达60帧)。用户可以完全控制图像质量、数据格式和传输方式。所有图像处理功能辽程包括伽玛曲线、白平衡、对比度、色度等都可以通过SCCB接口编程。
特点
(1)高灵敏度、低电压适合嵌入式应用;
(2)标准的SCCB接口,兼容IIC接口;
(3)支持RawRGB、RGB (RGB565/RGB555)、GRB422、YUV(422/420) 和YCbCr(422)输出格式。(一般用RGB565);
(4)支持UXGA、SXGA、SVGA以及按比例缩小到从SXGA到40*30的任何尺寸(通过DSP);
(5)支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。同时支持色饱和度、色相、伽马、锐度等设置;
(6)支持图像缩放和闪光灯;
(7)支持图像压缩,即可输出JPEG图像数据。

相关名称:
UXGA,即分辨率位1600 * 1200的输出格式,类似的还有:
SXGA (1280 * 1024)、XVGA (1280 * 960)、WXGA (1280 * 800)、XGA (1024 * 768)、SVGA(800 * 600)、VGA(640 * 480)、CIF (352 * 288)和QQVGA (160 * 120)
PCLK:像素时钟,一个PCLK时钟,输出一个(RawRgb)或半个(一个像素要两个PCLK输出,是RGB565,其一个像素需要两个字节输出)像素。
VSYNC:帧同步信号。
HREF /HSYNC:行同步信号。

OV2640的图像输出(通过Y[9:0],但是实际只用8位数据)是在PCLK,VSYNC,HREF /HSYNC的控制下进行的。
行输出时序

OV2640行输出时序
进行输出时,输出1200次数据(一次一行),每行有1600个数据
此输出是在PCLK的上升沿,HREF行有效信号的高电平期间(高电平有效),每个上升沿读一个像素或一个字节(RGB565)的数据。HREF低电平期间的数据直接忽略。每2个字节组成一个像素的颜色(低字节在前,高字节在后)。
每行输出共有1600 * 2个PCLK周期,输出1600 * 2个字节
行输出时序PCLK最大频率可达36Mhz。

帧输出时序

OV2640帧输出时序

YSYNC第一个脉冲完成,表示帧输出开始。该时序电平有效性可以设置,此处为低电平有效。在经过27193t§后,HREF变高,行数开始有效,经过1600t§读取1600个像素的数据,在322t§后继续下一个数据的传输。总共进行1200次传输后,一帧数据传输完毕。
OV2640支持RGB565或JPEG输出。RGB565输出时,时序如图所示。JPEG输出时,PCLK大大减少,且HREF不连续,数据流以0XFF,0XD8开头,以0XFF,0XD9结束,将此间数据保存为.jpg即可在电脑打开查看。
上图左下角note:raw使用一个T(pclk),8位数据;YUV或RGB使用两个T(pclk),包含十六位数据。
传感器窗口设置(OV2640_Window_Set)
传感器窗口设置允许用户设置整个传感器区域(1632 * 1220)的感兴趣部分,也就是在传感器里面开窗,开窗范围从2 * 2~1632 * 1220都可以设置,要求这个窗口必须大于等于随后设置的图像尺寸。传感器窗口设置,通过0X03/0X19/0X1A/0X07/0X17/0X18等寄存器设置。


图像尺寸设置(OV2640_ImageSize_Set)
图像尺寸设置,也就是DSP输出(最终输出到LCD的)图像的最大尺寸,该尺寸要小于等于前面我们传感器窗口设置所设定的窗口尺寸。图像尺寸通过:0XC0/0XC1/0X8C等寄存器设置。

图像窗口设置(OV2640_ImageWin_Set)
图像窗口设置其实和前面的传感器窗口设置类似,只是这个窗口是在我们前面设置的图像尺寸里面,再一次设置窗口大小,该窗口必须小于等于前面设置的图像尺寸。该窗口设置后的图像范围,将用于输出到外部。图像窗口设置通过0X51/0X52/0X53/0X54/0X55/0X57等寄存器。

图像输出大小设置(OV2640_OutSize_Set)
图像输出大小设置,控制最终输出到外部的图像尺寸。该设置将图像窗口设置所决定的窗口大小,通过内部DSP处理,缩放成我们输出到外部的图像大小。该设置将会对图像进行缩放处理,如果设置的图像输出大小不等于图像窗口设置图像大小,那么图像就会被缩放处理,只有这两者设置一样大的时候,输出比例才是1:1的。图像输出大小通过0X5A/0X5B/0X5C等寄存器设置。

图像输出示意图如下

注:该摄像头模块自带晶振,无需外部时钟;自带稳压电路,直接接3.3V即可工作;支持缩放(有DSP)。
OV2640模块介绍

OV26340原理图
中间部分为芯片,右上角为晶振提供XVCLK。右下角为接口,D0-D7作为信号接口。接8位时,连接Y2-Y9.

下图为上图右下角细解

OV2640的初始化
初始化IO口->上电(PWDN引脚)复位->读取传感器ID(可有可无)-> 执行初始化序列(配置寄存器工作模式)->完成初始化。
MCU读取OV2640模块图像数据的过程
等待帧同步->等待HREF为高电平->等待第一个PCLK上升沿->读取第一个像素低字节->等待第二个PCLK上升沿->读取第一个像素高字节->(循环读取后面的像素数据,流程同读取第一个一致,先读低字节再读高字节)->结束。

DCMI

DCMI是STM32F4芯片自带的一个数字摄像头接口,该接口是一个同步并行接口,能够接收外部8位、10位、12位或 14位 CMOS 摄像头模块发出的高速数据流。可支持不同的数据格式:YCbCr4:2:2/RGB565逐行视频和压缩数据 (JPEG)。
DCMI接口可接收高速(可达 54 MB/s)数据流。该接口包含多达14条数据线(D13-D0)和一条像素时钟线(PIXCLK)。像素时钟的极性可以编程,因此可以在像素时钟的上升沿或下降沿捕获数据。
特点:
1.支持8 位、10 位、12 位或 14 位并行接口
2.支持内嵌码/外部行同步和帧同步
3.支持连续模式或快照模式
4.支持裁剪功能
5.支持以下数据格式:
(1)8/10/12/14 位逐行视频:单色或原始拜尔(Bayer)格式
(2)YCbCr 4:2:2逐行视频
(3)RGB 565 逐行视频
(4)压缩数据:JPEG
DCMI信号
STM32F4的DCMI接口包括如下信号:
1,数据据输入(D[0:13]),接摄像头的数据输出。(对于OV2640只用8条D[0:7])
2,水平同步(行同步)输入(HSYNC),接摄像头的HSYNC/HREF信号。
3,垂直同步(场同步)输入(VSYNC),接摄像头的VSYNC信号。
4,像素时钟输入(PIXCLK),接摄像头的PCLK信号。


DCMI接口的数据与PIXCLK(即PCLK)保持同步,并根据像素时钟的极性在像素时钟上升沿/下降沿发生变化。HSYNC(HREF)信号指示行的开始/结束,VSYNC信号指示帧的开始/结束。

图中,对应设置为:DCMI_PIXCLK的捕获沿为下降沿,DCMI_HSYNC和DCMI_VSYNC的有效状态为1。
注意:这里的有效状态实际上指数据无效的时候HSYNC和VSYNC的电平,则这段时间内的数据无效。

DCMI接收到的数据,存储在DCMI_DR寄存器(32位)里面,使用时OV2640采用8位数据宽度,每4个像素时钟,才捕获完32位数据,第一个字节存放在LSB位置,第四个字节存放在MSB位置,如下图所示:

DMA说明
DCMI支持DMA传输,当DCMI_CR寄存器中的CAPTURE位置1时,激活DMA接口。摄像头接口每次在其寄存器(DCMI_DR)中收到一个完整的32位数据块时,都将发一个DMA请求,由DMA将DCMI_DR寄存器的值搬运到目的地址(比如LCD/SRAM)。

DCMI的DMA请求是映射在DMA2通道1的数据流1上面的,所以配置DMA时,应该配置这个。
另外,如果是直接DCMI->DMA->LCD的传输方式,因为LCD是16位宽(RGB565),而DCMI_DR是32位宽,所以一次DCMI引起的DMA传输,将引发往LCD写2次数据。

模式:DCMI支持连续模式和快照模式,一般采用连续模式。
同步方式:DCMI支持内嵌码同步和硬件同步两种方式,一般采用硬件同步。
硬件同步模式下使用两个同步信号HSYNC和VSYNC。根据摄像头模块/模式的不同,可能在水平/垂直同步期间内发送数据。由于系统会忽略HSYNC/VSYNC信号有效电平期间内接收的所有数据,HSYNC/VSYNC 信号相当于消隐信号。

部分寄存器简介
1.DCMI控制寄存器(DCMI_CR)
ENABLE:用于设置是否使能DCMI。在使能之前,必须将其他配置设置好。
FCRC[1:0]:这两个位用于帧率控制,要捕获所有帧,设置为00即可。
VSPOL:用于设置垂直同步极性,也就是VSYNC引脚上面,数据无效时的电平状态,应该设置为0。
HSPOL:用于设置水平同步极性,也就是HSYNC引脚上面,数据无效时的电平状态,同样应该设置为0。
PCKPOL:用于设置像素时钟极性,用上升沿捕获,所以设置为1。
CM:用于设置捕获模式,用连续采集模式,设置为0即可。
CAPTURE:用于使能捕获,设置为1。该位使能后,将激活DMA,DCMI等待第一帧开始,然后生成DMA请求将收到的数据传输到目标存储器中。

2.DCMI中断使能寄存器

FRAME_IE,捕获完成中断使能位。实际上就是帧中断。在jpeg数据处理的时候,要用到帧中断,所以设置该位为1。
初始化流程
(1)配置相关引脚的复用功能,使能DCMI时钟。
要用DCMI,先要使能DCMI的时钟。其次要设置DCMI的相关引脚为复用输出,以便连接ATK-OV2640模块。
(2)设置DCMI工作模式及PCLK/HSYNC/VSYNC等参数。
DCMI接口使用8位接口,连续模式,根据OV2640模块的输出时序图,设置:PCLK为上升沿有效, HSYNC和VSYNC为低电平有效(此时数据无效)。同时还要设置帧中断(jpeg数据采集用)等参数。
(3)设置DMA。
DCMI数据一般采用DMA来搬运,设置好DCMI相关参数后,需要设置DMA,以便采集数据。
(4)启动DCMI传输。
最后,设置DCMI->CR的最低位为1,即可启动DCMI捕获图像数据。

OV2640 DCMI相关推荐

  1. (40)STM32——OV2640摄像头实验

    目录 学习目标 运行结果 内容 OV2640 特点 时序 帧输出时序 配置 DCMI 特点 信号 DMA 寄存器 配置 硬件连接 代码 总结 学习目标 今天我们要学习的是OV2640摄像头实验,采用的 ...

  2. STM32F407传输OV2640视频数据并在PC端显示

    一.整体架构 STM32使用DCMI驱动OV2640,DMA通道获取图像数据,然后通过以太网将数据发送至PC端,PC端通过socket接收数据,并用BufferedImage将其显示.(PC端使用的j ...

  3. 【cubemx】移植正点原子ov2640

    一.前言 这几天在用cubemx移植ov2640,数据输出到屏幕始终是蓝色的,百思不得其解,终于我找到了个大坑,那就是之前把lcd显示的方向改成了横屏(一定要设置成竖屏!),接下来进入正题,本文想实现 ...

  4. STM32F407ZGT6控制ESP8266与OV2640下的百度智能图片识别

    前言:STM32F407ZGT6控制OV2640下采集到JPG图片格式的二进制数据,然后对二进制数据进行BASE64编码,接着通过串口将数据传输给ESP8266并上传至训练好的EASYDL的AI算法识 ...

  5. STM32——OV2640摄像头实验

    一.硬件连接原理图 实物图: 二.OV2640驱动代码 1.SCCB_Init函数 //初始化SCCB接口 void SCCB_Init(void) {GPIO_InitTypeDef GPIO_In ...

  6. STM32F407VET6之OV2640———— OV2640

    一.OV2640简介 使用的摄像头是ATK-OV2640 摄像头模块 特点: 标准的 SCCB 接口,兼容 IIC 接口 支持 RawRGB. RGB(RGB565/RGB555). GRB422. ...

  7. 【STM32】OV2640摄像头学习笔记

    目录: 一.OV2640 Camera 二.读取OV2640模块图像数据过程: 三.DCMI(Digital camera interface)接口 四.SCCB协议 1.起始信号 2.停止信号 五. ...

  8. 基于STM32、OV2640及ESP8266的无线图传

    一.简介: 本文利用STM32F407单片机.OV2640摄像机模块以及ESP8266 WIFI模块,并基于C#编写的TCP上位机服务,来实现图像的无线传输. 本文受启发于博客:ESP8266+STM ...

  9. OV2640摄像头移植总结

    环境:stm32f429+OV2640移植到RT1052+OV2640 stm32f429 DCMI相机接口 RT1052 CSI接口 移植步骤: (1) 确定SCCB(IIC)配置或者初始化正确,以 ...

  10. STM32F407获取OV2640摄像头图像及上位机解码(一维码二维码)

    STM32F407获取OV2640摄像头图像及上位机解码(一维码&二维码) 1. 目的 针对静止拍摄图像场景,实现STM32F407对200万像素OV2640摄像头进行图像捕获,并通过串口将数 ...

最新文章

  1. tensorflow常用函数解析
  2. M站开发规范——By Klax
  3. MySQL replace into 的坑以及insert相关操作
  4. msp430 c语言开发环境,如何使用C语言来编写MSP430的高质量代码
  5. win10一直正在检查更新_听说每个新时代的网民,都被win10迫害过
  6. python 自定义词典_cawdrey-Python的几个有用的自定义词典 -Dominic Davis-Foster
  7. C#中==操作符存在的缺陷
  8. 数据结构和算法——线性结构(3)递归和斐波那契数列、汉诺塔问题
  9. 硅谷Spring项目组专家教你利用Spring Cloud构建微服务
  10. 世界语言共有4种书写方向
  11. xv6源码阅读——进程切换
  12. matlab求一元函数极值点和拐点,matlab求函数的极值点和拐点函数y=x^2*sin(x^2-爱问知识人...
  13. php45欧米伽_PHP中的数字格式5.5到5.50 - php
  14. 从一个方向看一个正方体_从一个方向观察一个正方体,最多可以看到几个面
  15. python论坛签到_Python 百度贴吧自动签到
  16. 石家庄推进智慧城市建设 数字校园将覆盖所有学校
  17. 虎牙直播怎么换html5,虎牙直播怎么换徽章-虎牙直播更换粉丝徽章的方法 - 河东软件园...
  18. 怎么识别自己的眼型?眼型图片参照
  19. 人工智能产业链基本介绍,人工智能技术划为哪几部分?
  20. 电脑网正常,除了IE之外其他浏览器都能正常上网,IE不能上网解决办法

热门文章

  1. navicate数字太长显示不全
  2. 什么是单页应用SPA
  3. css中pc和pt,css中px和pt的区别是什么
  4. Syntax error on token?excepted agter this token
  5. 斐讯路由怎么设置虚拟服务器,192.168.2.1斐讯路由器设置的方法?
  6. ETCD数据库源码分析——etcdserver bootstrap初始化存储
  7. 阿尔泰USB5630数据采集卡
  8. 清华大学出来的工资有多高?
  9. Longstick的学习周记——第二周
  10. 关于wkhtmltopdf生成pdf空白