论文部分内容阅读
[摘 要]本文提出了一种基于STM32F407的低成本远程图像采集方案,可用于智能家居安防系统。以STM32F407微控制器为主控芯片,摄像头部分采用CMOS图像传感器采集图像,然后通过Wi-Fi无线网络将信息实时传输至服务器,上位機软件可以显示采集到的图片,并可以远程设置采集模式。实验表明,该系统可实现远程采集清晰的图像,并能够稳定的运行。
[关键词]智能安防 STM32F407 图像采集 远程传输
中图分类号:TM02 文献标识码:A 文章编号:1009-914X(2015)19-0038-02
引言
随着“智慧城市”、“平安城市”等概念的提出,以及智能家居等物联网行业的兴起,安防监控产业不管在用户类型上还是在应用场合上都有着巨大的发展市场。现今市场上的安防监控系统大多功能冗余、成本高、灵活性差,并不一定适合家庭监控的场合。本文设计的基于STM32F407的图像采集系统着眼于经济型的监控系统,充分利用当今高速发展的无线传输网络和互联网,避免了资源的浪费。与传统的图像监控相比,该系统不仅功耗低、实时性好,而且成本低廉。
1、系统结构与功能
远程图像采集系统的整体框图如图1所示,主要包括采集终端和服务器监控端。采集终端以ARM公司的Cortex-M4内核的微控制器STM32F407ZGT6为核心,采集部分选用OV公司的CMOS图像传感器OV2640,无线传输部分采用Marvell公司的88W8686模块。采集到的图像信息通过Wi-Fi经互联网传输至远程服务器,监控上位机可以接收和显示,并能够发送查看图像的指令,实现远程监控。
2、系统硬件设计
2.1 核心微控制器
本系统的控制部分采用32位Cortex-M4内核的STM32芯片STM32F407ZGT6,其主频为168MHz,支持单周期DSP指令和浮点单元,片上集成1MB的FLASH和196KB的SRAM,并自带一个同步并行接口DCMI,能够接收8、10、12或 14位 CMOS摄像头模块发出的高速数据流。从实用性的角度来考虑,采用STM32F407作为图像采集终端的控制核心,可以满足本系统设计要求,并且降低了功耗和成本。
2.2 OV2640摄像头
图像采集部分采用的OV2640是OmniVision公司的CMOS UXGA图像传感器。该传感器体积小、工作电压低,适合嵌入式应用。通过SCCB总线控制,支持Raw RGB、RGB(RGB565/RGB555)、GRB422、YUV(422/420)和 YCbCr(4:2:2)输出格式,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率8/10位影像数据。最大可输出UXGA(1600*1200),即200万像素的图像。OV2640支持图像压缩,可输出JPEG图像数据,在不影响图像质量的前提下大大减小了图像的数据量,降低了无线图像传输的压力。OV2640摄像头与STM32的硬件连接如图2所示。
2.3 WIFI模块
无线传输部分采用88W8686芯片,它是Marvell公司推出的一款低成本、低功耗、高集成度的Wi-Fi SoC芯片。该模块内部自带ARM处理器,支持SDIO和G-SPI两种通信方式。在本系统中,考虑到传输速率与稳定性,我们选择与STM32通过SDIO接口进行数据交互。通过移植LwIP协议栈使STM32具有Wi-Fi收发的功能。无线传输部分的电路连接如图3所示。
在图像采集系统中,我们采用8位数据宽度,数据输出格式为JPEG。STM32通过DCMI接口接收摄像头输出的图像数据,然后通过DMA将数据传输到图像缓存区。将数据传输与VSYNC信号硬件同步,每一帧结束时都激活帧中断,可以利用这个帧中断来判断是否有一帧数据采集完成。每当采集到一帧数据,就会关闭DMA传输,然后将采集到的数据经SDIO接口通过Wi-Fi发送出去,上位机接收并显示图像,之后再重新启动DMA传输。
3、终端采集软件设计
在软件设计中采用模块化的设计方法,主要包括在STM32上实现LwIP协议栈的移植并与服务器进行通信,以及驱动OV2640摄像头进行图像的采集与传输。软件采用C编写,在Keil uVision4中调试。整个远程图像采集传输系统的程序流程图如图4所示。首先对系统进行初始化之后,88W8686模块下载固件并设置固件模式,设置好服务器端的IP地址和端口,搜索当前环境中的无线网络,和当前的AP建立好连接,至此我们的系统可以与互联网相连,从而与远程服务器通信。
图像采集系统分为两种工作模式:休眠模式和自动模式。当系统工作在休眠模式时,会等待服务器发送的请求,如有请求则开始采集图像并发送。当系统工作在自动模式时,用一个定时器来控制摄像头每隔1 S采集一张图片并发送。下面介绍一下图像采集的过程。
在系统上电之后,首先通过各部分初始化函数对系统进行初始化。在整个系统初始化成功后,打开系统中断准备进行图像采集。OV2640 通过OV_SCL和OV_SDA对寄存器进行配置,主要是配置摄像头输出数据格式类型和输出图像数据大小。这里我们配置成VGA、JPEG输出模式。DCMI接口主要通过DCMI_CR寄存器设置,包括VSYNC、HSYNC、PIXCLK、数据宽度等重要参数的设置。另外,我们也需要开启帧中断,编写DCMI中断服务函数,方便图像数据流的读写。DMA采用连续模式采集,并将采集到的数据从数据寄存器DCMI_DR输出到STM32的内存中。当垂直同步中断产生时,DCMI_IT_VSYNC置1,表示一帧图像数据采集完毕,微处理器通过控制DMA将数据传输到数据缓冲区中等待数据的发送。系统已经移植入LwIP协议,当缓冲区采集到图像数据后,通过所在的无线网络经互联网发送到远程服务器上。
4、系统测试
按照上述的硬件与软件设计搭建系统,并对最终的传输速率与图像质量进行测试,其上位机的显示情况如图5所示。摄像头采集到的分辨率为640*480的图像经JPEG压缩之后数据量大约在20KB左右,完全能够满足系统实时性的需求。
5、结束语
本文基于智能家居安防系统设计了一种以STM32F407为控制核心的远程图像采集与无线传输系统。该设计方案不仅低成本、低功耗,而且能够可靠稳定地运行。在无线网络发达的今天,有着更为广泛的应用市场,具有研究价值。
参考文献
[1]. 葛阿萍与扶宇阳, 浅谈嵌入式系统在物联网中的应用. 信息技术与信息化, 2013(01): 第102-104页.
[2]. 黄智伟等, 基于STM32F417的图像采集系统设计. 单片机与嵌入式系统应用, 2012(10): 第48-51页.
[3]. 赵立辉, 郭栋与金凤, 基于STM32的教室照明与图像远程监视系统. 辽宁工业大学学报(自然科学版), 2013(05): 第286-289页.
[4]. 李祯, 陈广飞与崔立鹏, 基于低功耗ARM的物联网Wi-Fi接入方案设计与实现. 医疗卫生装备, 2014(03): 第52-55页.
[关键词]智能安防 STM32F407 图像采集 远程传输
中图分类号:TM02 文献标识码:A 文章编号:1009-914X(2015)19-0038-02
引言
随着“智慧城市”、“平安城市”等概念的提出,以及智能家居等物联网行业的兴起,安防监控产业不管在用户类型上还是在应用场合上都有着巨大的发展市场。现今市场上的安防监控系统大多功能冗余、成本高、灵活性差,并不一定适合家庭监控的场合。本文设计的基于STM32F407的图像采集系统着眼于经济型的监控系统,充分利用当今高速发展的无线传输网络和互联网,避免了资源的浪费。与传统的图像监控相比,该系统不仅功耗低、实时性好,而且成本低廉。
1、系统结构与功能
远程图像采集系统的整体框图如图1所示,主要包括采集终端和服务器监控端。采集终端以ARM公司的Cortex-M4内核的微控制器STM32F407ZGT6为核心,采集部分选用OV公司的CMOS图像传感器OV2640,无线传输部分采用Marvell公司的88W8686模块。采集到的图像信息通过Wi-Fi经互联网传输至远程服务器,监控上位机可以接收和显示,并能够发送查看图像的指令,实现远程监控。
2、系统硬件设计
2.1 核心微控制器
本系统的控制部分采用32位Cortex-M4内核的STM32芯片STM32F407ZGT6,其主频为168MHz,支持单周期DSP指令和浮点单元,片上集成1MB的FLASH和196KB的SRAM,并自带一个同步并行接口DCMI,能够接收8、10、12或 14位 CMOS摄像头模块发出的高速数据流。从实用性的角度来考虑,采用STM32F407作为图像采集终端的控制核心,可以满足本系统设计要求,并且降低了功耗和成本。
2.2 OV2640摄像头
图像采集部分采用的OV2640是OmniVision公司的CMOS UXGA图像传感器。该传感器体积小、工作电压低,适合嵌入式应用。通过SCCB总线控制,支持Raw RGB、RGB(RGB565/RGB555)、GRB422、YUV(422/420)和 YCbCr(4:2:2)输出格式,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率8/10位影像数据。最大可输出UXGA(1600*1200),即200万像素的图像。OV2640支持图像压缩,可输出JPEG图像数据,在不影响图像质量的前提下大大减小了图像的数据量,降低了无线图像传输的压力。OV2640摄像头与STM32的硬件连接如图2所示。
2.3 WIFI模块
无线传输部分采用88W8686芯片,它是Marvell公司推出的一款低成本、低功耗、高集成度的Wi-Fi SoC芯片。该模块内部自带ARM处理器,支持SDIO和G-SPI两种通信方式。在本系统中,考虑到传输速率与稳定性,我们选择与STM32通过SDIO接口进行数据交互。通过移植LwIP协议栈使STM32具有Wi-Fi收发的功能。无线传输部分的电路连接如图3所示。
在图像采集系统中,我们采用8位数据宽度,数据输出格式为JPEG。STM32通过DCMI接口接收摄像头输出的图像数据,然后通过DMA将数据传输到图像缓存区。将数据传输与VSYNC信号硬件同步,每一帧结束时都激活帧中断,可以利用这个帧中断来判断是否有一帧数据采集完成。每当采集到一帧数据,就会关闭DMA传输,然后将采集到的数据经SDIO接口通过Wi-Fi发送出去,上位机接收并显示图像,之后再重新启动DMA传输。
3、终端采集软件设计
在软件设计中采用模块化的设计方法,主要包括在STM32上实现LwIP协议栈的移植并与服务器进行通信,以及驱动OV2640摄像头进行图像的采集与传输。软件采用C编写,在Keil uVision4中调试。整个远程图像采集传输系统的程序流程图如图4所示。首先对系统进行初始化之后,88W8686模块下载固件并设置固件模式,设置好服务器端的IP地址和端口,搜索当前环境中的无线网络,和当前的AP建立好连接,至此我们的系统可以与互联网相连,从而与远程服务器通信。
图像采集系统分为两种工作模式:休眠模式和自动模式。当系统工作在休眠模式时,会等待服务器发送的请求,如有请求则开始采集图像并发送。当系统工作在自动模式时,用一个定时器来控制摄像头每隔1 S采集一张图片并发送。下面介绍一下图像采集的过程。
在系统上电之后,首先通过各部分初始化函数对系统进行初始化。在整个系统初始化成功后,打开系统中断准备进行图像采集。OV2640 通过OV_SCL和OV_SDA对寄存器进行配置,主要是配置摄像头输出数据格式类型和输出图像数据大小。这里我们配置成VGA、JPEG输出模式。DCMI接口主要通过DCMI_CR寄存器设置,包括VSYNC、HSYNC、PIXCLK、数据宽度等重要参数的设置。另外,我们也需要开启帧中断,编写DCMI中断服务函数,方便图像数据流的读写。DMA采用连续模式采集,并将采集到的数据从数据寄存器DCMI_DR输出到STM32的内存中。当垂直同步中断产生时,DCMI_IT_VSYNC置1,表示一帧图像数据采集完毕,微处理器通过控制DMA将数据传输到数据缓冲区中等待数据的发送。系统已经移植入LwIP协议,当缓冲区采集到图像数据后,通过所在的无线网络经互联网发送到远程服务器上。
4、系统测试
按照上述的硬件与软件设计搭建系统,并对最终的传输速率与图像质量进行测试,其上位机的显示情况如图5所示。摄像头采集到的分辨率为640*480的图像经JPEG压缩之后数据量大约在20KB左右,完全能够满足系统实时性的需求。
5、结束语
本文基于智能家居安防系统设计了一种以STM32F407为控制核心的远程图像采集与无线传输系统。该设计方案不仅低成本、低功耗,而且能够可靠稳定地运行。在无线网络发达的今天,有着更为广泛的应用市场,具有研究价值。
参考文献
[1]. 葛阿萍与扶宇阳, 浅谈嵌入式系统在物联网中的应用. 信息技术与信息化, 2013(01): 第102-104页.
[2]. 黄智伟等, 基于STM32F417的图像采集系统设计. 单片机与嵌入式系统应用, 2012(10): 第48-51页.
[3]. 赵立辉, 郭栋与金凤, 基于STM32的教室照明与图像远程监视系统. 辽宁工业大学学报(自然科学版), 2013(05): 第286-289页.
[4]. 李祯, 陈广飞与崔立鹏, 基于低功耗ARM的物联网Wi-Fi接入方案设计与实现. 医疗卫生装备, 2014(03): 第52-55页.