GSM 网络技术在网络家电中的应用
鹿红伟 刘忠民
(广东科龙空调器有限公司)
摘要 利用 GSM 网络的 WAP 数据业务,实现上位机(PC 机)对空调群的远程、
实时监控;利用 GSM 网络的短信业务,实现 PC 或手机对空调的开停控制、参
数设置、状态查询等功能。
关键词 GSM;SMS;PDU;网络空调
The Application of Gsm Network Technology in Network Air-Conditions
Lu Hongwei Liu Zhongmin
(Guangdong Kelon Air Conditioner Co.,Ltd)
Abstract The article introduced two long-distance and real-time control ways of
control is by WAP data business of GSM network in other
is by SMS business of GSM network.
Keywords GSM;SMS;PDU;network;air-condition
1 前言
随着经济的迅猛发展及生活质量的不断提高,人们对居住环境的舒适度、安
全性以及操作的便捷性等要求也越来越高。比如在炎热的酷暑,希望一上班就能
享受到空调带来的凉爽;人们旅游在外时,希望能将家中的灯、电视机打开一段
时间再关闭以造成有人在家的假象,提高家居的安全性;当小偷破坏车主的汽车
防盗报警系统时,能触发另一系统自动给正在外地办事的车主手机或当地警察报
警;还有半小时就下班了,现在就将家中电热器打开烧水等等。再比如,现在很
多商用空调(如电信基站用的空调)安装在遥远、偏僻、荒芜人烟的场合,这些
地方的气候条件非常恶劣,且终年无人职守,要确保里面的设备能正常稳定运行,
就必须时刻监控机房中的环境温度、湿度、空调运行状况,当遇到空调发生故障
时应能及时、自动向控制中心或值班人员手机报警等。
在这些应用中,通过有线网络(如有线 Internet 网络和 PSTN 网络)需要专
用网线,实现起来不经济也不方便。由于 GSM 网络覆盖范围广,用户无需另外
组网,且用户数量无限制,因此比起传统的有线集群系统具有无法比拟的优势,
加上 GSM 的 SMS 功能不受时间、地点的局限,使得利用 GSM 网络构筑的网络
家电的应用前景越来越广。为此,公司于 2004 年立项并成功开发出基于 GSM
网络的网络家电 - GSM 网络空调系统。
2 系统简介
系统示意如图一。
图中系统可分为 4 部分;(包括一个通过串口连接的无线调制调解器)
或手机,通过 GSM 网络发送或接收数据; 网络; 网关,是 PC 和
家电通讯的桥梁;4.网络家电,可以是网络空调、冰箱、电热器具、电动窗帘等
(下以空调为例)。
在该系统中,1 台 PC 可带任意多个网关,通讯时根据网关的电话号码(SIM
卡号)来识别;1 个网关可带 128 台(受 485 总线限制)网络家电,根据网络家
电的地址来识别。网络家电的高位地址表示家电的类别,如空调为 1、热水器为
2 等,而低位地址是由网关根据各类家电已登陆注册的台数按顺序自动分配的。
网关是整个系统的技术关键,因此下面介绍 GSM 网关的设计。
3 GSM 网关硬件设计
图二是 GSM 网关原理图。其中 D101 为 89C58 单片机;D106、D107 一起
组成外扩 RAM,主要用于存贮网关下所有空调的即时状态信息;GP101 的型号
为 TC35 模块,与单片机通过 RS232(D102)连接。该模块是西门子为嵌入式设
备设计的 GSM 双频通讯核心模块,支持语音通讯、数据通讯和短信功能,具有
定义的标准 AT 命令接口;D105 为 EEPROM,用于存储通讯密码、
电话号码、空调信息码等,同时起到外部 Watchdog 作用;X102 通过 485 总线
(D101)接网络空调。
图一 GSM 网络家电系统示意
由于 GSM 模块在拨号及收发短信时有较强的射频干扰,因此在设计 PCB 时应注
意抗干扰问题。
图二 GSM 网关原理图
4 GSM 网关软件设计
Modem 初始化
○将 Modem 给单片机的返回结果码初始化为数字模式(用“ATV0”命令),
可简化程序。如在数字模式时铃声的返回为“2\r”;而在参数 V 的默认设置时返
回结果为字符模式,因此铃声的返回就变成“RING\r”。(\r 为回车符,下同)。
○因需发送汉字,短信必须采用 PDU(protocol description unit)模式(用
“AT+CMGF=0\r”命令)。PDU 模式支持所有的手机。PDU 串仅由数字或大写字
母的 ASCII 符组成。中文或中英文混合短信须用 UCS2 编码方式,短信内容需转
化成 Unicode 码。
○ 在收到新短信时要求 Modem 提示(用“AT+CNMI=1,1,0,0,1\r”命
令)以便及时处理。
○单片机在收到规定次数的打铃信号后,要求手工摘机(用“ATS0=0\r”)
数据通讯
网关与空调之间,网关是主机空调是从机;PC 与网关之间,PC 是主机网
关是从机。
PC 用数据拨号方式(TC35 分语间拨号和数据拨号,见参考资料 4)和网关
建立连接后,必须先验证通讯密码,如密码不对,系统将挂机。密码通过后,用
户可对本网络所辖空调进行开停、设置、查询等操作;PC 会每隔一定时间发一
个命令给网关以表明系统连接正常,如在规定时间内网关没有收到任何数据,则
网关认为 PC 出现故障(如 PC 突然断电),网关将挂机;PC 还可设置网关报警
电话号码、通讯密码、短信密码、信息服务中心码等。
网关收到 PC 命令后,先判断该命令是给空调的还是给网关本身的,如是给
空调的,则转发给空调,待空调返回后最终将返回结果发给 PC。在转发 PC 命
令给空调时,须等待正在进行的网关扫描空调的命令发送完毕且已返回或延时一
段时间才能执行,否则将降低通讯成功率。
PC 与网关之间采用 UART 口通讯,波特率为 9600(TC35 的波特率是自适
应的)。当收到 PC 一帧正确数据后,对数据的处理我们将其视为一个任务。
程序采用任务堆栈结构,最大任务数 10 个,超出的部分自动丢弃(一般任
务数不会超过 3 个)。每增加一个新任务,任务压栈:任务数加 1,并记下该任
务的命令、地址。程序检查目前有无待处理的任务,如有,则依次弹栈处理,每
处理 1 个,任务数减 1,直到任务都处理完毕。这些任务包括处理 PC 命令,转
发 PC 命令给空调,处理空调返回数据,回应 PC 命令,网关扫描空调,容错处
理等。
网关处理完所有任务后(任务数为 0),才对已登陆的空调状态进行轮询扫
描,同时,每隔一定时间查询一次是否有新空调加入网关,如有,则由网关自动
分配空调地址(低位)使其登陆,登录是以信息码区分的,所以不会出现不同空
调具有相同地址的情况。
由于既要与 PC 通讯又要与空调通讯,因此我们将与空调的通讯采用 I/O 口
模拟,波特率为 1200。空调数量越多,网关轮询一遍所需时间越长,按照我们
的协议 100 台空调轮询一遍的时间约在 550ms*100 即 1min 左右,但这已能满足
空调等家电实时性要求不高的场合。网关将轮询时得到的空调状态保存在外扩
RAM 中,当 PC 要求刷新所有空调状态时,网关将这些数据按每 15 台一组整体
打包发给 PC,这样既提高了 PC 的查询速度,又保证了空调状态的实时性。
通过 PC 设定报警电话(如 PCModem 模块的 SIM 卡号)后,在网关查询到
某台空调发生故障且网关 Modem 处于不忙状态时,网关会主动向该电话拨号,
连接成功后可由 PC 自动查询到空调故障。也可以短信形式向用户报警。
短信处理
读短信
收到 PC 或用户发来的新短信时,TC35 模块会告知网关该短息的 index,如
index=0x31(ASCII 符),则通过“AT+CMGR=1\r”命令可读到该信息的内容。如
SMSC 的号码是 13800765500(顺德地区信息服务中心码),发送方手机号码为
13690673365,信息内容为“123 空调 10 开”(123 为密码,10 为空调低位地址),
则 网 关 收 到 的 短 信 PDU 串 可 以 为 : 08 91683108705605F0 840D
91683196603763F5 0008 4060915135930010
0031003200337A7A8C03003100305F00
分段 含义 说明
1 08 SMSC 地址信息的长度 共 8 个八位字节(包括
91)
2 91 SMSC 地址格式(TON/NPI) 国际格式,ISDN
3 683108705605F0 SMSC 地址 实为 8613800765500,
位数(13)为奇数,则
补“F”变成偶数
4 84 基本参数(TP-MTI/MMS/RP) 接收,无更多消息,有
回复地址
5 0D 回复地址位数 13 个,不包括 91 和 F
6 91 回复地址格式(TON/NPI) 国际格式
7 6831966037635F 回复地址(TP-RA) 8613690673365, “F”补
成偶数
8 00 协议标示(TP-PID) 普通 GSM 类型,点到
点方式
9 08 编码方式(TP-DCS) USC2 编码
10 40609151359300 时间戳(TP-SCTS) 04-06-19 15:53:39 0 时
区
11 10 信息长度(TP-UDL) 16 进制,16 个字节
12 0031003200337A
7A8C0300310030
5F00
信息内容(TP-UD) “123 空调 10 开”
单片机读到上述短信后,需要进行以下几项工作:
○记录发送方手机号码(上表第 6、7 部分),以便回复短信;
○根据短信编码方式(第 8 部分),对短信内容进行解析。因编码方式有 7 位、8
位和 16 位(USC2),解码程序也就不一样(程序略);
○进行密码校验,如密码不正确,则直接将其删除;
○进行密码校验通过,且短信内容符合相关约定,则将短信命令以特定协议格式
转发给相应空调,并将该短信删除。因此,网关收到上面短信后,就将开机命令
发给 10 号空调;
○在规定时间内,空调未返回执行结果,网关将重发。如重发 3 次仍没返回,则
识系统通讯故障。
写短信
仍以上述短信为例。空调收到网关的开机命令后执行开机操作,并将执行结
果返回给网关。如网关判断该返回是回应短信的,则网关以中文短信形式将结果
发到 PC 或用户手机上(此例中号码为 13690673365),从而方便而又廉价地实现
了对空调的双向短信控制。发触的 PDU 串为:08 91683108705605F0 1100 0091
6831966037635F 00 0801 107A7A8C03003100305F00
发送短信的格式如下:
分段 含义 说明
1 08 SMSC 地址信息的长度 共 8 个八位字节(包括
91)
2 91 SMSC 地址格式(TON/NPI) 国际格式,ISDN
3 683108705605F0 SMSC 地址 实为 8613800765500,
位数(13)为奇数,则
补“F”变成偶数
4 11 基本参数(TP-MTI/VFP) 发送,TP-VP 用相对格
式
5 00 消息基准值(TP-MR) 信息类型
6 0D 目标地址位数 13 个,不包括 91 和 F
7 91 目标地址格式(TON/NPI) 国际格式,ISDN
8 6831966037635F 回复地址(TP-DA) 8613690673365, “F”补
成偶数
9 00 协议标示(TP-PID) 普通 GSM 类型,点到
点方式
10 08 编码方式(TP-DCS) USC2 编码
11 01 有效期(TP-VP) 10min
12 10 信息长度(TP-UDL) 16 进制,16 个字节
13 7A7A8C03003100
305F00
信息内容(TP-UD) “空调 10 开”
经测试(小灵通手机除外),回复短信时,为简化程序,上述第 1、2、4、5、
6、7、9、10、11 部分可用表中的固定字段。
由于网关是用单片机控制来实现短信收发的,因此在对信息内容编码时,需
用到 GB2312 到 Uni-code 编码的转换表,即对每个 GB2312 字符,根据它是中文
字符还是英文字符分别进行查表转换,这样也就要求单片机的 ROM 容量要在
60k 以上。我们使用的单片机才 32k ROM,没有外扩,因此程序中的汉字列表只
能根据实际使用需要选择 2000 个左右的常用汉字,这已能满足绝大多数家电控
制的要求。
5 结束语
由 GSM 模块 TC35 及单片机构成 GSM 网关,可以很好的完成短消息收发和
数据通信,由此构成的 GSM 网络空调控制系统是其应用的一个实例,其它网络
家电,嵌入相应协议后就可使用。通过较长时间的可靠性试验和用户试用,目前
系统运行稳定,用户反映良好。
参考文献
1 PDU 技术规范:
2 技术规范、 及 技术规范:
3 PDU 的编、解码例程参考:http:/
4 如 何 使 用 TC35-TC35T GSM MODEM 进 行 数 据 通 讯 :
http: