GSM短信报警技术初探.docx
- 文档编号:4393233
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:12
- 大小:122.13KB
GSM短信报警技术初探.docx
《GSM短信报警技术初探.docx》由会员分享,可在线阅读,更多相关《GSM短信报警技术初探.docx(12页珍藏版)》请在冰豆网上搜索。
GSM短信报警技术初探
GSM短信报警技术初探
作者:
姜春昕
来源:
《科技创新导报》2013年第23期
姜春昕
(中国联通白城市分公司吉林白城137000)
摘要:
基于GSM短信的监控报警系统,是集计算机技术、无线网络传输技术和测控技术等技术于一身的系统,可以实时、自动、方便、可靠地实现前端系统的监控处理并及时报警。
基于GSM短信息的监控报警系统可以随时随地接收远端现场情况的最新资料和报警信息,管理人员可以通过收到的信息及时了解前端现场的情况并进行处理。
该系统构建简单、实施灵活,并节省了大量的人力和物力,提高了安全防范和监管的力度和效率。
因此设计与开发GSM短信报警系统前端模块具有非常重要的现实意义。
关键词:
串口通信单片机温度监控
中图分类号:
TP393文献标识码:
A文章编号:
1672-3791(2013)08(b)-0246-05
GSMSMS-basedmonitoringalarmsystem
JIANGChun-xin
(BaichengBranchofChinaUnicom,JilinBaicheng137000)
ABSTRACT:
GSMSMS-basedmonitoringalarmsystem,whichincludescomputertechnology,wirelessnetworktransmissiontechnology,measurementandcontroltechnologyandothertechnology,canprovidewithreal-time,automatic,convenientandreliablefront-endsystemmonitoringandtimelyalarm.GSMSMS-basedmonitoringalarmsystemisabletoreceivethelatestinformationoftheremotesiteconditionsandalarminformationatanytimesothatmanagerscanunderstandthesituationthroughtheinformationtheyreceiveanddealwithittimely.Thesystemissimpletobuildandimplementflexible,anditcansavealotofmanpowerandmaterialresourcesandimprovethestrengthandefficiencyofthesecurityandregulatory.ThedesignmentanddevelopmentofGSMSMS-basedalarmsystemfront-endmodulehasaveryimportantpracticalsignificance.
Keywords:
serialcommunication;single-chip;temperaturemonitoring
随着GSM移动电话业务在中国蓬勃发展,网络已经覆盖全国。
目前GMS短信息已经和Internet融合。
某些前端信息要求实时测量并且能够及时发出传输信息到管理平台,如果异常即要求工作人员采取适当的措施进行矫正。
如果人为进行测定,既不能保证这些数据的实时性,也不能确保数据的精确性。
本课题是设计一个基于GSM短信报警系统的前端模块,前端模块可以与后台模块通过串口的方式进行信息交互,前端模块具有一定的信息采集能力,对采集的信息进行条件过滤,检测出报警信息并能将所测信息通过串口通信发送到PC平台显示。
本告警系统和GSM公用网结合,充分利用GMS网覆盖面广、运行可靠、抗干扰能力强等优点,利用GSM公用网组成的传输系统,在系统可靠性、抗干忧性、稳定性、可维护性、功能扩展性等方面均具备明显的优越性,可以实时、自动、方便、可靠地实现前端系统的监控处理并及时报警,同时可降低运营成本和劳动强度。
1本研究的背景、任务及其功能实现
1.1GSM网络概述
GSM是GlobalSystemForMobileCommunications的缩写,由欧洲电信标准组织ETSI制订的一个数字移动通信标准,GSM是全球移动通信系统的简称。
它的空中接口采用时分多址技术。
自90年代中期投入商用以来,被全球超过100个国家采用。
GSM标准的设备占据当前全球蜂窝移动通信设备市场80%以上。
GSM模块是继GSM手机外又一种非常重要的GSM移动通信系统的终端设备。
它不仅适用于小流量数据的频繁传输,有实现无线数据的远程监测、双向传输及控制等优势,而且具有覆盖范围广、价格低廉、不需拨号、永久在线等短信息自身的独特优势。
SMS短信息服务是GSM系统中提供的一种在GSM终端之间,通过服务中心(具有信息存储和转发功能)进行文本信息收发的应用服务。
1.2串口通信概述
串口是计算机上一种非常通用的设备通信协议。
大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信(SerialCommunications)即通过串口发送、接收数据。
串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通信的端口,这些参数必须匹配。
1.3本课题的任务及功能实现
本课题要实现一个基于GSM短信报警系统的前端模块,前端模块可以与后台模块通过串口的方式进行信息交互,前端模块具有一定的信息采集能力,对采集的信息进行条件过滤,检测出报警信息;系统模块要求性能稳定。
本课题的功能实现包括硬件和软件设计两个部分。
模块划分为数据采集、单片机控制、GSM短信模块报警等子模块。
电路结构可划分为:
信息采集模块(本实验中采用温度传感器)、单片机控制电路及相关的控制管理软件组成。
用户终端完成信息采集、处理、数据传送等功能。
就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。
单片机应用系统也是有硬件和软件组成。
硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统。
软件是各种工作程序的总称,主要会使用到C语言编程,相关软件环境主要是51系列单片机的开发环境。
最终是实现单片机实时采集到温度信息,然后处理该信息,一旦超出设定的规定温度值范围立刻通过串口通信发送温度信息到后端模块的PC管理平台上,后端电脑平台显示温度信息并能供后续查阅。
2系统方案设计
2.1系统总体设计
系统总体设计如图1所示,整个GSM短信报警系统的设计分为前端和后端模块,本课题研究是GSM短信报警系统前端模块的设计。
如图1所示,前端模块分为三个子模块,分别为:
温度采集子模块、数码管温度显示子模块以及与GSM短信报警后端模块相连的串口通信子模块。
单片机作为整个前端系统的控制处理中心,主要负责采集前端信息并进行判断处理,提取出警告信息后作出反应,将警告信息发送到GSM后端模块,GSM后端模块为PC机显示平台,它能收到单片机发送的串口信息后立刻发送警告短信到管理人员手机上,同时回复OK信息给单片机,前端和后端模块一起完成整个GSM短信报警过程。
单片机控制处理中心与温度采集子模块之间需要相互通信,在单片机读取温度信息的过程中双方是双向通信的过程;单片机控制处理中心与数码管显示子模块是单向通信,即单片机发送相关电平信号控制数码管显示当前的温度信息,数码管子模块不需要反馈任何信息;单片机控制处理中心与串口通信子模块(即GSM报警系统后端模块)之间是串口通信的,即单片机要通过串口与PC机进行通信,传输需要警告的温度信息。
2.2温度采集子模块
2.2.1温度传感器的选择
在实际应用中,温度常作为重要参数,温度传感器主要类型有线绕电阻式、热敏电阻式和热偶电阻式三种。
各种不同的温度传感器测量的范围以及测量精度都有所不同。
所以,在不同的使用场合,需采用合适该场合的温度传感器。
采用单总线数字温度传感器DS18B20测量温度。
该芯片有如下优点:
①能直接输出数字信号,方便单片机处理及控制,节省硬件电路;②性能很稳定,在0到100摄氏度时的最大线形偏差小于1摄氏度;③每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件,这样一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络;④采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。
采用DS18B20作为该温度采集模块的芯片。
利用DS18B20与单片机控制实现温度检测具有转换精度高、体积小、接口简单等优势。
这给系统硬件设计带来了极大的方便。
2.2.2DS18B20与STC89C52RC的连接
DS18B20与单片机的连接方式有两种,即寄生电源方式和外部电源方式。
寄生电源方式:
在寄生电源供电方式下,DS18B20从单线信号线上汲取能量,在信号线DQ处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
寄生电源方式有三个好处:
①进行远距离测温时,无需本地电源;②可以在没有常规电源的条件下读取ROM;③电路更加简洁,仅用一根I/O口实现测温。
外部电源供电方式:
在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度。
本系统采用外部电源方式。
连接方法即DS18B20的1脚接地,2脚(DQ引脚)与AT89C52的一根I/O口线相连,3脚接+5V。
在A89C52的I/O口线与+5V之间连接一4.7K的上拉电阻,以保证数据采集的正常进行。
如图2所示:
2.3数码管温度显示子模块
本系统采用的温度显示电路采用4位共阳LED数码管,从P0口输出段码,位选由P2口控制实现,位驱动用8050三极管,以实现LED的动态扫描。
LED七段发光二极管显示,它可直接显示出译码器输出的十进制数,它具有共阳接法和共阴接法两种。
共阳接法就是把发光二极管的阳极都连在一起接到高电平上,共阴接法则相反,它是把发光二极管的阴极都连在一起接地。
七段显示器的内部LED接法和外引线排列分别如图3(a)、(b)所示。
本设计中所用的数码管是SM*20561共阴数码管,采用四个数码管进行显示,温度的精确程度到小数点后一位,数码管前三位显示温度,最后一位是显示单位:
度(℃)。
2.4串口通信子模块
串口通信对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。
由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。
由于电脑串口输出电压高达12V,直接与单片机连接会烧坏芯片,所以串口连接中需要使用电平转换芯片。
本设计中使用常用的MAX232芯片来进行电平转换。
Max232产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。
该器件包含2个驱动器、2个接收器和一个电压发生器电路提供TIA/EIA-232-F电平,该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平,每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。
本设计中串口通信子模块的功能是:
单片机通过串口连接到PC机上,实时测量温度数据并判断温度是否有超出规定范围,一旦超出马上传送温度信息到串口,此时PC机从串口提取出信息即能显示并进行后续警告工作。
注意到的是PC机与串口连接时需要用到USB转串口的数据线,通过收发交叉互联后能够实现串口通信。
3软件设计
系统的软件设计采用模块化设计,采用模块化设计可以简化系统软件的编写,使软件编写思路更加简单明了。
系统软件主要由三大模块组成:
主程序模块、功能实现模块和串口数据传输模块。
主程序模块用于实现各个子程序间的跳转。
功能实现模块主要由A/D转换子程序、DS18B20复位子程序、DS18B20读数据子程序、DS18B20写数据子程序、温度计算转换子程序、显示模块子程序、运算控制模块以及串口数据传输模块等。
因此,在软件编写上应与I/O复位、读、写等的操作时序严格匹配。
程序设计使用到的软件工具:
KeilUvision3、STC_ISP_V479。
3.1系统程序总体设计
系统程序主要包括主函数程序、计算温度子程序、温度显示子程序、串口初始化、串口发送字符(串)子程序等。
主函数的主要功能是负责温度的实时显示、读数并处理DS18B20的测量温度值并将警告温度发送到串口。
系统程序总体设计流程见图4所示。
本系统程序总体设计流程主要分为三大步骤,分别为读取DS18B20温度、处理及显示温度、发送温度。
其中前面两个步骤是必须执行的,后面发送温度的步骤是依条件执行的。
读取DS18B20温度过程为:
先对DS18B20进行初始化,对DS18B20的配置数据进行相关设定;单片机发出跳过ROM命令之后,再发出温度转化启动命令,就可以实现DS18B20的温度转换;经过延时过后就可以完成对DS18B20的访问即可以读取当前的温度值。
处理及显示温度过程为:
对当前读取的DS18B20的温度数据进行处理,转换为BCD码的形式再将温度值的BCD码送入缓冲区,使温度数据显示于数码管上,方便读取。
发送温度模块过程为:
对读取的温度值进行判断是否超出规定温度范围,如果没有超出规定温度范围,则重新回到DS18B20芯片初始化阶段,重新测温,实时监控;如果发现超出规定温度范围的情况则再次判断是否连续5次超出规定温度范围,如果不足5次也重新回到DS18B20芯片初始化阶段继续循环测温,不进行报警动作,这样做是为了避免误报情况发生。
如果连续5次超出规定温度范围,单片机马上将该温度值发送到串口来传送到后端模块,表示需要进行报警动作;这时后端模块会回送“OK”信息表明收到温度值并已经触发报警动作,单片机模块则需要判断是否收到了“OK”信息,如果未收到“OK”则继续发送温度到串口提醒后端模块需要进行报警动作;如果单片机串口收到了后端PC机模块发送的“OK”信息,表示已经完成一次报警过程,此时回到DS18B20初始化阶段,依次循环,实时测温,实时处理并在需要时及时进行报警。
3.2温度检测模块
温度检测主要包括DS18B20的复位时序、读数据时序、写数据时序、温度计算转换等三个部分。
3.2.1DS18B20芯片复位时序
单片机发送一个复位脉冲(即480μs的低电平)到DS18B20芯片的数据口,然后单片机释放总线并开始进入接收状态;DS18B20检测到数据线发来的信号后指挥等待15*60μs,然后再发出存在脉冲(即60*240μs的电平),单片机接收到低电平脉冲说明对DS18B20进行的复位动作成功,没有收到该存在脉冲则需要重新对DS18B20进行复位操作。
3.2.2DS18B20芯片读数据时序
单片机将数据线电平先从高电平将为低电平维持1μs之后,再使数据线电平升为高电平,以生成读起始信号。
单片机要在15μs内完成读位。
每个周期最短持续时间为60μs,每一个读周期间隔必须存在1μs以上高电平的恢复期。
3.2.3DS18B20芯片写数据时序
单片机将数据线的电平信号从高电平降到低电平,生成写起始信号。
在15μs内单片机将所需写的位写到相应的数据线上,然后在15*60μs期间对数据线完成采样过程,如果采样结果为高电平就写“1”;否则就写“0”。
每个写周期间隔也必须存在1μs以上高电平的恢复期。
3.2.4温度计算转换子程序
温度数据处理程序将12位温度值进行BCD码转换计算,并进行温度值正负的判定,温度计算子程序流程如图5所示:
在采集到温度数据进行缓存后要将数据进行整理计算,如图4-2所示,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。
前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。
其中小数和整数部分分开计算,最后得出需要的十进制温度数值。
3.3数码管温度显示子模块设计
温度显示模块子程序包括设置字符显示的起始位和显示字符两个部分。
由检测点所得的温度数据经过温度计算子程序处理后可正常显示与数码管上。
从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符显示。
因为DS18B20的转换精度为9到12位可选的,为了提高精度选取12位。
在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。
温度显示子程序流程图如图6所示:
如图6所示,温度显示子程序的调用过程中使用到了温度计算函数,得到相应的温度数值后再进行逐位显示。
每次显示前都先要进行清屏处理,用于消除屏幕不清晰有余光的问题。
最后完成一轮温度显示之后再重新清屏,然后再逐位进行显示,依次循环。
其中P2口控制段选,P0口控制位选,每一次显示完一位数字后要调用延时函数delay()进行延时大约200*16微秒的时间,以实现动态显示。
3.4串口通信模块
主要相关的程序设计的步骤如下:
3.4.1串口初始化的流程
(1)先将串口初始化,串口初始化的流程图如图7所示。
串口初始化是整个程序的最开始阶段。
主要是对串口通信的各种数据进行设置。
流程如图7所示。
先设置串口的工作方式,本程序设计中采用的是方式1,8-bitUART,然后选择定时器和重装方式并设置波特率为9600,启动定时器并开中断。
完成整个串行口初始化的过程。
3.4.2向串口发送单个字符的子程序流程
向串口发送单个字符的子程序流程如图8所示。
如图8所示是单片机发送单个字符到串口的过程。
首先是发送数据到SBUF缓冲区,使用while函数循环等待(发送结束标志为TI=1)数据发送完毕后,再对中断标志TI进行清零,表示允许下次中断,完成一个单字符的发送过程,等待下次被调用。
3.4.3向串口发送字符串的子程序流程
向串口发送字符串的子程序流程图如图9所示。
发送字符串到串口是调用送单字符到串口程序的过程如图9所示,计算字符串长度并设置为循环标志,循环调用发送单字符的函数知道循环结束,即完成整个字符串的发送。
通过上述三个步骤的程序流程图设计,编写了与串口通信相关的被调程序,由主程序调用。
编译成功的程序烧录到单片机后能够实现单片机发送温度到串口,在串口调试助手能收到预先设定要发送的数据,经检测证明该软件程序设计可以达到要求。
4系统调试
4.1硬件调试
硬件调试相对软件调试比较简单,但是是进行软件调试的必经步骤,也是整个系统能正常运行的基础前提。
硬件调试主要是针对主控板中单片机模块和外部输入、输出模块进行调试。
笔者将该硬件调试主要分成两部分来进行:
上电前的调试和上电后的调试。
4.1.1上电前的调试
首先是对元器件的检测。
其中STC89C52芯片以及DS18B20在未接电路时是不能检测其好坏的。
对于其他器件则可利用万用表进行测量。
如用万用表的欧姆档对电阻进行测量等。
在上电前,整个调试工作的第一步,也是非常重要的一个步骤就是必须确保电路中不存在断路或短路情况,这一调试工作主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。
将一个表笔固定在电源端或接地端,另仪表笔接其他连接点,指针偏转到0刻度就是通路的。
通过万用表的检测,单片机开发板上没有发现不合理的短路和断路的地方,连接线的测试也正常,故上电前的调试显示基本器件均处于正常状态,可进入下一步调试过程。
4.1.2上电后的调试
通过上述上电前的调试,确保硬件电路正常,无异常情况(断路或短路)后就开始上电调试,上电调试的目的是检验电路是否接错,同时检验原理是否正确。
由于上电后调试要依靠单片机烧录相应的程序来进行测试,故将该开发板和芯片的测试部分归为软件调试部分,在下一小节讨论调试过程遇到的问题。
4.2软件调试
本系统调试以程序为主,使用到的软件工具:
(1)开发编译工具KeilUvision3:
用于单片机C51程序的编写调试以及生成可烧录的.hex文件;
(2)下载烧录以及串口调试工具STC_ISP_V479:
用于单片机的程序烧入以及烧录之后的串口调试工作;(3)开发板驱动软件USB2SERDriver:
单片机开发板的电平驱动,使计算机USB接口可以给单片机系统供电。
首先是将开发板测试程序烧录到STC89C52芯片中,检查开发板是否能按照该测试程序所要求的功能正常显示运行,经过测试发现单片机开发板正常,同时也证明了该单片机芯片是好的,能正常使用。
至于温度测试部分因为程序需要先编写好之后再测试,暂时没有办法先测试芯片的好坏,故在购买DS18B20芯片的时候购买了备用芯片,防止其中一个损坏。
调试过程中,在网上查阅资料时发现DS18B20芯片的引脚正负极很容易接反,接反则导致温度一直显示为85度,故每次调试前都认真核对正确后才插入单片机再接通电源。
软件调试可以先编写显示程序并进行硬件正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、数码管显示等子程序的编程及调试。
本程序采用C语言编写,用KeilUvision3编程调试。
软件调试首先要能显示温度值,而且在有温度变化时(例如用手去接触)显示温度能改变就基本完成;其次,实时处理温度信息,检测出报警信息则立刻将温度发送到单片机的串口部分,传输给PC机,完成GSM短信报警系统前端模块的功能
4.3温度采集及显示模块调试
由于温度采集模块需要温度显示模块的显示才能知道是否有成功采集正确的温度信息,故将这两个模块一起进行调试。
首先是烧录数码管显示的一些基础例程到单片机当中,根据例程来判断数码管是否能正常显示数据,如果检测后发现数码管运行正确则完成第一步检测,再开始下一步的温度采集和显示的联合调试。
烧录能采集温度并显示到数码管上的程序到单片机当中,连接好温度传感器芯片DS18B20和单片机系统,接通电源,观察数码管上是否有显示温度。
这一过程曾遇到下面几个问题:
第一个问题是数码管没有任何显示。
经检查程序是单片机的段选位选设置有误的问题,每个单片机开发板的线路布局都有不同,故开始使用的程序需要根据该开发板的硬件电路图来进行修改。
经过修改后,数码管能正常显示要显示的数据,即完成第一步调试。
第二个问题是数码管显示的是乱码。
分析可知,能显示乱码说明不是数码管显示的问题,于是从DS18B20芯片入手检测。
经检查是温度数据的转换的问题,数码管需要显示的是十进制的数据,故应该先把获取的温度信息转换成BCD码再进行测试,发现数码管能显示温度信息,例如:
28.5C。
第三个问题是数码管虽然能不断刷新显示温度信息,但是总是有重影
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GSM 短信 报警 技术 初探
![提示](https://static.bdocx.com/images/bang_tan.gif)