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

OV2640

相关概念:学习

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

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


窗口设置:接口

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

通常来讲1,2采起默认设置,咱们只须要调整3和4便可。图片


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

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信号。 
同步

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

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

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

摄像头操做:配置

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

嵌入式学习交流群:561213221

相关文章
相关标签/搜索