GPRS与ZigBee在智能家居设计的应用
GPRS(GeneralPacketRadioService,通用分组无线服务)是在GSM基础上发展起来的一种分组交换的数据承载和传输方式,在嵌入式系统中应用非常广泛。由于GPRS通信弼络实现了联网和漫游,这样利用网络传输数据无须再组建专用通信网络,因此采用短信方式传输数据的系统应用将越来越广泛,这使得以短信方式传输控制命令成为可能。ZigBee是最近发展起来的一种短距离无线通信技术。由于ZigBee具有近距离、低功耗、低数据率、低成本等特点,因此适于家庭控制。 基于GPRS和ZigBee技术的智能家居解决方案采用以单户家庭为单元的通信控制模式,在每一个家庭中都安装一个主控中心(负责用户控制信号及家电反馈信息的接收和转发),及若干个与家电设备相连的分控终端(控制该家庭的所有电器)。主控和分控装置由家庭总线相连,家庭总线采用ZigBee无线通信方式。此装置便于家庭独自管理,安全性、可靠性高。
1概述 1.1无线数传模块MC35i GPRS通信模块采用无线数据传输模块MC35i,支持数据、短信、语音和传真业务。MC35i是新一代GSM/GPRS双模模块,完全兼容上一代的MC35、TC35i;采用紧凑型设计,为用户提供了简单、内嵌式的无线GPRS连接。MC35i的GPRS永久在线功能提供了最快的数据传输速率。
1.2IP_Linkl270模块 ZigBee无线网络通信模块采用赫利讯的IP_Link1270模块。ZigBee(IEEE802.15.4)技术是最近发展起来的一种近距离、低功耗、低数据率、低成本的双向短距离无线通信技术,被业界认为是最有可能应用在工控场合的无线方式。Helicomm公司推出的IP_Linkl270是ZigBee的开发工具和产品,包含符合802.15.4标准的2.4GHz射频组件、低功耗的8位微控制器、ZigBee网络软件和全波长天线,每次接力通信都能在75m范围内提供250kbps的速率;支持最新的RS232mesh透明串行模式,能在网状或多次跳接(multihop/无线网络内支持串行数据路由,速率最高可达38.4kbps。IP_Linkl270是完全符合IEEE802.15.4标准与ZigBee规范的2.4GHz无线收发模块,射频部分使用Freescale的MCl3191/13192/13193芯片,MCU使用的是Freescale公司的MC9S08GT60芯片。
2系统结构和工作原理 2.1系统结构和功能 系统通过GSM手机发送短信命令来读取三表的数据,并对室内电灯进行控制。分控中心可以检测外中断,当有外中断产生时,分控中心的蜂鸣器发出响声,这时分控中心会主动向用户发送短信来提示用户室内有异常。 系统由主控中心与分控终端两部分组成,如图1所示。主控中心主要由GPRS模块通过USB与PC机连接,ZigBee模块IP_Linkl270通过串口与PC机连接。GPRS通信模块采用MC35i,负责收发短信的命令;ZigBee无线通信模块采用TP_Link1270,负责控制分控中心的设备,来读取三表的数值与控制室内灯的开关。
分控终端主要由IP_Linkl270、SM5964A单片机、128×64点阵的LCD液晶显示模块组成。LCD用于数字的电表、水表、气表值的显示;单片机上的键盘可以改变三表的值,通过单片机上的串口来控制IP_Linkl270数据的收发,把三表值和室内灯的开关状态返回到主控中心。 系统的主要控制流程如下: ①由用户手机发命令给MC35i模块,MC35i收到命令后,解释该命令。解释完命令后发给主控中心的IP_Linkl270,由该模块把命令发给相应的分控终端设备,分控终端设备收到命令后作出相应的动作。 ②分控终端收到命令后,一是作出相应的动作后向上层作出应答,二是把上层需要的数据通过IP_Linkl270传给主控中心。主控中心把收到的分控终端信息,通过MC35i以短信形式发送到用户手机上。 该系统主要实现的功能如下: ①通过GPRS模块收发短信,控制室内的三表和电灯开关。如果有盗窃,则可以报警并以短信的形式报告给房主。 ②通过发送wat、gas、ele(水,气,电)3条短信给主控中心,主控中心把这3个命令通过主控制中心的IP_Link1270发送给分控中心的IP_Linkl270。分控中心收到该命令后,把当前的三表的值,通过分控中心的IP_Linkl270发送给主控中心,主控中心把收到的三表的值打包并通过短信的形式发给主机。 ③通过发送L11、L2l、L31打开室内不同的三盏灯。 ④通过发送L10、L20、L30关闭室内不同的三盏灯。 ⑤通过发送L1?、L2?、L3?来查询这三盏灯的开关状态。 当有人入室盗窃时,报警器就会报警,通过单片机的外中断,把报警信息主动发送给房主。
2.2硬件设计原理 主控中心、分控中心硬件设计原理分别如图2所示。
MC35i有40个引脚,其中RXD、TXD必须与ZigBee的RX、TX平行相连进行数据的收发,CCIN(24)、CCRST(25)、CCIO(26)、CCCLK(27)、CCVCC(28)引脚分别与SIM卡的8、2、7、3和1相连.分别表示SIM卡是否置入、SIM卡复位、SIM卡数据、SIM卡时钟、SIM卡电源。 分控中心SM5964A的第1l、lO脚TXD、RXD与ZigBee的第5、4脚TX、RX连接进行数据通信,第P10、P11、P12、P13、P14、P15、P16、P17引脚与键盘连接,通过程序控制键盘的操作。
2.3MC35i与IP_Linkl270的软件调试设计 2.3.1MC35i软件调试设计 在熟悉AT指令集的基础上,实现对MC35i与PC机之间通信的调试、电路的调试、短信的收发和查看MC35i发送与接收数据的格式。这里的上位机程序是用VB编写的串口收发程序。 VB语言中MSComm控件是一个串口通信的专用控件。下面是上位机串日程序的主要代码——响应的Oncomm事件(这里是以二进制数接收的):
2.3.2IP_Linkl270的通信 下位机主要负责对主控中心的IP_Linkl270发过来的数据进行解码,解码后再对用户所有的数据或要执行的指令进行处理;或者当单片机产生中断时,主动地向用户发送信息。 下位机的主要功能是通过串口采用AT指令集对IP_Linkl270发送的数据进行收发,并对收到的数据进行解码。分控中心的IP_Linkl270处理数据流程如图4所示。
下面是判断是否要读取水表的数据,打包水表值,并发送的程序:
|