基于STM32的嵌入式远程视频监控系统设计*

2018-03-15 08:36马跃辉冀保峰程一淼高宏峰
山西电子技术 2018年1期
关键词:时序以太网嵌入式

马跃辉, 冀保峰,2, 程一淼, 高宏峰

(1. 河南科技大学信息工程学院, 河南 洛阳 471023;2. 电子科技大学航空航天学院, 四川 成都 611731)

0 引言

国内外的视频监控行业经历了本地模拟信号监控系统、基于PC插卡的数字监控系统和基于嵌入式技术的数字监控系统的发展过程。目前已经发展到第三个阶段,正大规模向着嵌入式技术的数字监控方向发展,视频监测系统已经成为当今可视化领域的一个新的开发热点。随着以太网的覆盖面越来越广,借助以太网能够满足用户直观实时地且不受地点限制观看监控画面,相比较于传统视频监控系统,嵌入式视频监控明显具有更高的可靠性和便利性,能够给用户带来更多舒适、安全和智能的生活体验。

1 系统总体设计

系统总体设计结构如图1所示,主要由STM32F103ZET6主控制器和其他子模块组成。主控制器主要用于处理和分析传感器信息以及以太网操作信息,控制内部运行代码及SD存储。子模块主要有摄像头传感器模块,SD卡存储和以太网模块。通过以太网接口将系统连接到路由器,用户通过以太网进行访问就可以实时查看监控信息。

图1 系统总体结构框图

2 系统硬件设计

本系统采用STM32F103ZET6作为系统的核心MCU,它是基于CortexTM-M3的内核带有512 k字节闪存的微控制器,最高工作频率为72 MHz,高达64 k字节的SRAM,带4个片选的灵活的静态存储器控制器,支持CF卡、SRAM、PSRAM、NOR和NAND存储器,有3路SPI高速全双通接口,12个DMA通道,8个16位定时器,3个12位的ADC,支持多达20个软件的中断/事件请求。STM32F103ZET6不仅具有强大的外设接口,还具有睡眠模式、待机模式和停止模式三种低功耗模式。

图像采集模块采用OV7670,它是一个能够提供单片VGA摄像头和影像处理器的所有功能的CMOS图像传感器,它支持整帧输出、子采样、取窗口等模式,支持8/10位图像分辨率,支持多种数据格式,包括RAW RGB、RGB以及YCbCr等格式。它体积小,工作电压低,可以对图像进行伽玛曲线、白平衡、饱和度、色度等处理。OV7670采集的图像,采用VGA时序,通过VSYNC、HREF/HSYNC和PLCK引脚输出图像。先将图像暂存储于图像缓冲器件AL422B中,按照FIFO读取数据的时序,控制相关的引脚,可以直接由MCU的IO口读取数据后,将数据放入SD卡或者送入以太网。带有FIFO可减少对单片机采集图像数据时对MCU速度的要求。

以太网模块使用ENC28J60芯片,它带有行业标准串行外设接口(Serial Peripheral Interface, SPI)的独立以太网控制器。它可作为任何配备有 SPI 的控制器的以太网接口。 ENC28J60 符合 IEEE 802.3 的全部规范,采用了一系列包过滤机制以对传入数据包进行限制。它还提供了一个内部 DMA模块,以实现快速数据吞吐和硬件支持的 IP 校验和计算。与主控制器的通信通过两个中断引脚和SPI实现,数据传输速率高达10 Mb/s。两个专用的引脚用于连接LED,进行网络活动状态指示。ENC28J60与微处理器的连接如图2所示。要实现TCP/IP协议栈,选择移植LwIP代码,LwIP是由瑞士计算机科学院Adam Dunkels等开发的适用于嵌入式领域的轻量级TCP/IP协议栈。它可以移植到含操作系统的平台中,也可以在无操作系统的平台下运行,并且占用的RAM和ROM比较少,支持较为完整的TCP/IP协议,还便于裁剪、调试。

图2 ENC28J60与STM32硬件连接图

3 系统软件设计

本系统软件设计中主要由OV7670视频采集,SD卡存储和ENC28J60以太网连接组成。

3.1 OV7670视频采集软件设计

OV7670视频采集程序驱动主要在于正确的设置SCCB时序与FIFO读取时序。OV7670输出时序采用VGA时序,它分为行时序和帧时序。行时序即输出每一行像素的时序,以PCLK输出像素时钟,以D0-D9输出像素数据,以HREF输出行起始信号和行结束信号。帧时序与行时序的区别主要在于多了一条信号线VSYNC,用于表示帧起始信号与帧结束信号。读FIFO时序,OV7670模块的FIFO硬件中已将FIFO的RE管脚设置为低电平,说明已激活了读操作。当OE管脚为低电平时,输出处于使能状态,随着读时钟RCK的运转,数据输出管脚D7-D0就会按地址递增的方式输出数据。一次采集图像软件流程图如图3所示,MCU读取FIFO图像数据传输给ENC28J60和SD卡。如此循环采集图像。

图3 OV7670图像采集软件流程图

3.2 以太网模块软件设计

利用ENC28J60以太网控制器接入以太网,移植LwIP协议栈,并利用LwIP提供的函数在STM32上建立服务器和创建Telent应用。建立服务器后可以使用PC的浏览器访问网页,通过点击网页按钮控制视频的播放与停止。移植LwIP协议栈时,在opt.h文件下进行裁剪、配置,如是否使用操作系统,是否使用DHCP配置,上层的应用是使用RAW或者API函数等。用户在终端通过浏览器做出相应操作,操作指令通过以太网传输给ENC28J60,MCU通过读取ENC28J60获取指令。MCU得到传输数据指令时,在确保用户账号和密码输入正确之后,MCU将摄像头采集图像信息进行编码压缩成JPEG图片,将压缩后的图像数据换成如TCP/IP网络协议的数据流,通过ENC28J60传输到以太网,经过一定的处理,可以把这些图像信息合成 20 帧每秒显示在终端浏览器界面上,由于人眼的视觉暂留效益,这些连续的图像能够被看成是达到了流畅的视频效果。在MCU捕获到上传图像信息指令时,MCU同时做出停止向SD卡存储图像信息的指令,以减少对MCU频率的利用,提高图像数据上传至以太网的速度。图像数据传输软件流程图如图4所示。

图4 图像数据传输软件流程图

4 系统的调试结果与分析

系统的调试环境是MDK软件与PC机。利用MDK5软件对STM32进行仿真,先将系统代码进行编译,按下硬件调试的Debug按钮,MDK软件就通过J-LINK把编译时生成的可执行镜像文件加载到STM32芯片的SRAM上运行,在MDK软件上调试代码,并利用MDK的逻辑分析仪,观测要分析引脚的运行波形。将ENC28J60模块接入路由器,在PC机设置静态地址分配,MAC固定地址即STM32作为服务器的固定IP地址 “198.168.1.10”,子网掩码设置为“255.255.225.0”。在PC机浏览器输入STM32固定IP地址,就可以观看视频图像。经过测试,本系统的波形完全正常,且通过网络调试工具看到流畅的视频图像如图5所示,完全符合设计的要求。

图5 网络调试工具显示图像

5 结束语

本文根据社会现实需求,设计了一套基于STM32的远距离监控系统,详细介绍系统硬件部分与软件的设计,该系统很好实现远距离监控和存储图像信息,并具有低功耗,成本低,运行稳定的优点。

[1] 徐文,孟文,曾丽.基于STM32与WiFi无线通讯技术的远程监控系统设计[J].自动化与仪表,2016,31(11):35-38.

[2] 焦铬,易小波,李仁发.基于嵌入式Internet的远程视频监控系统设计[J].计算机技术与发展,2009(5):19-5.

[3] 伍连明,陈世元.基于GPRS的远程数据采集模块[J].现代电子技术,2009(3):25-28.

[4] 库少平,徐良平.Realview MDK软件仿真器的测试技术研究[J].单片机与嵌入式系统应用,2008(8):18-21.

[5] 谢希仁.计算机网络[M].第4版.北京:电子工业出版社,2006:170-348.

[6] 胡栋.JPEG图像编码的基本方法与国际标准[S].第2版.北京:北京邮电大学出版社,2003.

[7] 李雄祥,孙延明,郑时雄.Pro/E软件中J-Link接口的探讨分析[J].机床与液压,2003(6):120-122.

猜你喜欢
时序以太网嵌入式
清明
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于不同建设时序的地铁互联互通方案分析
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
基于FPGA 的时序信号光纤传输系统
谈实时以太网EtherCAT技术在变电站自动化中的应用
嵌入式软PLC在电镀生产流程控制系统中的应用
基于模体演化的时序链路预测方法
浅谈EPON与工业以太网在贵遵高速公路中的应用