基于单片机和CPLD的图像采集处理系统设计
2018-03-09兰宁发邓环宇王麓淞王意罗郑之鹏
兰宁发+邓环宇+王麓淞+王意罗+郑之鹏
摘 要:图像采集是获取图像信息的主要来源,以往图像采集处理需要高速、高性能处理器完成,低端单片机很难实时采集处理图像。文章以Cortex M3架构的ARM(STM32F103VCT6)和CPLD(EPM240T100)作为核心,加上OV5640自动对焦摄像头设计了一款数字图像采集处理系统。采用CPLD高速采集图形,以及图像预处理,这样降低了后面处理器标准,使得低端单片机也能够处理数字图像。单片机与CPLD采用SPI总线传输数据,图像采集和处理同时进行,提高了系统的工作效率。图像经过数字化处理,在液晶屏上显示,也可以存储在SD卡或无线传输到计算机以及手机上。系统设计了GPS系统,自动将拍摄的地点、经纬度(GPS信息)和时间整合,作为照片和图像数字资料。通过数字图像处理,照片能够呈现特殊效果。
关键词:图像采集;单片机;CPLD
中图分类号:TM91 文献标志码:A 文章编号:2095-2945(2018)07-0035-02
Abstract: Image acquisition is the main source of obtaining image information. In the past, image acquisition and processing needed high-speed and high-performance processors. It is very difficult for the low end microcontroller unit (MCU) to collect and process images in real time. In this paper, taking Cortex M3 architecture of the ARM (STM32F103VCT6) and CPLD (EPM240T100) as the core, plus OV5640 automatic focus camera, a digital image acquisition and processing system is designed. The use of CPLD high-speed graphics acquisition, and image preprocessing has reduced the standards of the processor behind, so that the low-end single-chip computer can also process digital images. Single chip microcomputer and CPLD adopt SPI bus to transmit data, so image acquisition and processing are carried out simultaneously, which improves the efficiency of the system. The images are digitally processed and displayed on the LCD screen. They can also be stored on SD cards or transmitted wirelessly to computers and mobile phones. The system designs a GPS system, which automatically integrates the location, latitude and longitude of shooting information with time so as to be used as the digital data of photos and images. Through digital image processing, photos can present special effects.
Keywords: image acquisition; microcontroller unit (MCU); CPLD
圖像处理是计算机人工智能重要组成部分,图像采集处理对计算机的要求也比较高。数码相机、智能机器人低端单片机完成图像实时采集处理很难实现,低成本当今社会人们的生活越来越好,追求生活多样化,数码相机的出现大大节省了普通摄影爱好者成本,人人都能当摄影家。随着计算机嵌入式技术的发展,使得数码照相技术从传感器采样到图像数字化处理的能力大大提高。图像信息是人们获得外界信息的主要来源,视觉检测在工业检测领域也处于比较重要的地位。嵌入式系统的体积较小,功耗较低,应用场合灵活,因此在图像采集和处理领域的应用逐渐增多。本文所设计的图像采集处理系统使用低成本设备,为初学者学习和开发构成硬件环境,同时实现高清拍摄,同时该设备可以实现图像拍摄及处理的一次完成,不需要像数码相机一样借助电脑等其他平台再次处理图像,并且该设备可以通过无线网络将图像数据传输到电脑及各种移动设备上。
1 系统总体设计方案
系统硬件结构采用如图1所示,主要有以下模块组成:摄像头模块,搭配OV5640自动对焦图像传感器,拥有强大的拍摄性能,集成高精度自动对焦马达,无论近景远景都对焦自如(15cm~无限远),高达5Mega(2592x1944)物理像素的分辨率,成像清晰细腻,集成各种控制器:自动曝光、自动增益、自动白平衡等,从容适应环境变化。图像采集控制模块,高性能CPLD芯片EPM240T100和8M Byte 大容量高速SDRAM,把采集的图像数据在SDRAM中缓存。核心模块是Cortex M3架构的单片机ARM(STM32F103VCT6),整合液晶触摸屏、无线网路通讯模块、外存储器SD卡以及调试接口,把SDRAM中图像数据采用FIFO方案分段读出,经过数字处理后显示和传输。ARM 通过GPS模块,读取图像采集时的地址坐标和时钟日历信息,集成WIFI模块,可以将图像直接传送手机和计算机。endprint
2 系统硬件设计及工作原理
系统的核心是单片机ARM Cortex M3,控制CPLD负责与摄像头同步,CPLD高速同步读取图像信息,按一帧图片存储在SDRAM里,单片机通过SPI总线读取SDRAM数据,在液晶屏幕呈現实时图像。CPLD模块部分基于Verilog编程,包括摄像头同步控制、SDRAM控制和单片机通讯。摄像头的初始化和拍摄命令是由单片机通过I2C总线控制的。在系统开机后,首先系统进入第一次初始化设置,配置系统外设时钟,功能模式以及I/O配置等。等待系统初始化后,用户通过液晶屏幕与系统进行交互,根据系统提供的选择界面进行功能选择。系统进入拍摄功能时,摄像模块会根据外界环境光线进行调节,需要保存图像时,可以把图片信息按标准格式存储在SD卡中,也可以通过WIFI模块无线传输到手机或计算机中。这种设计使得中低端单片机系统可以绕开高清拍摄所需要的速度和存储空间,而只需跟驱动低速设备一样控制成像模块,并花费很少内存(1~2kB),能够轻松地实现JPEG高清拍摄。图像采集原理图如图2所示。
在这个模块上,单片机发出拍摄指令,然后控制OV5640传感器及CPLD进行拍摄和图像采集的相关工作,最后向主机分段发回图像数据包。以往繁琐复杂的图像拍摄过程,通过协议格式,向模块发几条简单指令然后接收数据包,实现了低端单片机也能拍500万高清图像。
3 系统软件设计
软件系统分两大部分,第一部分是CPLD编程,基于Verilog语言设计,包含摄像头同步采集模块、SDRAM存储控制模块和SPI通讯模块;第二部分是单片机编程,基于C语言设计,包括液晶触摸屏控制、SD卡控制、WiFi通讯控制、GPS定位计算、SPI接口(读取图像数据)和I2C接口(摄像头控制命令)。上电后,首先单片机对OV5640传感器初始化,根据触摸屏命令设置图片格式、色彩校正等。对存储器SDRAM控制是CPLD模块的主要任务之一,SDRAM是同步动态随机存储器,价格相对静态存储器便宜,同步和刷新控制它的特点,通过模块状态机转换,实现自主协调控制。本系统采用Verilog编写的SDRAM控制器模块实现读、写命令、状态机控制、定时刷新控制、地址转换控制及仲裁逻辑。SDRAM控制器状态机,包括了SDRAM的初始化、模式设置、激活、触发读、触发写、所有体预充电、自动预充电、自刷新、自动刷新等操作,SDRAM 状态转换图如图3所示。图像的采集是将OV5640传感器高速同步读取的图像信息写到SDRAM里,存储一帧图片后,向单片机发出图像就绪信号,单片机响应后通过SPI总线,分批读取SDRAM图像信息。存储器读、写分别是OV5640传感器和单片机控制,本文设计了仲裁逻辑,通过状态号控制,对SDRAM 两侧的三套总线(地址,数据和控制)进行切换。时序上实现了存储器读、写不冲突。在CPLD设计过程中,采用混合设计方式,采用 Verilog 方式分别设计三套总线切换模块和地址发生模块,最后在通过在顶层模块例化所设计的相关模块构建该控制器。
单片机编程采用C语言编写,通过串口、I2C总线和SPI总线完成图像的采集、显示和输出。I2C是串行2线窄带工业标准协议,用于低速外设之间的通信,是一个多主机总线,连接到总线上的模块都有唯一的地址,可以通过冲突检测和仲裁防止数据破坏;OV5640传感器初始化和照相控制命令以及触摸屏信号读取是通过I2C总线实现。SPI是4线快速全双工串行通信接口,单片机通过SPI总线读取存储器图像,单片机作为主控设备,提供时钟脉冲SCK,CPLD作为从设备,SD卡用作存储图像,控制有两种模式,一种是SPI模式,另一种是SDIO模式,速度更快。STM32有相应接口,本设计采用SDIO模式。图像通过串口连接WIFI模块,实现无线远程输出。下面是C代码主模块里的头文件:
#include "main.h"
#include
#include
#include
#include < stm32f10x_sdio.h>
本文设计了一种基于ARM与CPLD的实时图像处理系统。通过使用低成本设备实现高清拍摄,以及设计的“先缓存整帧,后分段SPI输出”的FIFO方案,使得中低端单片机可以绕开高清拍摄所需的高带宽及大RAM,实现图像拍摄及处理的一次完成,不需要像数码相机一样借助电脑等其他平台再次处理图像,对以后的高度集成、高速图像处理系统的开发有一定参考价值。
参考文献:
[1]段佳雷,高智博.基于ARM嵌入式图像采集处理平台的标签跟踪系统设计[J].微型电脑应用,2017,07(33):33-36.
[2]董勇,瑚琦,高鹏飞.基于CPLD的线阵CCD信号采集系统设计[J].电子科技,2016,03(29):154-156.