文/王爽
随着电子技术的发展,电器的使用越来越智能化,而对电器的远程控制的应用需求也越来越多。对于电器的远程控制,我们可以使用专用的远程控制端和通过其他无线设备进行控制两种方法实现。利用专用远程控制端进行控制需要针对每个电器开发一个控制端,并且控制距离也会受到无线信号的影响。因此利用手机及现有的移动通信网络就成为一个很好的选择,然而在某些情况下的远程控制是无法或者不方便使用数据网络进行控制,这就需要通过手机的话音系统进行控制。本文中主要讨论了通过GSM模块,利用手机的话音系统传递按键对应的DTMF(双音多频)信号,实现远程手机对电源控制的系统设计。
DTMF(双音多频)是由贝尔实验室开发的信令方式,通过承载语音的话音系统传送电话拨号信息。每个数字利用两个特定的单音组合信号来表示,并且DTMF信号的抗干扰性较强,一般情况下,声音信号很难造成对DTMF接收器的错误触发。
本系统的设计是使用DTMF技术作为控制信号的载体,因此作为远程控制端的手机,只需要是按键正常并且可以正常拨打电话,就可以实现远程控制。而受控端通过一个合理的算法,运用程序实现通过GSM模块接收并解析远程控制手机的按键控制信号,并根据控制信号对相应的电源进行控制,进而实现对电器的远程控制。
2.1.1 硬件框架设计
本系统使用的主要芯片包括:单片机89C52、GSM模块、DTMF解码芯片MT8870,DTMF信号发生器HT9200A。GSM模块采用BenQ的M22,M22通过串行通信接口与单片机进行链接。单片机的重点是通过DTMF解码芯获取并解析用户命令,通过Ι/Ο口控制继电器实现对电源的控制,并通过DTMF信号发生器给予用户反馈(图1)。
2.1.2 硬件接口设计
图1:系统总体框架
图2:系统流程图
图3:控制命令解析流程图
单片机89C52通过串行通讯接口与GSM模块M22连接,用于AT命令的发送与M22反馈信号的接收;单片机89C52通过P0.0至P0.4五个接口与DTMF解码模块MT8870连接,用于接收与MT8870传回的DTMF解码信号;单片机89C52通过P2.1至P2.3三个接口与DTMF发生模块HT9200A连接,用于向HT9200A发送需要向用户发送的反馈信号,供HT9200A生成DTMF反馈信号。GSM模块M22的AUXΙ接口与DTMF发生模块HT9200A连接,用于接收HT9200A生成的需要向用户发送的DTMF反馈信号;GSM模块M22的AUXΟP接口与DTMF解析模块MT8870连接,用于向MT8870发送控制命令的DTMF信号,供MT8870解析。
2.2.1 基本算法
本系统是通过单片机对GSM模块和其他模块进行控制从而达到目的。因此在开始通电之后单片机应先通过AT命令,查看GSM模块是否正常启动,SΙM卡插槽内是否有SΙM卡,在确定正常启动之后单片机转入待机状态。当外界有电话打入时,GSM模块会给单片机发送一个信号,这时单片机通过AT命令将电话接起,同时给DTMF模块一个信号使其发出一个已接通电话的声音。当用户通过手机发送命令时,通过DTMF解码芯片解析GSM模块接收到的用户命令并反馈回单片机,单片机通过DTMF模块发送一个信号告诉用户其按的是哪个命令的同时,向相应的电源控制模块发送信号,打开/关闭相应的电源。在电源接通后,向M22发送挂机的AT命令。这样一次的操作就结束了(图2)。
算法的重点在于正确的解析用户的按键命令。用户通过手机按键发送信号,这里本系统使用的命令具体格式为:*数字1*数字2#。其中“数字1”为要控制的电源编号,在本系统使用了3路电源控制,序号分别为01,02,03;“数字2”为开关命令,1为开,0为关。
2.2.2 控制命令解析算法
由于M22不支持直接将DTMF信号转换发送给89C52。所以我们在这使用了MT8870芯片的解码功能,将手机按键命令的DTMF信号进行解析成单片机89C52可识别的数据。再由单片机89C52分析这些数据是否符合命令规则,并根据命令执行相应的指令(图3)。
本文所介绍的系统通过单片机控制GSM模块接听用户来电,并解析用户按键命令,按照用户命令控制相应的电器电源以实现电器的远程控制。因为GSM模块M22同时支持短信的收发功能,在后期可以进行二次开发,增加短信解析算法,实现用户通过短信实程控制,并且也可以利用单片机剩余接口增加传感器,向用户反馈电器运行状况。