文丨李 顿 吕 航
采用GSM网络远程对广播电视无线发射系统进行管控的应用
文丨李 顿 吕 航
数字蜂窝移动通信技术GSM(Global System for Mobilecommunication)已经成熟而得到广泛的应用。短消息服务是G S M网络的一项重要业务,采用G S M网络的短消息服务功能,使用计算机技术和A R M管理技术实现对广播电视无线发射系统远程管控,它能方便的为技术人员提供播出设备的工作状态,并根据管理需要进行远程控制广播电视无线发射有关设备的运行。
G S M; 远程管控; 数据采集; A R M管理
如图1所示,本系统中硬件主要有MCU、GSM模块、数据采集、显示、键盘、和存储等组成。MCU采用AVR mega16。mega16是一款高性能、低功耗8位微处理器,1K片内SRAM完全可以接收容纳一条短信内容。它的8路10位ADC可以完成发射机的电压、电流、入射功率、反射功率等模数转换。同时MCU还来完成显示、键盘扫描、异常报警、信息的发送与接收、信息存储、信息解析、以及控制开关。
图1 系统组成
根据需要,我们要采集的数据包括机房内的温度,发射机的工作电压及发射机的入射功率和反射功率,MCU不断的检测这些参数,当某项参数出现异常后,MCU将发出报警声并发出设备的报警信息,并将错误信息发送到指定的GSM手机终端上。
同时还可以根据我们的需要发送命令信息来了解机房内设备的工作情况,命令信息分为查询命令和控制命令。当我们用手机发送查询命令到本系统后,MCU将解析出是什么查询命令(如“CHDY”查询电压), MCU将根据命令查询机房相关设备的运行情况,并将查询结果以短信息的形式发送给GSM手机终端上。如果我们发送到系统的是控制命令,MCU解析出控制命令并根据控制命令去打开或关闭相应的设备,并将完成情况回传给手机终端。
系统命令格式为:命令名:参数。命令名和参数均为英文字符,手机终端输入命令时命令中间不能有空格。当系统接收到命令并执行完命令完后会将结果回传给GSM手机终端,如果不是本系统可以识别的命令,系统会将错误信息返回给手机终端。
本系统是一个对外开放的系统,系统安全很重要,所以本系统分为高级用户、普通用户和非法用户。在系统接收到一条信息后,系统将发送信息者的号码与E―PROM中保存的号码相比较,然后分辨是什么用户,如果是高级用户,您就可以通过GSM手机终端设定本系统的状态和工作值,如果是普通用户,您只能查询设备的工作情况,如果是非法用户,本系统接收命令后将不做任何动作。
在本系统中,笔者选择WAVECOM Q2303A GSM MODEM,这个模块支持E-GSM/GPRS 900/1800MHz,具有符合V24协议的RS232接口,可以方便的与PC、单片机连机通讯。MODEM工作电压范围在3.6V,支持AT命令,适用于数据、传真、短信息及话音的应用,完善的功能能够很好的完成信息发送与接收。
GSM MODEM模块对外的通信是一个RS-232接口,因为不能直接与MCU通信,我们在GSM MODEM与MCU加入一个由MAX232组成的电平转换电路,如图2所示,这样GSM MODEM就可以与MCU通信,同时这样也方便在PC上调试GSM MODEM时,只需把GSM MODEM与PC的串口相接即可进行调试,在PC上初次调试完成以后就可以接入MCU。
图2 电平转换电路
在硬件设计完成后,就要测试GSM MODEM的工作情况,这一步是为GSM MODEM接入本系统打好基础。一般可以通过AT命令来测试GSM MODEM是否工作正常。完成这个测试的软件有很多,也可以使用PC自带超级终端完成测试,以下就以PC的超级终端来完成GSM MODEM的测试。
以Windwos XP操作系统为例,点击“开始”→“附件”→“通讯”→“超级终端”打开超级终端,键入一个连接的名称,按确定,下一步来选择使用的COM口,并配置COM属性时点击“还原为默认值”,GSM默认波特率为9600bit/s,如果不能连接成功,可以选择别的波特率,接下来点击确定,连接成功以后就可以输入AT命令。例如输入“AT”回车,GSM MODEM就会返回“OK”。说明GSM MODEM工作基本正常,用户可以根据自己的需要输入AT命令设定GSM MODEM工作状态。需要注意的是GSM MODEM的信号强度,如果信号强度不够,GSM MODEM就不能完成信息的传输,输入“AT+CSQ”回车(显示强场),当返回的数值为99时表示无强场,模块不能正常工作,当返回数值为0-31和0-7之间就可以工作。还可以输入别的命令来测试GSM MODEM是否工作正常,具体的参考AT命令。
信息发送有两个模式,TEXT模式和PDU模式,在EXET中,我们只可以传送ASCII字符,不能传送中文信息。在PDU模式中可以支持中文字符也可以支持ASCII字符,但是在信息发送接收程序中,TEXT模式要比PDU模式简单一些,而且TEXT模式完全可以满足系统要求,我们就以TEXT模式来完成信息的发送和远程报警。信息发送和接收中主要用到以下AT命令,如表1所示。
1)输入“AT+CMGF=1”设置为TEXT模式。2)输入“AT+CMGS=?”发送信息到(?是指目地号码)。3)等待GSM MODEM返回“>”。4)输入信息“www.zztv.cn”和“Ctrl+Z”(ASCII码为0x1A)。5)GSM MODEM返回“+CMGS: 15”和“OK”说明信息发送成功。
还提到一个AT命令“AT+CNMI”。这个命令是用来设置有新信息来时GSM模块怎样处理信息。
0:将指示消息保留在TA的缓存区,如果TA缓存区中指示信息已满,指示信息将被缓存到其他地方或者老的指示信息被新收到的指示信息所覆盖。
1:当TA-TE无法连接或者处于数据状态时,将删除指示信息并且拒绝接收新收到的指示信息,若TA-TE正常连接并处于命令状态时,则直接将指示信息发至TE。
2:当TA-TE 无法连接或者处于数据状态时,将指示消息保留在TA的缓存区中,否则将指示信息发至TE。若TA-TE 正常连接并处于命令状态时,则直接将指示信息发至TE。
3:指示信息被直接储存到TE。当TA处在线数据方式下,TA-TE具体(特定)的波段内连接被用于嵌入结果代码和数据。
0:没有新到达的SMS-DELIVER。
1:新到达的SMS-DELIVER被正确保存后,返回其存储器及位置信息+CMTI:
2:新到达的SMS-DELIVER(除class2消息)直接发送至TE 端显示。
3:class3的新SMS-DELIVER指示方式同
通以上命令我们可以设置G S M MODEM在收到信息时在什么样的情况下通知MCU,根据需要我们在这里选择“AT+CNMI=2,1”。当收到新信息时,GSM MODEM就会向串口输出一个信息,例如“+CMTI: "SM",1”。这个信息就告诉我们信息存储在SIM的第1个位置,这时输入“AT+CMGR=1”就能读出SIM中第一个位置的信息。
通过以上调试完成以后G S M MODEM就可以接入MCU,MCU与GSM MODEM的通信过程与在PC调试GSM MODEM过程是一致的,不同的是通过PC的超级终端发送的命令现在换成了MCU。只要MCU按照以上提到几个信息发送和接收命令即可完成信息的发送和接收。
表1 主要A T命令表
在MCU启动过程中,首先执行硬件的初始化,包括设置单片机的串口工作方式、波特率、变量参数和标志位以及单片机与GSM是否连通。GSM模初始化包括关闭回显、设置为TEXT模式。单片机运行时不断的采集数据,并分析其数据是否在正常的范围内,如果数据出现异常或超过设定的值,MCU将把异常的数据发送到手机终端以供分析。如果运行过程中有信息到来,MCU将分析信息是控制命令还是查询命令,如果是控制命令,MCU将会根据命令打开或关闭相应的设备。如果是查询命令,MCU将会根据命令查询相应的内容并返回给手机终端。主程序流程图,如图3所示。
图3 主程序流程图
信息接收程序框图如图4所示,当GSM模块接收到一条新的信息时会向MCU串口发送信息的位置号。然后用AT+CMGR=“位置”读出信息,读出的信息经过MCU解析。解析后的命令如果是查询命令,MCU根据命令去查询相应的信息,如果是控制命令,MCU将根椐命令执行相应的功能。
信息发送程序框图如图5所示。在这里我们初始化发送模式为TEXT,然后发送信息目地号码,系统要等待“>”,当系统收到“>”后就将缓冲区中内容传送出去。在这里要注意,因为“>”返回的时间不定,所以设计程序要防止死循环。如果等待超时,系统将按照错误处理。
图4 信息接收
图4 信息发送
通过以上硬件和软件的设计,系统经过测试实现了广播电视无线发射设备的远程管控,并且可以控制广播电视无线发射设备的运行与关闭。为及时了解发射机设备的工作状态提供数据,降低维护费用。
(河南省无线发射传输管理中心,郑州 450003)