APP下载

基于STM32F407与OV2640的图像采集系统的设计

2018-07-26杨才生吴状肥万国义

汽车实用技术 2018年13期
关键词:微控制器寄存器摄像头

杨才生,吴状肥,万国义

(上汽通用五菱汽车股份有限公司,广西 柳州 545007)

关键字:STM32F407;OV2640;嵌入式系统

引言

随着计算机技术的发展,嵌入式系统越来越多应用在各种微型控制系统中,如智能驾驶系统、机器人视觉系统、场景监控系统等,这些系统中大量使用摄像头,虽然市面上有很多摄像头可直接使用,但是具有个性化的摄像头还是需要用户自己设计和研究,比如要求摄像头嵌入到控制系统中、要求具有视频捕捉功能、要求具有图像识别、对象跟踪功能等。在智能驾驶系统中中的图像采集与处理技术,在汽车主动安全领域具有非常重要的意义。

1 系统结构与功能

一套完善的图像采集系统由硬件和软件两个部分组成,其中硬件部分主要包括微控制器、摄像头、图像存储设备等,软件部分主要用来驱动摄像头,并实现图像的传输、存储与处理等任务。

2 硬件设计

2.1 最小系统

(1)电源电路

电源电路用于给视觉系统提供功率需求,本设计要求电源模块能将24V车载电源转化成+5V和+3.3V两个级别,其中+5V给摄像头等模块供电,+3.3V给MCU供电。图1是24V转+5V的电路原理图:

图1 24伏转5伏电源电路

图1中,MURB1620CT用于防止电源反接,SMAJ36A通过吸收浪涌冲击实现对电路中的元器件的保护,LM2575S型调压器可输出高达3A的稳定电流,从而为摄像头等外设的工作提供了保证。

为了使STM32型微控制器正常运行,需要给其提供3.3V稳定的电压,图2所示为采用REG1117-3.3型集成三端稳压器实现+5V到+3.3V的转换:

图2 5伏转3.3伏电压

作为常用的降压型稳压器,REG1117-3.3可将 4.8~10V的输入电压稳定在+3.3V,且保证输出电流高达 800mA,完全满足图像采集系统微处理器的功耗需求。

(2)复位电路

STM32F407是低电平复位的,所设计的复位电路如图3所示,其中R13和C23构成了上电复位电路:

图3 复位电路

(3)JTAG调试接口

图4 JTAG调试接口

通过JTAG调试接口既可对STM32F407内部数据进行监测,又可实现 ISP(In-System Programmer,在系统编程),便于对微控制器的FLASH等器件进行编程。图4所示为本设计所采用的20引脚JTAG调试接口。

2.2 摄像头接口

STM32F407自带数字同步并行摄像头(DCMI)接口,该接口能够接收外部8~14位CMOS摄像头模块发出的像素数据流。STM32F407为OV2640型摄像头模块提供的接口如图5所示:

图5

在该接口中使用了微控制器的如下引脚资源:

DCMI(D[0:7]):用于接 OV2640型摄像头模块的数据输出引脚;

DCMI_HSYNC:用于接OV2640型摄像头模块的水平同步信号引脚;

DCMI_VSYNC:用于接OV2640型摄像头模块的垂直同步信号引脚;

DCMI_PIXCLK:用于接 OV2640型摄像头模块的像素时钟信号引脚。

2.3 存储器接口

STM32F407自带的标准的SD卡接口使用4位SDIO接口驱动,最高通信速度可达 48Mhz(分频器旁路时), 最高每秒可传输数据 24M字节,完全满足图像传输速度的要求,SD卡的接口电路如图6所示:

图6 SD卡接口电路

3 软件设计

3.1 摄像头驱动

OV2640的初始化

OV2640型摄像头模块的初始化包括以下几个方面的配置和操作:

(1)选择控制对象为图像传感器,通过向 RA_DLMT寄存器写入0x01实现;

(2)软复位OV2640,通过COM7寄存器写入0x80实现;

(3)设置图像参数,包括:输出模式,白平衡,亮度,对比度,特效,分辨率等。

图像格式控制

由于YUV422格式的图像直接读取其像素的Y分量即可获得该像素的灰度信息,因此驱动 OV2640时优先考虑YUV422格式图像数据的输出。OV2640输出YUV422格式图像数据需要依次通过以下配置实现:

(1)通过向RA_DLMT寄存器写0x00选择控制对象为摄像头模块内置DSP。

(2)通过 IMAGE_MODE寄存器切换摄像头模块的数据输出格式。

(3)通过CTRL0寄存器控制摄像头模块的使能。

3.2 图像的缓存

图像传感器采集到的像素数据缓存在 32位数据寄存器DCMI_DR中,然后通过DMA传输至外部存储设备。STM32F407的直接存储器访问DMA可以在无需任何CPU操作的情况下通过DMA快速移动数据实现外设与存储器之间的高速数据传输,这样节省的CPU资源可供其它操作使用。

在本设计中,DCMI每次触发DMA请求时DMA仲裁器根据当前请求的优先级启动图像数据流从 DCMI_DR到FIFO的传输。当图像数据量达到FIFO的阈值时,FIFO中缓存的图像数据被转移至外部SRAM中。当数据流项数寄存器达到零时DCMI请求DMA终止当前的数据传输事务。

3.3 SD卡的驱动

为了实现大量图像数据的存储,图像缓冲区中的像素数据要被及时转移至SD卡中,使用SD卡进行图像存储主要通过以下函数来实现:

//写SD卡

//buf:写数据缓存区

//sector:扇区地址

//cnt:扇区个数

//返回值,错误状态,0,正常,其它,错误

u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt)

{

u8 sta=SD_OK;

u8 n;

long long lsector=sector;

lsector<<=9;

if((u32)buf%4!=0)

{

for(n=0;n

{

memcpy(SDIO_DATA_BUFFER,buf,512);

sta=SD_WriteBlock(SDIO_DATA_BUFFER,lsector+512*n,512);

buf+=512;

}

}else

{

if(cnt==1)sta=SD_WriteBlock(buf,lsector,512);

else sta=SD_WriteMultiBlocks(buf,lsector,512,cnt);

}

return sta;

}

4 结束语

本文基于STM32F407型微处理器和OV2640型摄像头加SD卡的设计方案不仅成本低廉,而且功能齐全,整体效果较好,硬件平台设备较为成熟。在软件方面,程序流程严谨,逻辑严密,而且驱动程序较为完善,各个模块之间不存在耦合性,系统运行稳 定、可靠。

猜你喜欢

微控制器寄存器摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
Lite寄存器模型的设计与实现
TASKING针对英飞凌第三代AURIX微控制器推出多核开发环境
常用电子测速法在某数字信号处理器中的应用*
移位寄存器及算术运算应用
电磁导向智能车设计探讨
无法开启摄像头的解决方案
基于MC9S08QG8低端微控制器的无线控制器设计
找出摄像头花屏的“罪魁祸首”