刘碧贞 黄 华 祝诗平
(西南大学工程技术学院,重庆 北碚 400716)
北斗在远程人防警报系统中的应用
刘碧贞 黄 华 祝诗平
(西南大学工程技术学院,重庆 北碚 400716)
针对传统的人防警报系统受地域限制的缺点,提出利用北斗的报文通信功能,设计了一套全天候、无通信盲区的远程人防警报系统。系统的上位机人机界面是在Visual Basic环境下开发的,以单片机为主控制器完成警报终端软件和硬件设计。系统可实现单个或群发警报指令的发放与反馈的功能,同时系统的警报终端还可将警报的文本内容转换成语音广播报警的功能。试验测试结果表明该系统实现了远程警报功能,且运行可靠、稳定。
北斗卫星 人防警报系统 报文通信 单片机 文语转换
目前,在远程通信技术中一般采用的方式主要有全球移动通信(global system for mobile communication,GSM)和Internet等。GSM技术虽然具有快捷高效、传输质量良好、成本低等优点[1],但受地域限制,在GSM没有覆盖的区域就无法使用[2]。Internet能实现资源共享,传输速度快,但在偏远地区使用Internet,其建设周期长、实现难度大、运行成本高。
北斗卫星导航系统由我国自行研制,拥有自主知识产权,具有测速、定位、双向授时及短信息通信功能[3-4]。其安全可靠稳定,覆盖范围大,24 h全天候服务,无通信盲区,架设与维护简便,是远程数据传输的理想通信系统[4]。本文采用北斗设计了一套远程人防警报系统。用户只需连接客户端与服务器,在客户端设置所需警报指令,就可以很方便地进行警报通信。该系统可广泛地应用于抗灾救灾、军区通信、应急通信等各个领域[5]。
远程人防警报系统结构如图1所示。
图1 系统结构图
远程人防警报系统由客户端、服务器和警报终端三个部分组成。客户端、服务器构成上位机,警报终端构成下位机。上位机与下位机之间采用北斗收/发模块进行双向通信。客户端i(i=1,2,3,…,n)发送单个或群发警报控制指令到服务器,服务器根据报警器ID,通过北斗收/发模块将警报信息转发给目的地警报终端的北斗收/发模块k(k=1,2,3,…,m)。警报终端处理相应警报事件后将警报信息的执行结果反馈给服务器,服务器回传反馈指令给对应的客户端。
由于系统的服务器与客户端之间的通信方式采用TCP/IP协议,服务器与北斗收/发模块之间的通信方式采用串口协议,而VB软件里面同时提供了服从TCP/IP协议的Winsock控件和串口协议的Mscomm控件,因此用户可以很方便地通过对控件属性的设置,实现TCP/IP通信和串行通信[6]。服务器和客户端的上位机均选择VB软件进行人机界面设计。
2.1 客户端软件设计
客户端发出各种警报指令,如警报鸣放、巡检、授时、语音广播等。客户端软件设计调用VB里面的Winsock控件,将Winsock控件的Protocol属性设为“0-sckTCPProtocol”。客户端要与服务器获得连接,必须先知道服务器所在的IP地址(RemoteHost)和端口号(RemotePort),然后调用Connet方法发送握手请求[7]。
2.2 服务器软件设计
2.2.1 服务器与客户端的通信
在服务器设计界面中添加Winsock控件,将Winsock控件的Protocol属性设为“0-sckTCPProtocol”,设置一个LocalPort作为监听端口,并调用listen,使服务器处于监听状态。当收到客户端握手请求时就会触发ConnectionRequest事件,调用其内部的Accept方法接受客户端的连接请求。客户端与服务器建立连接后,任何一方的计算机都可以发送或接收数据。可通过调用SendData来发送数据,当接收到数据时就会触发DataArrival 事件,通过调用GetData就可获取数据[8]。每接入一个客户端到服务器,服务器就会记录该客户端IP地址的索引号。当服务器接收到来自客户端发送过来的警报消息时,服务器提取数据中的任务ID并存到与其索引号对应的数组里面,以便将通信结果反馈给对应的客户端。
2.2.2 服务器与北斗收/发模块的通信
服务器是客户端与警报终端之间通信的桥梁。服务器汇总各个客户端的警报指令,然后通过北斗卫星转发给相应的警报终端。服务器与北斗收/发模块之间通过串口通信,使用VB中的Mscomm控件[9]。对其属性进行设置,初始设置打开串口COM1,波特率为19 200 bit/s,用户可根据需要在界面上进行修改。当收到来自北斗收/发模块的数据时会触发comEvReceive事件,可调用InBufferCount获得数据长度,调用Input获得收到的数据。发送数据可调用Output[10]。
2.2.3 数据库管理
调用VB中的Adodc控件,实现服务器与Access数据库的链接。数据库中保存各地区对应的代码、报警器ID和北斗卡号。在界面上可通过相关操作对数据库进行查询、修改更新。
3.1 远程人防警报系统下位机硬件设计
中央控制器采用单片机,单片机与北斗收/发模块、TTS语音输出模块以及仲裁模块之间的通信均采用串口通信,因此要求其单片机至少具有三个串口。STC15F1K60XW单片机的异步串行口UART分时复用可当三组使用,同时其价格低廉,因此单片机选用STC15F1K60XW。本系统的北斗收/发模块选用CDT-441H(M)型一体式北斗/GPS双模用户机。单片机串口经RS-232电平转换后分别与北斗收/发模块和仲裁模块进行通信。TTS语音输出模块使用中文语音合成芯片OSYN06188实现。该芯片可以通过异步串口接收待合成的文本,可直接通过脉宽调制(PWM)输出方式驱动扬声器,也可外接单只三极管驱动扬声器来实现文本到语音(TTS)的转换。本系统采用PWM直接驱动扬声器[11]。
系统下位机的硬件连接图如图2 所示。
图2 系统下位机硬件连接图
3.2 远程人防警报系统下位机软件设计
下位机主要实现读取北斗收/发模块的数据、TTS语音输出、仲裁通信和返回警报状态等功能。单片机通过串口读取警报终端北斗收/发模块接收到的数据,北斗的数据传输基本格式如图3所示。
图3 北斗的数据传输基本格式
Fig.3 The basic format of the data transmission of Beidou
在单片机内部预留一个1 024字节的缓存单元,存储从北斗收/发模块获得的数据。在缓存数据中找到警报数据的起始符“$”和数据长度字节,然后根据数据长度从消息起始符“$”开始到校验和结束读取完整的警报数据,并将所有数据逐字节异或。如果得到的异或值为零,说明该数据正确,否则数据有误。若数据有误,则丢弃该数据。若数据正确且警报文本内容需要通过语音广播,则单片机将警报文本内容转换成TTS语音文本输出格式,然后通过TTS模块广播相应的语音警报内容;否则通过串口转发给仲裁模块,由仲裁模块处理相关事件。下位机处理完警报信息后,需要向客户端回传处理结果。报警系统接收端主程序流程图如图4所示。
图4 报警系统接收端主程序流程图
4.1 客户端与服务器连接
当客户端与服务器握手成功后,在服务器界面上将客户端的IP地址提取并显示出来。若有多个客户端同时连接上服务器,则每一个客户端的IP地址和总的连接数都会显示出来。
4.2 通信测试
客户端与服务器握手成功后,在客户端设置相应任务ID和报警器ID,并点击报警类型,即可将数据发送到服务器。服务器提取该数据中的报警器ID,在数据库中查询该报警器ID对应的北斗卡号后,将数据转化为北斗数据格式并转发到目的地警报终端的北斗收/发模块。若服务器在5 min内收到反馈信息,说明此次警报通信成功;反之,若超过5 min未收到反馈信息,说明此次警报通信失败。在报警器工作状态栏中显示该报警器的通信状态(正在通信/通信失败/通信成功),最后将通信状态反馈给发出此次警报的客户端,同时在客户端界面上显示此次警报成功与否。
以单个警报测试为例,在客户端设置任务ID和报警器ID,发送“警报鸣放”的控制指令后,与报警器ID对应的卡号的北斗收/发模块的警报终端响起了警报声。其他几种警报(警报停止、巡检、授时、语音广播开启、语音广播停止、报文)测试结果类似。不同的是,当发送“授时”警报时,整个系统的时间将会被更新为与卫星同步的时间;当发送报文警报时,警报终端的TTS模块输出的语音信号为“信息内容”里面的报文内容。群发警报测试结果与单个警报测试类似,区别就是客户端可以将警报指令同时发送到多个警报终端。
4.3 功率检测
当用户需要检测北斗功率时,点击服务器界面上的“功率检测”按钮或选择“自动检测”选项设置时间间隔,服务器就会发送功率检测信息给北斗卫星,北斗卫星返回功率状况给服务器。服务器以直方图形式直观地显示接收到的北斗卫星1#~6#波束的信号功率。
经试验测试表明,系统实现了远程人防警报通信,运行稳定,操作简单,人机界面友好,达到预期效果。
人防是国防的重要组成部分,直接关系到国家的利益和人民的安危,利用各种新技术和新方法保障人防通信和警报的畅通是一个重要的研究课题。北斗以其24 h全天候服务、无通信盲区的优势,具有广阔的应用前景。
本文设计了基于北斗的远程人防警报系统,解决了GSM和Internet在远程通信受地域限制的缺点。系统可广泛地应用于抗灾救灾、应急通信等各个领域。
[1] 顾昕元,高磊,李传莉.基于GSM短信的医院制氧设备远程报警系统设计[J].中国医疗设备,2013,28(6):49-51.
[2] 徐晓晗.基于北斗的车辆远程监控报警系统[J].现代电子技术,2008,31(19):21-24.
[3] Jin S G.Recent progresses on Beidou/COMPASS and other global navigation satellite systems(GNSS)-I[J].Advances in Space Research,2013,51(6):941-941.
[4] 温静,汪大明,孟月玥,等.北斗卫星导航系统在地质调查领域应用综述[J].地质力学学报,2012,18(3):213-223.
[5] 郭景全.基于3G网络的人防应急指挥系统的设计与实现[D].成都:电子科技大学,2013.
[6] 袁小平,颜文俊.基于VB的监控器远程监控软件设计[J].机电工程,2001(6):15-19.
[7] 胡大辉,杜治国,肖兴江.VB6中用Winsock控件实现多台计算机之间的通信[J].四川畜牧兽医学院学报,2002(4):80-84.
[8] 何广龙.用VB编程实现计算机通讯[J].河南科技,2013(2):5-64.
[9] 上官胜刚.VB串口编程基础及实现[J].科技广场,2012(5):49-52.
[10]杜睿攀.基于VB6.0MSComm控件的串口通信方法研究与应用[J].河南科技,2012(20):19-32.
[11]黄华,仲元昌.TTS在智能公交报站系统中的应用[J].自动化仪表,2012,33(8):24-26.
Application of Beidou Satellite in Remote Civil Air Defense Alarm System
To against the shortcoming in geographical limitation of traditional alarm systems for civil air defense, the weather-proof remote civil air defense alarm system without communication blackout has been designed by adopting the message communication function of Beidou satellite. The man machine interface of the host computer is developed under Visual Basic environment, with the single chip computer as the main controller to achieve the design of alarm terminal software and hardware. The system can realize the functions of sending single or group alarm commands and feeding back the results, in addition, the alarm terminal can also convert the text content into speech broadcast. The results of experimental test indicate that the system implements remote alarm function and runs stably and reliably.
Beidou satellite Alarm system for civil air defense Message communication Single chip machine Text-to-speech conversion
中央高校基本科研业务费专项基金资助项目(编号:XDJK2013C107)。
刘碧贞(1990-),女,现为西南大学农业电气化与自动化专业在读硕士研究生;主要从事智能检测与控制方面的研究。
TP311
A
10.16086/j.cnki.issn1000-0380.201504006
修改稿收到日期:2014-08-28.