APP下载

基于STM32的图像采集与显示系统的设计与实现

2016-03-13邵阳学院信息工程系张勇强余建坤

电子世界 2016年2期

邵阳学院信息工程系 张勇强 阳 泳 余建坤



基于STM32的图像采集与显示系统的设计与实现

邵阳学院信息工程系张勇强阳泳余建坤

【摘要】图像显示与图像采集技术的发展与广泛运用使得人们的生活与工作简便、快捷。针对图像采集与图像显示技术的研究具有重要的社会价值和经济价值,图像采集与显示系统最为重要的就是图像的处理能力与显示清晰度的,基于这两点问题,本文就以STM32F4系列单片机作为主控处理芯片、图像采集则是使用OV7670摄像头模块,将采集图片存储在AL422芯片中并且其通过3.5寸的TFT液晶显示屏显示出来,期望对图像采集与显示技术的研究有所帮助。

【关键词】图像采集与显示;stm32F4单片机;ov7670摄像头模块;AL422芯片

随着对图像采集技术与图像显示技术的研究,图像采集与显示系统在各个领域中得到了广泛运用,例如运用在社会社交、安防领域、远程医疗及实时监控等各个方面,所以针对摄像头图像采集与显示技术具有重要意义,而且其在未来拥有广泛的应用市场和发展前景。本文就使用STM32F4单片机所设计的简易图像采集系统为例子进行详细的分析与论述,本系统核心在于通过OV7670摄像头采集图像数据,在通过STM32处理相应的数据,主要是以软件的处理图像数据以及将其通过TFT液晶屏显示出来。

1 系统设计

系统控制核心以STM32高位单片机来控制,通过软件编程来控制OV7670摄像头模块的内部参数来实现其采集图像数据,摄像头将采集的图像信息转化成为数字信号以帧的形式存储在AL422芯中,而单片机通过控制IO读取的Al422里面的帧数据,之后通过相应的帧处理算法将数据显示的TFT液晶屏上,所以本次系统主要分为图像采集模块、图像存储模块、数据处理模块以及数据显示模块等四个模块,以下是每个模块具体分析。

1.1数据采集

图像数据的采集使用的OV7670摄像头模块,主要通过SCCB总线接口实现伽玛曲线、白平衡、饱和度、色度等图像处理功能,由于OV7670摄像头模块小巧方便,适用于各种场景。而为了提高的图像质量,弥补电子设备的光学缺陷,使用如固定图案噪声、托尼、浮散等方式提高图像质量质量,以方便得到清晰的彩色信息。同时使用OV7670模块能够有效的较少系统的外部硬件电路配置,将OV7670摄像头模块的功能与数据引脚直接与STM32单片机连接,通过软件编程来实现控制OV7670模块。

1.2数据存储

采用AL422芯片作为视频缓冲器,将摄像头采集到的数据以帧的形式存储到AL422芯片中,一帧图像信息通常包含640x480或720x480个字节,而AL422芯片的容量足够存储一帧完整的数据信息,且能够自动刷新芯片内部数据,而且对于本系统而言,AL422芯片价格比较便宜,适合本图像系统的图像数据的缓冲器,故使用作为图像信息存储器,通过软件编程的来控制AL422芯片,实现数据存储的与读取。

1.3数据处理

为了能够得到更加高质量的图像,需要高位单片机来对摄像头采集的信息进行处理,所以选择arm cortex-m3内核的STM32F4单片机作为系统主控,STM32单片机操作简单,数据处理能力高且快,并且拥有大容量得到Flash存储器,所以综合各方面需求,故采集用STM32F4单片机作为本系统的主控芯片。

1.4数据显示

系统采用3.5寸的TFT彩屏显示,分辨率为480x320,屏幕驱动则是由屏幕的厂商提供,不需要自己去写,所以只需要控制屏亮度以及的显示内容,此部分主要是通过编写软件程序来实现。

2 软件程序编写

软件程序主要是为了使用各种硬件资源需要配置相应的时钟、IO、引脚以及各种总线接口,通过STM32的数据手册进行相应的操作来控制。本次的摄像头主要是的作为视频图像采集而不是拍照作用,所以此次可以不进行图像格式的处理,例如BMP、JPG解码操作,当然如果要提高此系统的功能,可以将图片解码操作加上去,增加照相功能。

2.1OV7670摄像头模块驱动控制编写

摄像头模块根据图像传感器的不同可以分为CCD与CMOS两种,本系统使用的OV7670是CCD型模块,而FIFO缓冲器的则是用于驱动摄像头与做图像缓存的作用,所以对于摄像头模块模块控制主要通过对其采集的数据进行处理,至于摄像头驱动则有FIFO芯片进行驱动。程序只需要通过控制单片机引脚来时控制数据端口和摄像头的控制接口即可,通过控制接口操作控制摄像头模块的寄存器,使得摄像头进行采集数据。

2.2AL422存储芯片驱动编写

AL422芯片也是属于FIFO器件、是一种先进先出的数据缓存器、没有外部读写地址线,

通过编写相应的程序要控制IO引脚进行数据的顺序的写入以及数据的读出,AL422内部能够自动刷新数据,主要是用于不同时钟域之间的数据传输、主要有两种结构:触发导向结构和零导向传输结构,通过编写STM32程序控制IO引脚对AL422芯片的数据的存入与读出。

2.3图像数据处理

帧数据处理为本系统主要部分,数据帧就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等。通过视频帧数据的处理,已得到更高质量的图像信息,所以此部分的帧数据算法的处理要求很高,本次采用的是MP4文件的分割算法处理,所谓“分割”,就是把大文件切成小文件,要实现mp4的分割,首先需要获取到关键帧列表;然后选择要分割的时间段(比如从关键帧开始);接着重新生成moov box(注意所有相关的box 以及 box size都需要改变);最后拷贝对应的数据,生成新文件。大致为这样,所以为了提高图像质量,此部分的算法处理要好。

2.4图像显示程序编写

3.5寸的屏幕驱动由屏幕厂家提供,通过屏幕驱动编写相应的显示函数,将处理好的视频帧数据通过显示函数显示在在液晶屏上。

3 结论及总结

综合上述,通过本次设计中,通过对系统不断测试与调试,最后能够通过将OV7670摄像头采集图像通过TFT彩屏显示出来,并且总结以下几点经验:(1)选取的摄像头的类型要合适。不同类型的摄像头有各自的适用环境,其在参数和功能上有很大的差别,选择不合适会严重影响采集数据的准确性;(2)应将采集到的数据先存储再进行数据处理。将采集到的数据线存储起来再处理,一方面可以防止数据丢失,另外一方面可以避免一下处理太大的数据;(3)为了提高图像质量,针对采集到的信息算法应该加强处理,以得到更高质量的图像。

参考文献

[1]李德明,韩剑,江国强.基于ov7670的图像采集及显示系统设计[J].仪器仪表学报,2010(08):30-33.

[2]龚跃玲,汪玲彦.基于stm32 的usb otg 数据通信的实现[J].微型机与应用,2011(30):32-34.

[3]何华芝.基于stm32的车载监控设备的硬件设计[J].电子测量技术,2008(12):139-141.

张勇强(1992—),男,福建三明人,大学本科,现就读于邵阳学院信息工程系通信工程专业,研究方向:嵌入式系统。

阳泳(1994—),男,湖南人,瑶族,大学本科,现就读于邵阳学院信息工程系电子信息工程专业 ,研究方向:嵌入式系统。

余建坤(1966—),男,湖南冷水江人,硕士,副教授,研究方向:现电子设计理论。

通讯作者:

作者简介: