基于GSM短消息远程监控系统的设计

2015-10-19 11:33宋军平赵高丽
电脑知识与技术 2015年20期
关键词:监控系统

宋军平 赵高丽

摘要:该文是基于GSM短消息远程监控系统的设计,主要包括硬件和软件系统。在硬件设计中主要运用了STM32和ATK-SIM900A核心硬件,STM32作为系统的控制器主要负责监控信息的采集,处理以及控制ATK-SIM900A发送报警信息,运用显示屏,按键等人机交互接口。系统的软件设计主要汇编语言、C语言编写代码,主要包括各个部分初始化,界面的显示,按键的接收,串口的调试信息的发送,短消息的发送等任务。

关键词:GSM;监控系统;STM32

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)20-0011-03

Design of GSM Remote Monitoring System Based on Duan Xiaoxi

SONG Jun-ping1, ZHAO Gao-li2

(1.Henan Institute of Science and Technology, Xinke College, Xinxiang 453003, China; 2.Henan Institute of Science and Technology, Xinxiang 453003, China)

Abstract: This paper is to design a GSM Short Message based remote monitor and control system, including hardware and software systems. In the hardware design, the main use of the STM32 and ATK-SIM900A STM32 as the core hardware, the system controller is responsible for monitoring information collection, processing and control ATK-SIM900A to send the alarm information, the use of display, buttons and other human-computer interaction interface. System software design of assembly language, C language code, including the initialization, interface display, button to receive, send the serial port debugging information, Short Message sending task.

Key words: GSM; monitoring system; STM32

随着信息技术的发展目前国内外监控系统主要采用视频监控。主要是采集现场画面并储存,虽然在一定程度上起到一定的监控作用为事后事件的处理提供了一定的依据,但是并不能起到实时,准确,智能的监控作用。并且监控系统成本较高,系统复杂并需要有专人维护。而基于GSM短消息监控系统,结构简单成本低使用方便,不管何时何地,只要触发报警系统就可以实时的得到通知。因此,本文将基于GSM短消息监控系统进行研究。

1 系统的总体设计

在基于GSM短消息远程监控系统的设计中,选用了STM32和人体红外报警传感器。STM32的稳定性比较高,扩展性好,功率消耗比较低;人体红外传感器不受环境和位置的限制,可以通过触发器报警来发送短消息,了解远端现场的情况,通过短消息来报警,从而提高及时解决问题的效率。

2 系统的硬件各模块设计

2.1 电源电路

电源电路采用电源芯片LM2596为主电路提供5V的工作电压,在输入端加了防反接保护,即使由于人为意外将电源反接也不会损坏后续电路。还可以用仅80μA的待机电流, 实现外部断电,具有自我保护电路。由于系统的控制器使用了STM32F105RCT6,其工作电压为3.3V,因此要将5V的电压降为3.3V,本设计使用了SP3819M5-L-3-3为芯片提供稳定可靠的工作电压。该芯片连接电路简单输出电压稳定电压波纹小。

2.2 主控芯片接口

本系统主控芯片为STM32F105RCT6,该芯片采用Cortex-M3内核,CPU最高可工作在72MHZ的主频下,256K的片上Flash,64K片上ROM,一个USB2.0的全速主从控制器,12通道的DMA控制器,2个CAN2.0B的接口,2个12位的ADC和DAC,2个I2C接口,5个UART,3个SPI接口,51个通用GPIO。

嵌入内部RC 8 MHZ和32 KHZ实时时钟,嵌套中断控制器NIVC。节电模式通过JTAG门限,四个16位定时器输入捕获、比较和PWM输出脉冲计数器和正交编码器输入,16位电动机PWM控制,两个看门狗定时器,SysTick计时器,两个16位定时器基本DAC,CRC计算单元(96位惟一的ID)。

2.3 启动方式选择

STM32可配置BOOT1,BOOT0到不同的电平来切换到不同的启动方式。其中正常模式(BOOT0=X,BOOT1=0)是把程序下载到芯片内部的Flash这样程序掉电后依然存在,下次开机可一自动启动;ISP模式(BOOT0=0,BOOT1=1)是将程序下载到一快特定的内存区域,一般由厂家写入,不能被随意更改或擦除。调试模式(BOOT0=1,BOOT1=1)从内部SRAM启动,由于SRAM上的数据掉电后会丢失,不能再掉电的情况下保存数据,所以只能用在程序的调试过程中。在硬件的设计过程中考虑到SROM有限的擦写次数,为了延长芯片的使用寿命尽可能减少对SROM的擦写,在软件的调试中可通过配置程序的启动方式到调试模式,程序就会在上电的过程中加载到SRAM中用于调试。当我们需要正常启动是再切换到正常模式把程序下载到SROM此时每次开机就会正常启动。对于一个嵌入式系统的程序来言,如果程序很大,而STM32内置SROM有限,就需要在外边添加Nand flash/Nor flash 和SDRAM,这样的话程序就存储在flash中,而程序在SDRAM中执行,既节约了成本又提高了运行效率。

2.4 STM32的JTAG调试接口

运用J-LINK仿真调试,进行跟踪程序的运行从而很容易找到问题的原因,J-LINK仿真器是通过JTAG接口连接到芯片的。

在使用J-LINK连接目标板时,有两种方式可供选择,SWD模式和JTAG模式。SWD模式与JTAG模式相比占用更少的IO口,在制作PCB板时也会占用更小的空间。在高速模式下也更加稳定,最高支持10MHZ的稳定数据传输。一般支持JTAG模式都支持SWD模式。只要将JTAG的第7,9管脚与STM32芯片的JTMS,和JTCK相连,并且目标板供电还要连接VCC,GND,至于NREST根据需要可以选择连接或不连接。

2.5 串口输入输出

在程序的调试过程中为了解运行状态,将一些调试信息到PC机上,这时就会用到RS-232串口。在STM32中,TTL输出高电平一般大于2.4V,输出的低电平小于0.4V。在室温下,一般输出高电平是3.5V,输出的低电平是0.2V。本系统采用了MAX3232芯片进行电平的转换,MAX3232内部有两个转换通道可同时转换两路串口。串口电路见图1。

图1 串口输入输出

2.6 按键输入

本系统运用按键为用户设置一些参数。按键的接线方式有多种,最简单是独立按键,这种方式每个按键连接MCU的一个管脚,简单程序处理起来也方便,不过由于它是每个按键都需要连接一个IO口,对于一些IO资源紧张或者当按键数量特别多时他的劣势就突出出来,不仅接线变得复杂,还会浪费大量的IO口。

由于按键数目并不是太多没有必要用到专门的按键芯片,但也不适用独立按键,而是利用了STM32的一个AD来检测那个按键按下,具体实现的原理是,多个电阻串联把VCC到GND之间的电压分为很多份每一个按键接一个点的电压,不同的按键按下都会有不同的电压值,这个电压经过AD转化,芯片根据不同的AD转换结果就可以知道对应是那个按键按下了,这种按键检测方法最多可以检测一百多个按键了只需要一个IO口,当然芯片必须有AD功能。

2.7 GSM模块和AT指令

GSM是本系统的重要组成部分,而本系统GSM采用双频SIM900A,它可以用比较低的功耗实现语音、数据和信息的传输。由于GSM模块的设计有特殊的设计要求并且对GSM模块的设置并不是本文讨论的重点,因此在本系统的设计中直接采用了正点原子的ATK-SIM900A模块。主控芯片是通过串口来向GSM发送命令并接收数据的,其接线方式也比较简单只需要两根线RX,TX。

通过串口直接和GSM模块进行交互会用到AT指令,通过指令进行短消息编辑,设置,读取,发送,查询,储存等功能。因此我们可以利用GSM模块向指定的手机发送报警信息。

2.8 报警模块

报警信息的提取采用的是人体热释红外模块,当有人出现在设定的范围内是该模块会捕捉到人体释放的红外信号,经过转换排除干扰后输出电压信号。通过人体热释红外模块后,可以检测报警信息发送给MCU处理了。该模块的电路原理图如2所示:

图2 人体红外感应模块原理图

3 系统的软件设计

3.1 软件设计

本系统的主要作用是利用GSM发送报警信息,当系统加电后首先进行各个模块的初始化,初始化完成后程序会读取按键返回的AD转换结果判断是否有按键按下,如果有按键按下则读取按键值并做出相应的处理,如果没有按键按下程序继续往下运行判断是否有触发报警,如果触发报警MCU会利用GSM发送报警信息到指定的手机终端,完成整个报警过程。主程序流程如图3所示。

图3 主程序流程图

3.2 主程序略解

本系统的程序是以工程的方式构建的,不同的模块编写为不同的*.c,*.h文件然后各个文件共同组成一项目,这样各个模块之间相互独立一个模块的改动并不会影响到其他模块的正常工作,最后主程序只要调取需要的函数接口就可以了。

main()

{SystemTick_Init();//滴答定时器的初始化配置

Uart1_Init();//串口1的初始化波特率115200,数据位8位,停止位1 位//无奇偶校验,主要用以调试信息的打印程序的下载。

Uart2_Init();//串口2的初始化波特率115200,数据位8位,停止位1位//无奇//偶校验,串口2用来控制GAM模块

LCD_Init();//LCD的初始化,NOKIA5110的初始化

Alarm_Init();//与报警接口的初始,主要初始化为输入模式

Key_Init();//按键的初始化,主要初始化化了AD转换,利用DMA读取

//AD转换结果

for( ; ; )}(接附录2)

按键程序是通过AD结果来获取的,其中理论按键值对应的电压如图4所示,但是,在实际中不可能获到很准确的AD转换值,这是由于存在以下几种误差:对于相同的电压值,AD多次转换的结果不会完全相同。电阻的误差。电阻值由于制作以及温度的原因,误差较大,所以不可能得到很准确的分压。本例采用的电阻精度为±5%。还有其它干扰也可能造成AD转换结果不准确。

而且在一个完整的按键过程中包括以下几个阶段:

图4 按键时序图

1)等待阶段:在这一时间段按键没有按下,处于空闲阶段。

2)闭合抖动阶段:当按键刚被按下,但信号还处于抖动状态,因此系统在监测时会有延时。这个延时时间为4~20ms。消抖动延时的另一个作用是可以剔除信号线上的干扰,防止误动作。

3)有效闭合阶段:抖动已经结束,发生一个有效的按键动作。系统应该在此时执行按键功能;或将按键所对应的编号(简称“键号”或“键值”)记录下来,待按键释放时再执行

4)释放抖动阶段:通常来说,程序应该在这里做一个延时,以防误动作。但是,如果前面“闭合抖动阶段”的时间取值合适的话,可以忽略此阶段。

5)有效释放阶段:假如按键采用释放后再执行的功能,则可在此阶段进行相关处理。处理完成后转到阶段1;如果按键是采用闭合时就执行功能,那么可以直接切换到阶段 1。

6)消除抖动的办法:在按键闭合和打开的瞬间会产生许多尖脉冲,时间大约要持续几到几十毫秒。在程序中若按键被按下后延时20ms消除抖动被检测到,按键仍然能判断按键确实被按下,而判断键能返回键值。

4 结论

基于GSM短消息的远程监控报警系统是通过触发人体红外传感器,触发报警发送短消息来及时接收和了解远端现场的情况,从而节省了大量的人力,物力和财力,从而提高了安全防范和及时了解远端现场并解决突发情况的效率和力度。随着科技的进步,网络技术的发展,在今后的研究中如对硬件电路增加摄像头模块,当触发报警时可以打开摄像头捕捉画面并利用GSM模块的网络传到手机终端,这样就可以通过报警采集画面,了解终端的详细情况,具有非常广阔的应用市场。

参考文献:

[1] 韩斌杰.GSM原理及其网络优化[M].北京:机械工业出版社,2010.

[2] 马潮.嵌入式GSM短信息接口的软硬件设计[J].单片机及嵌入式系统应用,2003(4).

[3] 李鸿.用单片机控制手机收发短信息[J].电子技术应用,2003(1).

[4] 马潮.嵌入式GSM短信息接口的软硬件设计[J].单片机及嵌入式系统应用,2003(7):11-14.

[5] 胡文华 胡仁喜.Altium Designer 13从入门到精通[M].北京:机械工业出版社,2013.

[6] ATK-SIM900A GSM(GPRS)模块用户手册_V1.0[Z].

[7] STM32中文参考手册_V10[Z].

[8] ARM Cotrex-M3权威指南[Z].

猜你喜欢
监控系统
无线广播电视安全优质播出的技术分析
中央电视台高端岛3后期制作网络监控系统的实现
县级区域雨量站观测设备监控系统的研究与设计
基于Zigbee技术的煤矿井下通风机监控系统设计