基于STM32F417的图像采集系统设计

发布者:快乐心跳最新更新时间:2012-11-24 来源: 单片机与嵌入式系统 关键字:图像采集  STM32F417  OV7670  FIFO 手机看文章 扫描二维码
随时随地手机看文章
引言
    视频图像采集处理系统广泛应用于工业控制、工业检测、医学、机器视觉等领域,并且视频通信是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

[page]

    图像采集模块与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

[page]

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  OV7670  FIFO 引用地址:基于STM32F417的图像采集系统设计

上一篇:ARM系统体系结构
下一篇:基于ARM嵌入式技术的牙椅控制系统

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

利用FPGA实现异步FIFO设计
目前数据采集系统朝着高速和高精度的方向发展。随着FPGA的集成度和运行速度的提高,可以满足高速数据采集系统的需求。FPGA内部具有丰富的存储单元,易于实现各种存储器(如FIFO、双口RAM等);另外,基于查找表的逻辑单元可用于实现各种数字信号处理(如滤波等),以辅助DSP处理器做各种预处理。 TI公司推出的高性能数字信号处理芯片TMS320C6000系列,工作频率最高可达到1GHz,具有处理速度快、灵活、精确和可靠性高等优点,作为数据采集系统中的主处理器,可以满足实时性的要求。基于以上考虑,北京合众达公司开发了采用TMS320C6416和FPGA的高速高精度双通道数据采集系统,每个通道的采样率为3Msps,最高可达10Msp
[应用]
基于FPGA技术的新型高速图像采集
  现代的图形采集技术发展迅速,各种基于ISA、PCI等总线的图形采集卡已能在市场上买到,但是价格比较昂贵,并且处理功能简单.对于特殊需要不能很好满足,往往需要加上后续处理部分,这给特殊需要的用户带来了不便.采用现场可编程芯片及DSP处理芯片构成的图像采集系统,可以根据不同的需要进行现场编程,具有通用性好、价格相对便宜等特点.   该系统采用PHILIP公司最新推出的视频A/D芯片7111,将从CCD输出的PAL制式的全电视信号转换为数字信号,由FPGA作为采样控制器将该八位数字信号存入片内RAM中,随后可根据具体需要由DSP进行预处理,提取有用数据(数据量已很小),然后将所需结果经由ISA总线交给计算机处理,完成接口功能.
[嵌入式]
基于FPGA技术的新型高速<font color='red'>图像采集</font>
基于嵌入式Linux图像采集恢复和应用
1.引言       随着后PC时代的到来和嵌入式的蓬勃发展,运用嵌入式系统实现远程数据采集已成为社会需求的趋势。本文采用嵌入式系统采集图像数据实现加工零件的远程测量,代替传统的人工检测。其特点有:网络化,准确性高,节约人力和物力。   2.系统软硬件平 台       由于嵌入式设备资源有限,所以在开发嵌入式系统的软件部分需要在宿主机平台上实现,运用宿主机的资源编译目标机平台上可运行的软件。本文系统的宿主机平台:Redhat 9.0,交叉编译环境:ARM-Linux-Gcc;目标机平台:UBOOT 1.1,Linux 2.4.18 和YAFFS 根文件系统。       系统硬件平台的处理器采用 Samsung 公司的集成
[嵌入式]
ARM9的系统时钟和串口(非流控 + 非FIFO + 查询方式)
实验的目的: 设置系统时钟,并在串口上输入一个字符,单板接收后将它的ASCII值加1后,从串口输出。 实验的源程序: /************************************************************************* s3c24xx.h *************************************************************************/ /* WOTCH DOG register */ #define WTCON (*(volatile unsigned long *)0x53000000) /* SDRAM regi
[单片机]
基于ADSP-TS201S的图像采集处理系统
   引言 随着人们对实时信号处理要求的不断提高和大规模集成电路的迅速发展,作为数字信号处理核心和标志的数字信号处理器DSP芯片得到了快速的发展和应用。它不但可以广泛应用于通信系统、图形/图像处理、雷达声纳、医学信号处理等实时信号处理领域。就ADI公司而言,继16-bit定点ADSP21xx和32-bit浮点ADSP21xxx系列之后,日前又推出了TigerSHARC系列的新型器件。本文介绍使用该系列中的ADSP-TS201S芯片实现一个图像采集处理系统的设计方案。 系统总体方案 该系统可以完成图像的采集、处理和显示,从而实现目标识别与跟踪的智能信号处理。该系统是对摄像机数字,模拟两路视频数据进行采集,处理后
[应用]
【STM32H7教程】第30章 STM32H7的USART应用之八个串口FIFO实现
30.1 初学者重要提示 学习本章节前,务必优先学习第29章。 串口FIFO的实现跟前面章节按键FIFO的机制是一样的。 本章节比较重要,因为后面的ESP8266,GPS,RS485,GPRS等试验都是建立在这个驱动的基础上实现。 大家自己做的板子,测试串口收发是乱码的话,重点看stm32h7xx_hal_conf.h文件中的HSE_VALUE的大小跟板子上实际晶振大小是否一致,然后再看PLL配置。 CH340/CH341的USB转串口Windows驱动程序的安装包,支持32/64位 Windows 10/8.1/8/7。http://forum.armfly.com/forum.php?mod=viewthr
[单片机]
【STM32H7教程】第30章 STM32H7的USART应用之八个串口<font color='red'>FIFO</font>实现
凌华科技推出PCI Express接口高速图像采集卡PCIe-RTV24
      适用于大量图像数据传输的机器视觉与智能交通应用 2007年10月 22 日,北京讯 凌华科技领先国内业界推出最新总线PCI Express技术的高速图像采集卡PCIe-RTV24,能提供PCI Express x 1传输速度、4通道输出、与现有PCI接口完全兼容的软件层,适合各种检测设备所需的机器视觉应用及智能交通监控领域,例如定位、条形码读取、人脸辨识、车牌辨识等讲求高速及图像数据传输量大的应用,产品信息请浏览凌华网站:http:www.adlinktech.com/IA。 凌华PCIe-RTV24图像采集卡具备4个独立的图像处理IC,模拟方式的图像采集速度达到每通道每秒30帧,支持彩色RGB24、RGB16与灰
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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