籍风磊, 李志军, 迟学芬, 梁 楠
(吉林大学a.通信工程学院;b.公共计算机教学与研究中心,长春 130012)
通信工程类课外培养是本科培养的重要组成部分,与课内教学计划紧密配合,互相补充,培养学生的创新精神和实践能力,提升学生的综合能力[1-2]。本系统以开放性创新实验为导向,融合基于STM32的嵌入式软硬件开发技术[3]、传感器技术[4-5]、物联网技术[6-7]、手机APP开发[8-9]等多种通信工程类学科所需实用型技术,采用WiFi网络、ZigBee网络、移动4G多网协同组网,实现实验室智能安防功能。在设置的实验中,学生根据学习意向及专业方向需求选择实验项目,充分体现循序渐进和因材施教。同时,本实验系统为学生参加各类科技竞赛及科研、就业奠定坚实的基础。
本系统由采集子系统、控制子系统、用户监控子系统三部分构成,总体设计框图如图1所示。其中,采集子系统通过布放门磁、红外、烟雾、温湿度、水浸等传感器及摄像头采集实验室实时数据信息;控制子系统以STM32为主控芯片,通过ZigBee网络接收采集子系统信息,对数据预处理,若有数据超过阈值,通过GSM模块通过移动4G网络向实验室管理人员发送预警短信息。用户子系统接收实时预警信息,通过WiFi网络,利用APP查看实验室各类传感器周期性采集的信息及视频信号。
系统的总设计方案中,用户子系统不涉及硬件的选型与设计,利用测试用户手机即可完成子系统测试。因此,只分析采集子系统和控制子系统的硬件选型与设计。
采集子系统分为传感器部分和视频采集部分。传感器部分负责各传感器信号的采集,视频采集部分负责视频信号的获取。
(1)传感器部分。门磁传感器、温湿度传感器、烟雾传感器、红外声光报警器、水浸传感器分别连接STM32最小系统。最小系统通过串口与ZigBee模块的终端节点连接,各终端节点通过ZigBee组网将数据发送至控制子系统的网络汇聚节点。最小系统采用意法半导体生产的STM32F103 VET6,实现采集信号由传感器至ZigBee模块的传输及控制系统子系统指令的执行。ZigBee模块采用TI公司的CC2530芯片,所有模块波特率均设置为115 200,并设置为不同的频道,实现数据的在ZigBee无线网络无干扰的传输[10]。
(2)视频采集部分。视频采集部分采用OV5640数字摄像头,通过控制子系统上的摄像头模块接口连接至核心控制芯片STM32F429。摄像头接口模块原理图如图2所示。其中,DOUT0~DOUT7向控制子系统发送数据;SLC和SDA分别为与STM32通信的I2C总线的串行时钟线和双向串行数据线;VSYNC和HSYNC分别为帧同步和行同步信号线;PCLK和XCLK分别为像素时钟信号线和主时钟信号线[11]。
本系统采用意法半导体生产的STM32F429-BITx作为控制器,设计了复位、晶振、编程下载接口电路。其中,晶振电路中X8所在电路用于RTC时钟,X2所在时钟为CPU主时钟,通过内部FLASH倍频到180MB[12];编程下载接口电路设计为SWD调测接口,此接口比20P的JTAG接口节约口线。除此之外,系统还设计了与ZigBee协调器通信的USART串行接口电路、进行以太网通信的10MB/100MB的网卡电路及用于短信发送的GSM模块电路。图3给出了网卡电路和GSM模块电路原理图。其中,10MB/100MB的网卡电路采用DM9000AE高速以太网接口芯片,该芯片与STM32间采用16位的FSMC总线连接,使用PF0作为CMD,译码器输出的FMC_NE2_C接CS[13];GSM模块电路采用SIM800A芯片,该模块采用串口方式与STM32通信,在本系统中利用移动4G网络,实现发送短信的功能[14]。
系统的软件设计分为采集、控制和用户部分。采集部分负责传感器信息数据及视频信号的采集;控制部分进行数据预处理,判别数据是否超出阈值,从而决定是否向管理员发送告警信息,以及接收管理员指令,并下发给各采集模块,起到上传下达作用;用户部分利用手机自带的短信功能,并开发Android手机APP,接收告警信息并实时查看实验室各项传感器信息数据及视频信号,通过手机APP下达管理指令。
基于STM32F103的C语言程序设计,采集各传感器信息,通过ZigBee网络上传至控制子系统STM32F429。采集子系统的各传感器采集软件设计流程基本一致,由如下几部分构成:初始化、传感器驱动、设置信息采集周期、采集传感器信息、ZigBee网络上传信息。其中,初始化主要完成GPIO、A/D模块及用于ZigBee终端节点通信的串口的配置;传感器信息采集由定时器周期性触发,为便于程序设计,传感器信息的采集周期均设置为1 s。ZigBee网络上传信息是通过直接向与ZigBee模块通信的串口发送数据实现。
视频采集部分利用STM32F429的数字摄像头接口Digital camera interface(DCMI)驱动OV5640摄像头[15],获取视频数据,然后利用DMA通道将数据运送至内存,最后通过以太网发送至用户端。软件设计的流程图如图4所示。
控制部分程序是整个程序设计的核心部分,实现了上传下达的功能,既上报传感器及告警信息,又接收手机APP下达的指令,同时实现视频信号传输通道的建立。控制部分软件设计的流程图如图5所示。
主程序实现模块初始化、硬件自检、信息接收及发送功能后,进入循环等待,通过判定标识进入不同函数,此步骤在程序中利用Switch语句实现。短信发送函数负责将自检及告警信息实时发送至管理员;身份校验函数实现管理员登录校验;视频传输函数建立传输通道,将采集的视频信号通过以太网传送至手机终端;信息上传函数将管理员需求的传感器采集信息上传至手机终端;指令下发函数将管理员发送的指令通过ZigBee网络下发至采集子系统的不同控制器。
用户部分程序开发手机APP,实现安防系统的远端监控和管理。通过APP,管理员可以远程查看实验室各种安防信息,实时查看实验室监控视频,下达管理指令。安防系统手机APP为按键响应式的操作,功能简单,通过拖拽UI组件构建APP界面。对每个按键进行编程的软件设计流程如图6所示。
开启采集子系统和控制子系统设备,各模块上电并初始化。PC机通过串口与控制子系统连接,可查看各模块启动及运行状态,如图7所示。串口工具的连接可用作人机交互的一种方式。
打开手机APP,输入用户名、密码,呈现功能显示界面,分为文本区、视频显示区、按键区。文本区显示各参数,并周期性更新。视频区显示实验室的实时画面。按键区可远程控制传感器状态信息显示开关、实验室视频监控的开关、实验室门磁开关及退出监控系统。图8为APP的功能显示界面。
实验室安防创新实验系统已在开放性创新实验中应用,面向通信工程和信息工程两个专业的学生。学生通过学习本实验课程,深刻领会智能安防系统的整体架构、各子系统的功能划分及所运用的专业技术。同时,设置分别偏重于嵌入式软硬件、物联网技术、传感器技术、手机APP开发的实验项目,由学生自由选择,既培养了学生综合实践能力,又达到了因材施教的目的。