基于STM32的视频采集系统_第1页
基于STM32的视频采集系统_第2页
基于STM32的视频采集系统_第3页
基于STM32的视频采集系统_第4页
基于STM32的视频采集系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要科技不断发展的世界里,嵌入式技术慢慢渗透进人们的生活中。而且嵌入式技术在通信领域有着重中之重的作用,其中包括互联网、商务电源、医疗保健、电子等邻域。集成系统已成为最好和最有效的IT应用程序之一。本文设计了一款通过摄像头采集数据存入SD卡中,通过LCD屏显示的系统。该系统采用意法半导体公司开发的STM32F407为微控制器,OV2640作为图形模块,同时还设计了SD卡作为存储图像数据的模块,通过以ILI9341为控制芯片的显示屏显示图像。本文从国内外研究、系统的总体结构、对于硬件的选择、硬件的设计以及系统软件设计先后进行阐述。最后通过测试,本文实现对图像的采集、显示以及存储。关键词:STM32F407;OV2640;显示屏;SD卡

设计说明在日常生活中,到处可见嵌入式系统的身影,在各行各业都在运用嵌入式来工作。本次设计是实现图像采集的功能。可知,图像采集在生活中随处可见,比如手机、相机还有公路上对车的实时监控,都运用了图像采集的方式。本次设计想要实现图像采集的功能,将其运用到更多的地方,同时本设计也可以在LCD显示屏上实时观察摄像头采集的图像。所谓获取图像是通过摄像头收集图像并将其显示在LCD上,并存储在SD卡中,可以通过LCD显示屏在SD卡上查看图像。在本次设计中,运用到的模块包括图像采集模块、图像存储模块、图像显示模块和控制模块,分别选用了OV2640、SD卡、LCD显示屏和STM32F407ZGT6。运用OV2640进行原始图像的采集,通过图像传感器进行图像处理,将原始图像处理为图像数据。将摄像头模块与STM32F407自带的数字摄像头通过DCMI接口相连接,STM32F407将控制摄像头模块的采集。图像数据通过STM32F407传输到LCD显示屏上实时显示,按下按键将采集的图像数据存储在SD卡中。按下不同的按键可控制图像的采集和图片的显示。控制图像采集时,不同的按键可调节图像的对比度、曝光、缩放大小等等。对于图像采集,首先,对SCCB总线进行初始化程序,因为OV2640是通过SCCB总线来进行访问且设置,从而实现对图像的控制。其次,对OV2640进行初始化程序,不仅是对引脚初始化,还有对时钟使能等等方面的初始化。然后,对于图像采集程序的设计,通过DCMI驱动OV2640来实现图像采集功能。对于图像存储,通过SDIO接口将SD卡与STM32F407相连接,同时也通过此接口,将数据传输到SD卡中存储起来。对于图像显示,采用LCD显示屏,将图片数据以RGB565模式显示。因此,图像采集的功能实现,需要这几个模块协同工作才能实现。在按键的设置上,对于每一个按键的功能都需要明确的设置,其中包括图像采集的控制,对于图像饱和度等等的变化和图像缩放的控制等等。本设计从研究背景、研究的目的、模块的选取、硬件电路的设计、软件设计依次进行论述。最后,还包括了功能的实现与测试,最终实现图像的采集、显示和存储功能。关键词:OV2640;SD卡;LCD;图像采集;STM32F407ZGT6目录1引言 图像采集系统的系统设计硬件设计微控制器电路设计本设计使用STM32F407作为微处理器来控制图像接收数据,将数据保存在SD卡上,然后将生成的图像数据发送到LCD显示屏中进行显示。在STM32F407中,通过BOOT[1:0]可以选择三种启动模式,如表4.1所示。此配置通过串口下载代码,如图所示,需要将BOOT01和BOOT1设置为0。这种情况下,可以一键下载结束改变状态。编号方式说明1BOOT0:0;BOOT1:X即通过FLASH启动2BOOT0:1;BOOT1:0此模式用于串口下载3BOOT0:1;BOOT1:1此模式用于SRAM中调试代码表4.1STM32启动模式图像采集和处理电路设计本设计使用STM32自带的数字摄像头模块连接OV2640图像传感器。图4.2是STM32F4自带的数字摄像头的原理图。D0~7文件输入用于获取相机数据。HSYNC是行同步输入信号,用于接收来自摄像机的HSYNC/HREF信号,VSYNC是垂直同步输入信号(场同步),用于接收信号。来自摄像机的VSYNC信号。PIXCLK是用于从摄像头接收PCLK信号的像素时钟输入。其中,引脚DCMI_VSYNC和DCMI_HREF用于控制图像输出。图4.2

数字摄像头原理图

存储模块电路设计本设计展示了容量为32GB的卓应存储卡。SD卡可以存储BMP和JPEG格式的图像,并且可以从D卡中读取图像在显示屏上进行显示。其中,SD卡通过SDIO接口与STM32F407相连。SDIO接口是在SD卡接口基础上开发的设备,兼容早期的SD存储卡,可以集成到带有SDIO接口的应用中。图4.3为SD卡与STM32F407连接的电路原理图

4.3SD卡电路原理图LCD显示屏电路设计TFT_LCD显示屏可以看作是一块粘合在两个玻璃窗之间的液态玻璃,上面的玻璃基板是彩色滤光片,下面的玻璃上面安装了晶体管。当电流进入晶体管时,它可以点对点地改变,关闭液晶分子,然后改变光的偏振,然后使用偏光片来确定图像的亮暗颜色。此外,在上面的玻璃面板经过颜色的过滤,让每个像素都有红、蓝、绿这三种颜色。所以说,面板上的画面就是由红、蓝、绿这三种颜色的像素组成的。图像每一种都含有红、蓝、绿三种颜色,而这三种颜色在面板中就会呈现出来。本设计采用2.8英寸液晶屏,搭配ILI9341控制芯片,分辨率为240*320。STM32F407ZGT6可以通过FSMC接口控制LCD显示屏的显示。如图4.4所示为LCD显示屏接口电路。4.4LCD显示屏接口电路软件设计这个过程的基本流程是系统的启动和图像的获取和生产。首先是启动系统,包括设置系统时钟、启动按钮和暂停激活、LED初始化;然后进行LCD初始化,SD卡FATFS文件系统初始化,直到SDIO中断,根据SCCB总线执行后,启动场信号。然后开始取图,等到图片设置好,进入拍摄;等到按下按钮进行拍摄,同时将图像保存到SD卡中。本设计的基本流程如图4.5所示。图4.5系统的基本流程图像传感器初始化SCCB总线OV2640的配置组件由外部驱动程序通过SCCB总线发送。SCCB的启动信号、停止信号和控制信号与I2C类似。如图4.6可知,当SIO_C为高电平时,SIO_D上有一个下降点,SCCB开始发送。在SCCB开始发送的时候,时钟会变为高,数据线将从高到低。在激活后,SDA和SCL都为低电平。当SIO_D有一个上升点时,SCCB停止传输,时钟依旧为高,数据线从低到高。空闲状态的时候,SDA和SCL都为高电平。4.6SCCB的传输过程OV2640初始化(1)对于配置摄像头模块的控制引脚,并设置OV2640的工作模式。OV2640配置列表,设置输出状态和输入状态,自行退出控制模式,结束复位,然后完成编辑,然后完成摄像头的基本设置。本设计采用JPEG和BMP两个图像输出格式。(2)设置有关的引脚和功能,使能时钟。首先,引脚需要按照自身需求进行设置,然后对每一个引脚,都要先将一个信道同时传输多路信号的功能关闭,因为单片机中有很多功能。如果需要某一功能,就将复用功能打开。(3)对于DCMI相关设置进行配置。系统是一个DCMI_CR寄存器,打开帧中断,编写DCMI中断服务,将数据最简单化处理。另外,在本设计的显示中,采用JPEG格式来输出图像,因此只需要用标准的方法就可以实现精确地输出。(4)配置DMA。(5)设置OV2640的图像大小以捕获DCMI。OV2640初始化流程图如图4.6所示。4.7OV2640初始化图像采集程序设计OV2640的驱动STM32F4带有数字摄像头,这是一种多功能组合,可提供8位、10位、12位或14位高数据吞吐量(高达54MB/s)。该接口可以支持多种文档格式:YCbCr4:2:2/RGB565高级图像和静止格式(JPEG)。32位数据寄存器会保存这些数据,然后这些数据会被DMA传输到固定的地方。数据在被摄像头采集之后会按照行或帧来组织,也可以是JPEG图像。如果想要采集JPRG图像的话,必须将DCMI_CR寄存器中的JPEG设置为1。如图4.7DCMI顶级框图所示,图中右边的信号是DCMI的所有引出的信号线,包括连接器的说明。其中,由于EDM位[1:0]排列在DCMI_CR列表中,摄像头可以采集8位、10位、12位或14位数据。当DCMI_CR中的EDM[1:0]设置为“00”时,接口捕获其输入的8个LSB(D[0:7])并将其存储为8位数据。因此,数据库的数据输入要求低字节在前,高字节在后。如果使用少于14位,则必须保留未使用的引脚。它使用的通话时间等于OV2640输出图像数据的时间。4.8DCMI顶级框图由于DCMI收集的数据量很大,因此经常使用DMA将收集到的数据转换到内存中。DCMI支持DMA传输。如果DCMI_CR列表中的CAPTURE位设置为1,则DMA服务器将增加。图像板每有一个32位的数据框充满它的目录(DCMI_DR),它就发送一个DMA请求,DMA将DCMI_DR号的值移动到地址区(例如LCD/SRAM)。DCMI/DMA请求在DMA的数据流中指定,因此在设置DMA时必须设置此项。DCMI服务器支持硬件配置或嵌入式代码配置,OV2640就是采用HSYNC和VSYNC为同步信号的这种方式DCMI支持两种数据捕获模式,快照模式和连续捕获模式。快照模式就是在收集了一次摄像头模块的图像数据就结束。而连续捕获模式就是可以连续的收集摄像头模块的图像数据,并且可以通过确定捕获分数来验证收集到的大部分数据。可配置为采集所有数据或隔1帧采集一次数据或隔3帧采集一次数据。通过设置DCMI_CR寄存器中的CM位来选择模式选择。本设计使用连续采集模式,因此CM位设置为0。FCRC[1:0]用于控制帧率。VSPOL用于设置垂直同步极性,即数据不正确时VSYNC管脚上的水平位置,因此设置为0。HSPOL用于设置水平同步极性。如果数据正确,HSYNC引脚也设置为0。PCKPOL用于设置像素时钟极性。CAPTURE为了能够捕获,所以要设置为1。当使用这一位时,DMA被设置,DCMI等待第一个图像的开始,然后发出一个DMA请求来修改记录内存中的数据(最后使能)。其代码为:DCMI_InitStructure.DCMI_ExtendedDataMode=DCMI_ExtendedDataMode_8b;图像输出质量控制本设计使用的图像传感器OV2640支持的图像输出格式包括SXGA、XVGA、SVGA等等。其中,UXGA的分辨率为1600*1200。图像输出格式的设置包括了每一个部分的设置,其中有传感器窗口、图像尺寸、图像窗口和图像输出大小这些设置。这些设置都通过相关的函数来实现的,图4.9为读取OV2640模块图像数据的过程。4.9OV2640模块的图像数据本设计中,OV2640采集图像数据运用了两种模式,分别为JPEG模式和RGB565模式。JPEG模式或RGB56模式采集图像数据数据代码如下:OV2640_JPEG/RGB565_Mode(); //RGB565模式或JPEG模式My_DCMI_Init();//DCM初始化DCMI_DMA_Init((u32)&jpeg_buf,jpeg_buf_size,DMA_MemoryDataSize_Word,DMA_MemoryInc_Enable);或DCMI_DMA_Init((u32)&LCD->LCD_RAM,1,DMA_MemoryDataSize_HalfWord,DMA_MemoryInc_Disable);//JPEG或RGB565模式的DCMIDMA配置DCMI_Start();//开始传输本设计中采用分辨率为1600*1200的SXGA的图像输出格式,其代码如下:for(i=0;i<sizeof(ov2640_sxga_init_reg_tbl)/2;i++){ SCCB_WR_Reg(ov2640_sxga_init_reg_tbl[i][0],ov2640_sxga_init_reg_tbl[i][1]);}return0x00;如图5.1OV2640输出图像大小设置,其中:(1)最外层为传感器窗口设置(OV2640_Window_Set),传感器窗口设置允许用户设置整个传感器区域,即在传感器里进行开窗,范围是2*2~1632*1220都可以设置。要求传感器尺寸大于图像尺寸。(2)图像尺寸设置(OV2640_ImageSize_Set)即DSP输出图像的最大尺寸。通过0XC0、0XC1、0X8C等寄存器设置。(3)图像窗口设置(OV2640_ImageWin_Set)图像窗口实际上与前传感器窗口相似,但该窗口的大小与我们先前绘制的图像相同,同样,该窗口必须比以前制作的图像小。窗口后的图像范围被调整以将其输出。图像窗口设置通过:0X51~0X55、0X57等寄存器设置。(4)图像输出大小设置(OV2640_OutSize_Set)调整图像输出大小以控制最终输出的图像的大小。这将通过内部DSP确定的窗口的大小调整到我们输出的图像的大小。这一系统将使图像更大,如果产出的大小与图像窗口上的图像的大小不相同,则图像会放大,但只有在大小为1:1的比例的时候才会放大图像。图像输出大小通过:0X5A/0X5B/0X5C等寄存器设置。5.1OV2640输出图像大小设置过程OV2640中图像的输出是由三个引脚来控制的。分别是PCLK(像素时钟)、VSYNC(帧同步信号)和HREF(行同步信号)。在不同的情况下,一个像素时钟输出的像素个数也不同。一般来说,一个像素时钟输出一个像素,也有可能输出半个像素。5.2行时序图从图5.2可以知道,行同步信号是高电平的时候,输出图像数据,而且一个像素时钟就会输出一个8位或者10位的数据。在本设计中采用的是8位接口,也就是说一个像素时钟输出一个字节。在不同的格式下,输出也有所不同。比如是Raw格式的话,一个像素周期就等于一个像素时钟信号的周期;如果时RGB/YUV格式的话,一个像素周期就等于两个像素时钟信号的周期。高低字节按照低字节在前,高字节在后的顺序通过寄存器进行排列。这样一行一行地输出,每一行的像素时钟周期就有1600*2个,而采用8位接口就相当于输出1600*2个字节。5.3帧时序图众所周知,OV2640是支持两种输出格式的,但是这两种输出格式输出时是不相同的。如果是RGB565模式的话,时序图就如图5.2、图5.3所示;但如果是JPEG模式时,行同步信号不具备连续性,而且像素时钟会比RGB565模式下的像素时钟要少得多。系统整机调试及功能测试硬件制作常见故障:(1)可靠性差:可靠性不好的原因非常之多,例如芯片的质量直接影响到系统的稳定性,类似这样的外部原因都可以造成实验的不成功。(2)烧录代码进芯片时,Keil一直显示ST_LINK连接错误,可以检查一下线路是否有接错。ST_LINK的接口相对应与STM32的SWIO口和SWCLK口,也可以检查一下驱动软件版本是否过于陈旧,或者是ST_LINK设备出现了问题。(3)调试方法:包括多级调试以及联机调试。调试的时候,一定要细心观察,细心检查,对于问题要逐一进行排除检查,找到原因并去解决问题、排除故障。硬件调试的时候,对于存在的问题能够进行认真的分析和细心的纠正,只有这样做,才能让实验的目的最终设计完成,并且达到更好的效果。软件调试软件调试一般分为以下四个阶段:(1)编写程序并且初步检查错误;(2)在C语言的编译系统中编译程序;(3)将程序烧录进硬件中,在硬件中发现程序问题;(4)改正程序中的错误或者是没有实现的功能。设计效果调试在整体系统设计完成之后,对于设计进行了最后的调试。连接所有器件,对器件进行供电。LCD显示屏中可以实时显示摄像头模块所采集的图像,通过按键将摄像头模块采集的图像存储在SD卡中。图像采集的控制:(1)主界面:点击KEY0键进行BMP/JPG的图像采集;点击KEY1键可以查看SD卡的图像;点击KEY2键可以设置摄像头的参数设置;点击WKUP键返回到主菜单。(2)拍照界面:在主界面点击KEY0键进行BMP/JPG图像采集,进入拍照界面,点击KEY0键选择BMP格式的图像采集;点击KEY1键选择JPG格式的图像采集;点击KEY2键进行图像的缩放为1:1的尺寸;点击WKUP键返回到主菜单。(3)图像显示界面:在主界面点击KEY1键查看SD卡的图像,进入图像显示的界面。点击KEY0进行图像的播放;点击WKUP键返回到主菜单。(4)摄像头参数设置界面:在主界面点击KEY2键进行摄像头参数设置,点击KEY1键、KEY2键可以进行上一项、下一项的选择;点击KEY2键可改变选择的参数的配置信息,其中配置信息包括对比度、亮度、曝光、白平衡、色度、特效和图片大小的设置;点击WKUP键返回到主菜单。结语图像采集系统有着广泛的应用领域,在很多地方都用到图像采集系统。随着芯片不断的提高和创新,图像采集的实时性和图像清晰度都有了质的飞跃,这也为现在的生活提供了很多便捷,让大家的生活变得更加美好。在这次设计中,本人也从中懂得了一些东西。比如说,选择的模块一定要适合自己的设计。因为不同类型的模块运用在不同的环境中。而且像摄像头模块在参数和功能上是有很大的差别的,如果选择了不合适的摄像头模块的话,就会导致采集的图像数据存在不准确性。在采集图像的过程中,一定要将图像数据保存起来,这样能够给避免数据丢失,同时还可以避免处理同时至关重要的信息的需要。当然,如果想要提高图像的质量的话,可以对采集的信息算法进行加强,这样就可以得到质量更好的图像了。本设计是以STM32为微处理器,设计的一套图像采集系统。主要是通过OV2640摄像头模块采集原始图像,进行处理后,通过SD卡存储,通过STM32F407传输到LCD显示屏进行显示。在设计中,完成了系统的软件设计和硬件设计。硬件的选取、电路的设计,实现了系统对图像的采集、存储和显示等功能。在一开始设计的时候,本来是采用STM32F103和OV7670这两个硬件来实现本设计的功能。在后续了解中,发现STM32F407比STM32F103性能更高,能够在设计中发挥更好的作用,而且可以减小功耗。同时,STM32F407还有摄像头接口,可以通过摄像头接口与摄像头模块直接相连,减少了代码的工作量。同时,在本设计中没有考虑到将图像传输到PC端中,利用电脑来观看图像并保存。在之后的时间中,将会进行这个功能的编写,争取将这个功能实现。参考文献张兴武,赵庆志,张林华,夏汝岩,王政皓,孙小飞.基于STM32F103的嵌入式图像采集系统[J].山东理工大学学报(自然科学版),2018,32(05):23-26.李慧敏,樊记明,杨笑.基于STM32和OV7670的图像采集与显示

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论