你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32学习笔记之摄像头实验(OV2640)

[复制链接]
Savy1314 发布时间:2017-7-17 14:13
STM32学习笔记之摄像头实验(OV2640)
OV2640


相关概念:

1.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)等。
2.PCLK,即像素时钟,一个PCLK时钟,输出一个(或半个)像素。
3.VSYNC,即帧同步信号。
4.HREF /HSYNC,即行同步信号。


简介:

OV2640是OmniVision公司生产的一颗1/4寸的CMOS UXGA(1632*1232)图像传感器。该传感器体积小、工作电压低,提供单片UXGA摄像头和影像处理器的所有功能。通过SCCB 总线控制,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率8/10位影像数据。UXGA最高15帧/秒(SVGA可达30帧,CIF可达60帧)。
注:SCCB总线可以看成IIC总线的简化版


窗口设置:


1.传感器窗口设置(OV2640_Window_Set)
2.图像尺寸设置(OV2640_ImageSize_Set)
3.图像窗口设置(OV2640_ImageWin_Set)
4.图像输出大小设置(OV2640_OutSize_Set)


关系如下图:
6.jpg
一般来说1,2采取默认设置,我们只需要调整3和4即可。


时序图:

OV2640是采取先读一行像素,再跳到下一行重新开始读取新一行像素。
首先,我们看行输出时序:

5.jpg
图像数据在HREF为高的时候输出,当HREF变高后,每一个PCLK时钟,输出一个字节数据。比如我们采用UXGA时序,RGB565格式输出,每2个字节组成一个像素的颜色(低字节在前,高字节在后),这样每行输出总共有1600*2个PCLK周期,输出1600*2个字节
然后,看帧输出时序:
4.jpg
当HREF输出高电平时开始读取一行像素点,当低电平时不操作,重复操作即可读取一帧图像。
OV2640支持:RGB565或JPEG输出。RGB565输出时,时序如图所示。JPEG输出时,PCLK大大减少,且HREF不连续,数据流以0XFF,0XD8开头,以0XFF,0XD9结束,将此间数据保存为.jpg即可在电脑打开查看。

DCMI
DCMI是STM32F4芯片自带的一个数字摄像头接口,该接口是一个同步并行接口,能够接收外部8位、10位、12位或 14位 CMOS 摄像头模块发出的高速数据流(可达 54 MB/s)。
接口定义如下:
1,数据据输入(D[0:13]),接摄像头的数据输出。
2,水平同步(行同步)输入(HSYNC),接摄像头的HSYNC/HREF信号。
3,垂直同步(场同步)输入(VSYNC),接摄像头的VSYNC信号。
4,像素时钟输入(PIXCLK),接摄像头的PCLK信号。

3.jpg
DCMI接收到的数据,存储在DCMI_DR寄存器(32位)里面,我们接ATK-OV2640采用8位数据宽度,所以每4个像素时钟,才会捕获完32位数据,第一个字节存放在LSB位置,第四个字节存放在MSB位置,如下图所示:
2.jpg
注:低字节在前,高字节在后

DCMI支持DMA传输,当DCMI_CR寄存器中的CAPTURE位置1时,激活DMA接口。
像头接口每次在其寄存器(DCMI_DR)中收到一个完整的32位数据块时,都将发一个DMA请求,由DMA将DCMI_DR寄存器的值搬运到目的地址(比如LCD/SRAM)。DCMI的DMA请求是映射在DMA2通道1的数据流1上面的,所以配置DMA时,应该配置这个。

DCMI控制寄存器(DCMI_CR)

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


一.初始化时钟
二.初始化OV2640:
1. 初始化IO口
2. 上电,并复位
3. 执行初始化序列
三.设置图像窗口设置和图像输出大小设置,可以调整图像大小或者缩放模式
四.初始化DCMI:
1. 配置相关引脚的复用功能,使能DCMI时钟。
2. 设置DCMI工作模式及PCLK/HSYNC/VSYNC等参数。
3. 设置DMA
4. 启动DCMI传输。即设置DCMI->CR的最低位为1



收藏 2 评论4 发布时间:2017-7-17 14:13

举报

4个回答
野火_firege 回答时间:2017-7-17 14:35:31
帮顶                              
dsjsjf 回答时间:2017-7-18 13:42:10
学习               
xiaocheng 回答时间:2018-4-11 14:28:15
真正的学习资料
聪神聪 回答时间:2018-5-3 08:49:10
这不是原子的PDF文档吗,另外我想问下,你做网络摄像头实验没有

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版