基于STM32F417微控制器的图像采集系统设计

发布者:糖果龙猫最新更新时间:2018-04-01 来源: eefocus关键字:STM32F417  微控制器  图像采集系统 手机看文章 扫描二维码
随时随地手机看文章

    视频图像采集处理系统广泛应用于工业控制、工业检测、医学、机器视觉等领域,并且视频通信是3G时代多媒体应用的重要部分,日常生活中所见到的数码相机、可视电话、电话会议等产品,实时图像采集是其最核心的技术。图像采集的速度与质量直接影响产品的整体效果。大多数嵌入式图像采集系统都是基于DSP、ARM技术,一些系统比较复杂、成本高、实时图像处理比较困难。本文所设计的基于STM32F417的图像采集系统具有采集图像质量无损、实时性好、功耗低、成本低等优势,适合在对信息采集的实时性和图像质量方面有较高要求的系统中应用。

1 系统硬件平台
    图像采集系统主要由STM32F417微处理器、CMOS摄像头、帧缓存器、SD卡、LCD液晶屏及其他外设组成。图像采集系统整体框图如图1所示。

b.JPG

   1.1 核心微控制器

  嵌入式微处理器以其高性能、低功耗等优势成为便携式系统的最佳选择。ST公司开发的STM32F417是基于ARM Cortex-M4内核的32位闪存微控制器。其主频为168 MHz,在此工作频率下其处理性能可达210 MIPS,且电流消耗仅为38.6 mA;支持多种低功耗工作模式;内部集成DSP和FPU指令,具备高性能的信号处理和浮点运算能力;同时带一个8~14位并行照相机接口。此外,STM32F417片上集成1 MB的Flash和196 KB的SRAM。采用STM32F417作为图像采集系统的控制核心,将大大提高系统的性能,降低功耗和成本。

  1.2 CMOS摄像头

  CMOS摄像头选用OmniVision公司的OV7670。其内嵌一个10位A/D转换器,可输出8位RGB/YCbCr/YUV格式的图像数据,最高帧频可达30帧/s,最大图像分辨率为640×480,供电电压为3.3 V。O7670带有标准SCCB总线接口,并兼容I2C总线接口。

  1.3 帧缓存器

  选用美国AverlogIC Technologies公司的大容量AL422B作为采样处理的共享数据RAM。它是一款存储容量为384 K×8 B的FIFO存储芯片,工作频率可达50 MHz。所有的寻址、刷新等操作都由集成在芯片内部的控制系统完成。在本设计中,1帧图像数据包含320×240个像素,完整存储一帧图像需要153 600字节,AL422B所具有的容量完全符合系统的设计要求。

  1.4 SD卡

  SD卡是一种基于半导体快闪存储器的新一代记忆设备,有着广泛的应用领域。本设计选用金士顿8 G的SD存储卡存储采集信息,方便系统对信息的进一步处理。

  1.5 LCD液晶屏及其他外设

  LCD液晶屏选用3.2寸TFT液晶屏320QVT,分辨率为240×320,其数据引脚直接与FSMC总线接口相连。其他外设包括LCD接口电路、ZigBe e无线模块、JTAG调试电路、复位电路、晶振电路等。

  1.6 图像采集电路的设计

  摄像头图像采集电路采用24 MHz有源晶振为OV7670提供系统时钟。为了解决微处理器与摄像头间的数据传输速率不一致问题,在二者之间加入一片AL422B帧缓存器,将摄像头采集的图像数据缓存后再送给微处理器。为实现将OV7670输出的图像信号自动地存入AL422B芯片,电路采用了一片与非门芯片74HC00,以便产生符合AL422B要求的写时序。需要注意的是,由于AL422B芯片正常工作需要3.3 V供电,如果STM32 F417使用3 V电压供电时,需要在两芯片接口之间增加一个74HC573 D锁存器,以满足高/低电平的要求。图像采集电路图如图2所示。

c.JPG


  图像采集模块与STM32F417的接口电路示意图如图3所示。

d.JPG

 

   在图3中,利用STM32F417的PC0~PC7口接收OV7670输出经过AL422B缓存后的8位图像数据。OV7670的SIO_D、SIO_C接口与STM32F417的PA6、PA7引脚相连,通过该接口实现对摄像头的初始化配置。STM32F417的PE0、PE1、PB7、PB8分别控制AL422B的时钟信号、写复位、读复位以及读使能信号。PB9与OV7670输出的行扫描信号通过与非芯片实现对帧缓存器写使能的控制,STM32F417的PA10引脚通过中断的方式检测摄像头是否输出一帧完整的图像。

  由于OV7670带有标准SCCB接口,同时兼容I2C总线接口,本设计采用STM32F417产生的I2C总线信号模拟SCCB,实现对摄像头内部寄存器的初始化配置以及对其行场同步信号、开窗及输出格式的设置。对OV7670寄存器的配置方法如下:首先,发送OV7670的写地址0x42,然后发送写数据的目的寄存器地址和数据,从而初始化写操作;通过发送OV7670的读地址0x43,完成对读操作的初始化,从而实现对OV7670摄像头的初始化配置。

  在对摄像头工作参数配置过程中,将OV7670的寄存器DBLV设为0x80,对输入时钟倍频数进行控制。设置寄存器BRIGHT、CONTRAS,控制图像的亮度和对比度。通过寄存器REG75、REG76设置图像边缘增强上、下限。在对摄像头测试阶段,首先将寄存器ACALING_YSC设为0x85,显示8色彩条,测试阶段结束后将该寄存器设为0x00,进入非测试模式。

  OV7670输出同步信号包括:场同步信号VSYNC、行同步信号HREF、像素时钟PCLK。根据OV7670数据手册提供的同步信号时序图可知,OV76 70摄像头的像素时钟PCLK与FIFO写时钟WCLK相连接,在PCLK有效时将数据写入FIFO。场同步信号VSYNC为扫描一帧图像定时,在两个正脉冲之间完成一帧图像的扫描。

  当STM32F417第一次检测到VSYNC下降沿时,系统第一次产生中断,表明OV7670开始输出一帧图像,STM32F417将FIFO_WEN置高电平,当HREF有效(高电平)时,FIFO_WEN与HREF通过与非门使能FIFO的WCK,将有效图像数据自动写入FIFO中。

  当第二次VSYNC中断产生时,表明已经将一帧完整的图像写入FIFO,系统通过将FIFO_WEN置低,锁存一帧图像数据,实现图像的静态存储。此时,STM32F417送给FIFO的读时钟RCLK一个上升沿,将数据从FIFO中读出来,完成图像数据的实时采集与提取。

  1.7 存储模块

  SD卡支持SPI和SD两种模式,本设计采用SPI模式,将SD卡的CMD引脚与SFM32F417的SPI3_MOSI相连,CLK连接STM32F417的SPI3_SCK引脚,DATA0连接STM32F417的SPI3_MISO引脚,DATA3作为片选CS与STM32F417的PA15相连;在SD卡收到复位命令时,若CS为有效电平则启动SPI模式,SD卡在SPI3_SCK的控制下通过DATA0完成数据的读写。

  2 系统软件设计

  在图像采集软件设计中,对系统各个部分的初始化是最为关键的一步,只有对各部分初始化成功以后,才能实现图像采集功能。图像采集初始化程序主要包括对系统、SCCB接口、OV7670摄像头、FIFO缓存器ALA22B等的初始化。在系统初始化设置成功以后,微控制器不断监测VSYNC信号电平变化,根据VSYNC产生的中断情况,控制FIFO对图像数据的读/写。图像采集程序流程图如图4所示。e.JPG


  2.1 设置SCCB的相关参数

  由于对摄像头工作参数的配置主要通过SCCB来实现,因此,在系统进行软件设计时,首先设计SCCB相关程序,进而通过SCCB设置摄像头的相关参数。SCCB设计的重要函数如下。

  (1)模拟SCCB接口初始化函数

   f.JPG
    (2)SCCB的起始信号函数
   g.JPG
2.2 OV7670的寄存器配置
    在完成SCCB初始化、起始与停止等相关程序后,配置OV7670寄存器完成工作参数的设置,包括显示模式、输出格式、增益控制等。OV76 70的寄存器配置如下:
    h.JPG
2.3 AL422B的初始化
    由于OV7670输出的图像信息首先存入AL422B进行缓存,因此,还需要对AL422B进行初始化。AL422B的初始化函数如下:
   i.JPG
    系统启动后,首先利用各部分初始化函数对系统进行初始化,在整个系统初始化成功后,打开系统中断,准备进行图像采集。当VSYNC产生第一次中断时,开始采集图像信息,微处理器通过控制AL422B的读写使能完成图像信息的实时采集,最终将提取的图像数据存入SD卡。

3 实验结果
    图像采集示意图如图5所示,预览图片大小为VGA(320×240)。实验结果表明,本系统实现了对图像的实时采集功能,同时图像质量损失较小,显示效果良好。

a.JPG

      结语

  本系统采用STM32F417实现了对OV7670的功能控制、时序同步、数据采集以及本地存储等功能。在实际应用过程中,显示效果良好,图像质量损失小。该系统的图像采集效率高、体积小、功耗低、可扩展性强。通过对采集到的信息进行压缩编码后,利用USB和ZigBee接口,图像数据可以通过有线或无线网络传输到上位机,可实现图像信息的远程采集。


关键字:STM32F417  微控制器  图像采集系统 引用地址:基于STM32F417微控制器的图像采集系统设计

上一篇:AT91SAM9261 先进中断控制器分析
下一篇:基于S3C6410的CAN总线接口扩展方案

推荐阅读最新更新时间:2024-03-16 15:58

51单片机的引脚及各引脚功能介绍
当我们拿到一块MCS-51系列单片机芯片时,看到这么多的引脚,他们都有干什么用的? 8051单片机的引脚图 引脚功能: MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图: l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自已的表达
[单片机]
基于单片机的等精度频率计设计
0 引言 随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代测量仪器。频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。传统的频率计测量误差较大,等精度频率计以其测量准确、精度高、方便等优势将得到广泛的应用。 传统的测频方法有直接测频法和测周法 ,在一定的闸门时间内计数,门控信号和被测信号不同步,计数值会产生一个脉冲的误差。等精度测频法采用门控信号和被测信号同步,消除对被测信号计数产生的一个脉冲的误差。等精度频率测量方法消除了量化误差,可以在整个测试频段内保持
[单片机]
基于<font color='red'>单片机</font>的等精度频率计设计
Microchip 推出低成本兼具先进外设及低功耗的入门级PIC188位闪存MCU
PIC18F4321 系列可以以 28/40/44 低引脚数 封装实现 更完善的闪存 10 位数模转换 和纳瓦技术    全球领先的单片机和模拟半导体供应商—— Microchip Technology Inc. (美国微芯科技公司)近日推出包括四款器件的 PIC18F4321 8 位单片机系列。这些器件具有先进外设、低引脚数和小面积封装选项,同时通过纳瓦技术保持低功耗水平。该系列可为有意采用 Microchip PIC18 高端 8 位单片机系列的工程师提供更具成本效益的入门选择,让他们以更低价格享用更强性能和更多外设;并且提供无缝的
[新品]
基于MSP430F2272的多路光功率计的设计原理和实现方法
  本文主要介绍了一种基于MSP430F2272单片机的多路光功率计的设计原理和实现方法MSP430F2272单片机具有多路模拟输入复用端口的片上集成10位模数转换器,可在低功耗条件下实现测量多路光信号功率的功能。整个设计简单实用,易于实现。   光通信中,需要对光纤中的载体光信号强刺进行准确测量,而光功率计就是基于此设计的能检测出光纤信号源功率的仪表,是光纤通信工程实际应用和各种科学实验不可缺少的测量仪器。   光功率计的核心运算和控制器件通常选用5V供电的C51系列单片机,系统功耗相对来说较高C51系列单片机本身没有集成A/D转换模块,信号采集后的A/D转换需要外接芯片,不仅占用单片机的I/O端口,而且增加功耗,对于功
[单片机]
基于MSP430F2272的多路光功率计的设计原理和实现方法
8051单片机教程第二课:单片机的内部、外部结构(一)
一、单片机的外部结构 拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。1、电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。2、振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶振,电容,连上就可以了,按图1接上即可。3、复位引脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。4、EA引脚:EA引脚接到正电源端。至此,一个单片机就接好,通上电,单片机就开始工作了。 我们的第一个任务是要用单片机点亮一只发光二极
[单片机]
8051<font color='red'>单片机</font>教程第二课:<font color='red'>单片机</font>的内部、外部结构(一)
WPF与51单片机之间的串口通信
WPF部分: (1)建立WPF工程,步骤略 下面是MainWindow.xaml.cs的内容 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Windows; 5 using System.Windows.Controls; 6 using System.Windows.Data; 7 using System.Windows.Documents; 8 using System.Windows.Input; 9 using System.Windows.Media; 10
[单片机]
WPF与51<font color='red'>单片机</font>之间的串口通信
锐成芯微助力南芯推出无线充、快充MCU的新品
2021年11月,国内电源和电池管理芯片领域领军企业--上海南芯半导体科技有限公司(以下简称南芯)发布了内含锐成芯微LogicFlash® MTP IP的 MCU产品,该新产品与成都锐成芯微科技股份有限公司(以下简称锐成芯微)合作开发,此次发布标志着锐成芯微与南芯的合作进入新阶段。 本次推出的SC9608是一款高集成度无线充电发射端SOC解决方案,芯片内部集成32位高性能 MCU、256Kbits LogicFlash®、高效率全桥逆变系统、FSK调制和双路ASK解调系统。既支持 BPP5W、EPP10W 以及 EPP15W无线充协议,也支持QC2.0/ QC3.0/AFC/FCP/SCP以及PD等快充协议。高精度电压电流检测及
[手机便携]
适合单片机裸机的开源软件框架:Zorb
很多时候,做单片机项目,会因为性能和内存资源的限制,没办法运行一些“大型”的通用框架,这个时候,一些轻量级的软件框架有显得尤为重要了。 这里就给大家分享一款一款适合单片机裸机的开源软件框架:Zorb Zorb简介 Zorb Framework是一个基于面向对象的思想来搭建一个轻量级的嵌入式框架。 搭建Zorb Framework的目的是为在不能运行Linux的芯片上快速开发应用,不用反复造轮子。 Zorb Framework的初步设计功能有: 1、时间系统功能zf_time 2、环形缓冲区功能zf_buffer 3、列表功能zf_list 4、状态机功能zf_fsm 5、事件功能zf_event 6、定时器功能zf_time
[单片机]
适合<font color='red'>单片机</font>裸机的开源软件框架:Zorb
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved