目录

1:OV2640简介

2:OV2640输出时序

3:OV2640窗口设置

4:代码实现


1:OV2640简介

OV2640是OmniVision公司生产的一颗1/4寸的CMOS UXGA(1632*1232)图像传感器。

通过SCCB总线控制,可以输出整振,子采样,缩放和取窗口等方式的各种分辨率8/10位影像数据

UXGA最高15帧/秒   SVGA可达30帧  GIF可达60帧

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)等。

特点:

  1. 支持UXGA,SXGA,SVGA以及从SXGA按比例缩小到40*30的任何尺寸
  2. 高灵敏度、低电压适合嵌入式应用
  3. 标准的SCCB接口,兼容IIC接口
  4. 支持RawRGB、RGB(RGB565/RGB555)、GRB422、YUV(422/420)和YCbCr(422)输出格式
  5. 支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平校准等自动控制功能。同时支持色饱和度、色相、伽马、锐度等设置。
  6. 支持图像缩放和闪光灯
  7. 支持图像压缩,即可输出JPEG图像数据

2:OV2640输出时序

先明白

  • PCLK:即像素时钟,一个PCLK时钟,输出一个(或半个)像素。
  • VSYNC:即帧同步信号。
  • HREF/HSYNC:即行同步信号。
  • Y[9:0]:一般只用8位数据,它是OV2640的图像数据输出,就是在PCLK,VSYNC和HREF/ HSYNC的控制下进行的

OV2640行输出时序

图像数据在HREF为高的时候输出,当HREF变高后,每一个PCLK时钟,输出一个字节数据。比如我们采用UXGA(1600*1200)时序,RGB565格式输出,每2个字节组成一个像素的颜色(低字节在前,高字节在后),这样每行输出总共有1600*2个PCLK周期,输出1600*2个字节

OV2640帧输出时序(UXGA)

OV2640支持:RGB565或JPEG输出。RGB565输出时,时序如图所示。JPEG输出时,PCLK大大减少,且HREF不连续,数据流以0XFF,0XD8开头,以0XFF,0XD9结束,将此间数据保存为.jpg即可在电脑打开查看。

3:OV2640窗口设置

OV2640最终输出的图像窗口大小取决于上图相关的设置

传感器窗口设置:  传感器窗口设置允许用户设置整个传感器区域(1632*1220)的感兴趣部分,也就是在传感器里面开窗,开窗范围从2*2~1632*1220都可以设置,不过要求这个窗口必须大于等于随后设置的图像尺寸。传感器窗口设置,通过0X03/0X19/0X1A/0X07/0X17/0X18等寄存器设置。

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

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

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

4:代码实现

初始化过程:

  1. 初始化IO口
  2. 上电,并复位
  3. 读取传感器ID
  4. 执行初始化序列
  5. 完成初始化

前面说了,OV2640是通过SCCB来控制,来去对寄存器进行操作,这个SCCB就是理解为I2C的通信,也就两根线,也有起始信号,终止信号,应答信号。用这个模块的话,这个地方要注意一下,根据接线不同要修改初始化的IO口,至于读取传感器的ID,也就是通过SCCB去读取相应的寄存器,这个不用深究,代码基本上就是固定,

最后一步,执行初始化序列

  for(i=0;i<sizeof(ov2640_sxga_init_reg_tbl)/2;i++){SCCB_WR_Reg(ov2640_sxga_init_reg_tbl[i][0],ov2640_sxga_init_reg_tbl[i][1]);} 

这个就是在二维数组中把要设置的寄存器地址和要设置的内容打包,再通过SCCB将相应的内容写入到相应的寄存器里面,至于这个里面是个啥内容,不用深究,厂家给的,你自己写得把自己写疯,太多。

读取的过程,因为STM32中有DCMI打辅助,所有我们实际用摄像头起来会方便很多,DCMI帮助读取到数据后,还需要DMA的搬运,设置好DMA的运输的目的地址,存储器位宽等等参数,比如目的地址为屏幕,SRAM...,然后使能DMA传输,就可以读取OV2640模块图像的数据了。

注:有一点,很容易忽略,有的摄像头模块是自带时钟的,有的则没有,没有的需要用到软件配置提供时钟。

比如下面这个用内部高速时钟映射到PA8上来给摄像头提供时钟

GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_MCO);/* Configure MCO (PA8) */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  GPIO_Init(GPIOA, &GPIO_InitStructure);RCC_MCO1Config(RCC_MCO1Source_HSI, RCC_MCO1Div_1);

OV2640摄像头模块相关推荐

  1. 使用ESP32-CAM开发板链接OV2640摄像头网页显示

    ESP32-CAM OV2640摄像头 模块简介 下载接线及配置 下载接线 例程说明 输出图像 总结 原文链接:https://www.yourcee.com/newsinfo/2925714.htm ...

  2. STM32CubeMX | 43-1 - 认识OV2640摄像头

    文章目录 一.OV2640摄像头 1. OV2640摄像头 2. OV2640内部框图 3. OV2640摄像头模块 二.如何操作OV2640内部寄存器 1. SCCB总线概述 2. SCCB物理协议 ...

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

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

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

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

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

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

  6. ESP32-CAM带OV2640摄像头视频显示

    ESP32-CAM带OV2640摄像头视频显示 关于ESP32-CAM 使用前准备 例程修改 程序烧录 网页连接 总结 原文链接:https://www.yourcee.com/newsinfo/29 ...

  7. STM32 F4 OV2640摄像头学习笔记(一)

    //尝试写作,记录学习过程. 一.OV2640摄像头简介 本节将主要讲解OV2640摄像头基础部分和一些引脚配置. OV2640传感器简介 OV2640是Omni Vision公司生产的一颗1/4寸的 ...

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

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

  9. 嵌入式单片机高级篇(三)Stm32F103+OV2640摄像头

    Stm32F103+OV2640摄像头 一.OV2640特点: (1)高灵敏度.低电压适合嵌入式应用 (2)标准的 SCCB 接口,兼容 IIC 接口 (3)支持 RawRGB.RGB(RGB565/ ...

  10. STM32 F4 OV2640摄像头学习笔记(三)

    四.DCMI(Digital camera interface)接口 功能描述 STM32F4 自带了一个数字摄像头(DCMI)接口,该接口是一个同步并行接口,能够接收外部8位.10位.12位或14位 ...

最新文章

  1. gzip压缩算法: gzip 所使用压缩算法的基本原理
  2. 怎么能打开AOPR的日志文件
  3. 常见的复杂网络模型都有哪些?
  4. 计算机视觉领域还能耍什么花样?
  5. 未来机器人哆拉A梦身上的高科技程序应用
  6. 十一打卡推荐 | 在北京798 UCCA,百度AI的这场「秀」把我看high了
  7. catagory,action,data隐式启动匹配规则
  8. Centos系统修改为静态ip
  9. 2022-2028年中国眼镜制造行业市场竞争策略及未来发展潜力报告
  10. jdbc笔记(完整)
  11. CSS background-image
  12. SQUIRREL语言
  13. SODA10M 数据集下载记录
  14. 多人交互与体感游戏开发相关技术说明
  15. Excel打开CSV格式,大数字乱码情况
  16. 鼠标滚轮失灵解决方法2种实测
  17. mybatis数据库连接池配置
  18. endnote怎么保存上次记录_endnote使用经验总结
  19. The TRANSFORM_INVALID_GROUP_CHARS settings is set to allow bad characters in group names
  20. 小容 app android,小容app

热门文章

  1. 如何编写优秀的单元测试用例
  2. windows下,本地硬盘搜索工具everything。适合windows下搜索文件名。
  3. 爬取豆瓣电影TOP100
  4. 新书即将上市:《善用佳软:高效能人士的软件应用之道》
  5. ExtJS2.0实用简明教程——可编辑表格EditorGridPanel
  6. C语言编程题:完美的素数
  7. 创客匠人打造在线课堂,助力内容变现
  8. html学校图标的代码,学校查询网代码查询_小学学校的代码如何查询?
  9. 【时序】LSTNet:结合 CNN、RNN 以及 AR 的时间序列预测模型
  10. 数字图像处理 冈萨雷斯 (第四版) 比特平面分层,图像重建