2022年通信新技术综合训练文档-GSMZigBee融合的远程监控系统设计 .pdf
通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计GSM/ZigBee 融合的远程监控系统设计近年来,随着移动通信技术和网络技术的快速发展、人们生活水平的不断提高以及生活节奏的加快,人们对移动性、网络化、智能化家居的要求也越来越高,而对远程设备的智能控制便是其中一个重要方面。目前所使用的遥控方式主要为红外近距离遥控,而它们在很大程度上并不能满足用户的远程遥控需求。一方面,红外遥控受到距离限制,方向性强,使用局限性明显;另一方面,无法联网,实现网络控制、远程移动控制困难。随着 ZigBee 规范及移动无线网络技术的发展,手机的普及,上述问题的解决也就成为可能。在室内安装一个实现移动无线网络与ZigBee 无线网络接入的网关,建立一个ZigBee无线网络, 手机等移动通讯终端作为远程控制设备,内嵌 ZigBee 无线通讯模块的ZigBee 设备自动加入ZigBee 无线网络,运用绑定功能,既能进行单路远程控制与查询,又能灵活实现多路控制与查询。一、GSM/ZigBee 网关硬件设计1. 移动信息收发模块及其外围电路设计移动信息收发模块是网关的重要功能单元,本设计选用Siemens 公司的 MC37i 模块。该模块有AT 命令集接口,支持文本和PDU 模式收发短消息。通过50 引脚的ZIF(Zero Insertion Force ,零阻力插座 )连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过ZIF 连接器及 50? 天线连接器,可分别连接SIM 卡支架和天线。MC37i实物如图1 所示。图 1 MC37i实物图MC37i 的引脚功能如表1 所示。 50 个引脚可以划分为5 类,即电源、数据输入/输出、SIM 卡、 音频接口和控制。 第 21-30 脚为电源部分, 其中 26-30 脚为电源电压输入端VBATT+ ,21-25 脚为电源地GND ,31 脚为对外输出电压(共外电路使用)。1-6 脚为 SIM 卡插座引脚,分别为 CCCLK 、CCVCC 、CCIO 、CCRST、CCIN 和 CCGND 。43-50 脚为语音接口,用来接电话听筒。41、18、40 和 13 脚为控制部分:41 脚为点火线IGT(Ignition) , 当 MC37i 通电后必须给IGT 一个大于 100ms 低电平,模块才能启动; 18 脚为 RTC backup, 40 脚为 Power down,13 为 SYNC 。 14-17、 32-39 脚为数据输入 /输出,分别为 RXD1 、RXD0 、 TXD1 、TXD0 、RING0 、DSR0、RTS0、DTR0、RTS1、CTS0、CTS1、DCD03 。MC37i 引脚插座实物图如图 2 所示。根据系统设计的需要,MC37i通过 ZIF 连接器分别与电源电路、启动电路、数据通信电路、 SIM 卡电路、指示灯电路等连接。该系统的外围电路主要由电源稳压器LM2941CS ,上电启动芯片NE555 ,SIM 卡座等组成。第1页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计表 1 MC37i引脚列表 引脚 功能 功能 引脚 1 CCCLK EPN2 50 2 CCVCC EPP2 49 3 CCIO EPP1 48 4 CCRST EPN1 47 5 CCIN MICN2 46 6 CCGND MICP2 45 7 RXDDAI MICP1 44 8 TFSDAI MICN1 43 9 SCLK AGND 42 10 TXDDAI IGT 41 11 RFSDAI EMERGOFF 40 12 BATT_TEMP DCD0 39 13 SYNC CTS1 38 14 RXD1 CTS0 37 15 RXD0 RTS1 36 16 TXD1 DTR0 35 17 TXD0 RTS0 34 18 VDDLP DSR0 33 19 POWER RING0 32 20 CHARGE VDD 31 21 GND BATT+ 30 22 GND BATT+ 29 23 GND BATT+ 28 24 GND BATT+ 27 25 GND BATT+ 26 图 2 MC37i引脚插座实物图(1)MC37i 电源电路图 3 电源电路MC37i 供电电压范围为3.3V-4.8V ,本模块通过外部5V 电源供电。供电部分电路原理第2页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计图如图 3-3 所示,外部电源供电由Power 端口输入, 连接到 LM2941CS 的 IN 端。LM2941CS是开关型可调高性能微波电路专用稳压芯片。图3 中 LM2941 最左边 1 号脚是电压调整端,提供 1.28V 的基准电压,可以通过外围两个电阻的分压比能灵活改变输出电压,2 号脚是控制端,高电平时关闭电源模块,低电平时模块正常工作,3 号脚是地, 4 号脚是电源输入端,5 号脚是电压输出端,为MC37i 提供工作电压,理想值是4.2V 。(2)MC37i 启动电路MC37i 模块上电 10ms 后(电池电压须大于3V ) ,为使之正常工作,必须在41 脚(IGT)加时长至少为100ms 的低电平信号,且该信号下降沿时间小于1 ms。启动后, 41 脚的信号应保持高电平。 如图 4 所示,为启动电路产生的信号,从中可以看出10 ms 的延时和100 ms的低电平。IGTBATT+100ms0ms30ms80ms180msIGTPower supply active图 4 MC37i启动信号MC37i 启动电路原理图如图5 所示。 NE555 是一个能产生精确定时脉冲的时基电路芯片,其输出驱动电流可达200mA。在多谐振荡器工作方式时,其输出的脉冲占空比可由两个外接电阻和一个外接电容确定;在单稳态工作方式时,其延时时间由一个外接电阻和一个外接电容确定, 可延时数微秒到数小时。此处它与外围电路结合组成定时器可以达到MC37i启动的要求。在图 5 中,若选取参数?=kR1006,uFC7. 46=,?=kR2 . 27,则电容放电时间T(NE555 输出低电平持续时间)为:6C2ln66CRT =7 .0107.41010063-)(329 msmsT100,由此可知选定参数满足设计要求,可以使MC37i 模块启动。图 5 MC37i启动电路原理图(3)SIM 卡接口电路第3页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计MC37i 模块中的基带处理器集成了一个与ISO 7816-3 IC Card 标准兼容的SIM 接口。为了适合外部的SIM 接口,该接口连接到主接口(ZIF 连接器 )。在 GSM11.11 为 SIM 卡预留 5个引脚的基础上,MC37i 在 ZIF 连接器上为SIM 卡接口预留了6 个引脚,所添加的CCIN引脚用来检测SIM 卡支架中是否插有SIM 卡。当插入 SIM 卡,该引脚置为高电平,系统方可进入正常工作状态。但是目前移动运营商所提供的SIM 卡均无 CCIN 引脚,所以在设计电路时将引脚CCIN 与 CCVCC 相连。 SIM 接口电路如图6 所示。图 6 SIM卡接口电路(4)信号指示电路SYNC 引脚可以用来输出一个同步信号(synchroniza- tion signal) ,在应用中用来控制LED 灯的输出状态。MC37i 的 SYNC 端通过一个三极管来控制LED。如图 7 所示, SYNC端通过一电阻接到NPN 三极管的基极,射极直接接地,集电极通过一个限流电阻接到LED的负端, LED 的正端接 BAT。图 7 信号指示电路信号指示灯在系统上电后10 秒内若有一次闪烁,则表示 MC37i 已经成功入网, 其后当有收发短消息或来电时,指示灯会进行闪烁提示。同时在三极管集电极引出一个信号线作为网关 ZigBee 模块中断源,当MC37i 接收到用户的短信息指令时该中断信号使网关ZigBee模块进入中断处理状态。在上述电路基础上,设计的MC37i 外围应用电路原理图如图8 所示。第4页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计图 8 MC37i外围电路图2. 网关 ZigBee 无线通讯模块及其外围电路设计JN5139 模块的基本外围电路包括电源电路、复位电路和键盘显示电路。(1)JN5139 电源电路JN5139 模块电源电路如图9 所示。 JN5139 模块的工作电压为3.3V,选用 ASM1117 稳压芯片进行电压变换。输入 5V 电压,输出端产生3.3V 电压为 JN5139 模块提供稳定电压源。图 9 JN5139模块电源电路(2)复位电路复位电路如图10 所示,该电路上电自动复位,通常情况下复位口为高电平,按下复位按钮 K5 则拉低电平对JN5139 模块进行复位。图 10 JN5139模块复位电路(3)键盘显示电路键盘显示电路如图11 所示,其中第一个发光二极管为电源指示作用,按钮与发光二极管连接到相应的DIO 口上,通过程序实现相应绑定/解除绑定和绑定状态指示。第5页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计图 11 JN5139模块键盘显示电路(4)串口 0 驱动电路MC37i 模块与 JN5139 模块通过串口0 相连进行数据通信。 选用 74LS07 芯片进行驱动,74LS07 芯片为六组高压输出缓冲器/驱动器,通过驱动电路,MC37i 与 JN5139 模块能够顺畅地进行数据通信。74LS07 芯片引脚1、3、5、9、11、13 为输入口,引脚2、4、6、8、10、12 为对应的输出口,由于输出为开路,所以应用时接入上拉电阻。选用引脚2、3 分别接入 MC37i 的 TXDO 和 RXDO ,引脚 1、4 分别接入 JN5139 的 DIO6 和 DIO7。74LS07 的7 号引脚接地, 14 引脚接 5V 电源,串口驱动电路如图12 所示。图 12 串口 0 驱动电路另外, MC37i 与 JN5139 模块有一个中断信号线相连,即图7 信号指示电路中所示中断信号,连接到JN5139 模块的 DIO8 口上。当接收到短信息时,信息接收指示灯会进行闪烁提示,同时触发中断开,JN5139 模块读取 MC37i 接收的用户信息指令,从而进一步处理信息指令。3. GSM/ZigBee 网关开发板GSM/ZigBee 网关开发板如图13 所示。该开发板包含的部件如下:U1: JN5139 系列 Zigbee 模块;U2: GSM 模块 MC37i ;U3: NE555 ;U4: 74LS07 ;U5: AMS1117 ;U6: RS232;U7: LM2941 ;Power: 外供电( 5VDC )接口;Swith: 供电开关;第6页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计图 13 GSM/ZigBee网关开发板DB9: PC 机与 RS232 接口;REST: 复位按键;LED3,LED2,LED1,LED0:可编程 LED ,分别对应 DIO19 、DIO18 、DIO17 、DIO16 ;LED4: 电源指示灯;LED5: MC37i来电信息指示灯;SW3,SW2,SW1,SW0 :可编程按键,分别对应DIO20 、DIO11 、DIO10 、DIO9;JP6: 模块所有管脚的引出排线(引脚编号、功能参见基础通信实验讲义1);J11, J12, JP3, JP4: 编程与运行状态选择跳线;PGM: Flash 编程按钮。将J11 和 J12跳线帽取下, JP3 和 JP4 跳线至于下方,按下PGM,给开发板上电或按下RESET 按钮,然后按下PGM(弹出),可通过DB9进入编程状态。之后PC 机与 ZigBee 模块之间通过其串口0 通信;若将JP3和 JP4跳线至于上方, 然后将 J11 和 J12 跳线帽接上, 则 PC 机与 ZigBee 模块之间通过其串口 1 通信,而 MC37i 与 ZigBee 模块之间通过其串口0 通信。二、通信协议与软件设计1. 短消息常用AT 命令AT+CMGF=1回车(设置 SMS 编码方式,采用文本格式发送,如果用PDU 格式,则 AT+CMGF=0) AT+CMGD=1回车(删除第 1 条信息 ) AT+CMGR=1回车(读取第 1 条信息 ) AT+CMGS= 目标手机号码回车 (发送短信息 ) ABC 回车 (发送内容为ABC , 十六进制表示为0 x1A) 上述“回车”十六进制表示为0 x0D0A 。例 1:文本格式读取第1 条已读信息AT+CMGR=1回车返回信息为:AT+CMGR=1 第7页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计+CMGR: REC READ,+86138610XXXXX,09/05/02,20:16:55+32 102 OK 下面为返回信息十六进制表示(内容同上)41 54 2B 43 4D 47 52 3D 31 0D 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 52 45 41 44 22 2C 22 2B 38 36 31 33 38 36 31 30 3X 3X 3X 3X 3X 22 2C 2C 22 30 39 2F 30 35 2F 30 32 2C 32 30 3A 31 36 3A 35 35 2B 33 32 22 0D 0A 31 30 32 0D 0A 0D 0A 4F 4B 0D 0A 上述方格内为信息源手机号,阴影部分问短信息内容。例 2:文本格式读取第1 条未读信息AT+CMGR=1回车返回信息为:AT+CMGR=1 +CMGR: REC UNREAD,+86138610XXXXX,09/05/02,20:16:55+32 102 OK 下面为返回信息十六进制表示(内容同上)41 54 2B 43 4D 47 52 3D 31 0D 0D 0A 2B 43 4D 47 52 3A 20 22 52 45 43 20 55 4E 52 45 41 44 22 2C 22 2B 38 36 31 33 38 36 31 30 3X 3X 3X 3X 3X 22 2C 2C 22 30 39 2F 30 35 2F 30 32 2C 32 30 3A 31 36 3A 35 35 2B 33 32 22 0D 0A 31 30 32 0D 0A 0D 0A 4F 4B 0D 0A 从上面可以看出,未读短信息为从0 开始计数的第74 及其之后的若干字符。2. 通信协议通信协议是指通信系统进行信息交换时各通信节点遵守的一些事先约定好的通信规则,这些规则明确规定交换信息的格式和时序。本设计除严格按照ZigBee 规范进行设计外,还必须制定相应的通信协议,以便组网和通信及方便用户使用。例如绑定功能方便地实现ZigBee 设备与网关的绑定匹配及ZigBee 设备号的指定和绑定解除。3. 应用指令帧格式应用指令协议规范用户使用手机发送短信进行ZigBee 设备远程控制与查询的信息格式,本文档将该信息格式称为应用指令帧格式,如图14 所示。字段1字段2图 14 应用指令帧格式应用指令帧语义举例:字段1 为地址字段,用一位十进制数表示,表征ZigBee 设备逻辑地址,为0 时,表示对所有ZigBee 设备执行相同的操作;为1 至 9(本设计示例程序使用 4 个 ZigBee 设备,范围为1-4)表示 ZigBee 设备编号。字段2 为指令字段,用两位十进制数表示,表征指令信息,为00 时表示关 ZigBee 设备 LED0 ,为 10 时表示开ZigBee 设备LED0 ;为 01 时表示关ZigBee 设备 LED1 ,为 11 时表示开ZigBee 设备 LED1;为 02 时表示关 ZigBee 设备 LED2 , 为 12 时表示开 ZigBee 设备 LED2 ; 为 03 时表示关 ZigBee 设备 LED3 ,为 13 时表示开 ZigBee 设备 LED3 ;为 77 时表示开所有LED ;为 88 时表示关所有LED ;为99 时表示查询(温度和LED 状态)。4. 应用信息帧格式应用信息帧协议规范网络传送给用户使手机的反馈信息格式,本文将该信息格式称为应第8页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计用信息帧格式,如图15 所示。字段1字段2:, 字段3;图 15 应用信息帧格式字段 1 表示 ZigBee 设备编号; 字段 2 表示 ZigBee 设备室内温度, 以 C 为结束标志; 字段 3 为 ZigBee 设备各 LED 状态。若字段 2 为 NO,无字段 3 则表示相应编号ZigBee 设备不存在、未绑定或未接通电源。5. 绑定时序ZigBee 设备请求绑定: 未绑定前 ZigBee 设备绑定指示灯灭; 按 ZigBee 设备绑定按钮向网关发送绑定请求信息,绑定指示灯闪烁;ZigBee 设备接收绑定应答后绑定指示灯亮。网关绑定表中绑定信息为空时,网关相应的绑定指示灯灭,接收到绑定请求信息后,绑定请求指示灯闪烁,按绑定确认按钮,则将该按钮号(绑定为ZigBee 设备逻辑地址)与相应请求绑定的ZigBee 设备 IEEE 地址、短地址等相关信息记录在绑定表中,且与网络参数一同存入FLASH 存储器中,并向ZigBee 设备发送绑定应答信息,同时网关中相应绑定请求指示灯亮。 再次按绑定确认按钮可以取消相应绑定,相应的绑定指示灯灭,未绑定且无绑定请求时按绑定确认按钮无效。6. 网关 ZigBee 模块程序设计开始初始化子程序读取flash 中网络参数和绑定表信息是否正确?有MSG 数据信息?查询应答?闪烁相应指示灯获取短信息数据向MC37i 转发绑定子程序掉电保护子程序有DIO 中断?接收MC37i 短信息释放MC37i短信存储区信息处理子程序向ZigBee空调转发指令否是是否有MSG 数据信息?是是否否否是图 16 网关 ZigBee 模块程序总流程图第9页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计根据总体设计方案和网关硬件电路设计,网关ZigBee 模块程序的总流程如图16 所示,上电后首先进行程序的初始化,其后读取flash 中网络参数和绑定表信息是否正确,当初次运行时数据为空,自动建立ZigBee 网络,等待接收MSG 数据信息。然后可以并行处理绑定、掉电保护、中断、数据处理子程序。需要说明的是,有MSG 数据信息时,如果是查询信息,则获取短信息相关数据后,把相关数据向MC37i 转发;如果是控制指令应答信息,则对应不同命令,闪烁相应指示灯,闪烁1 次表示关 ZigBee 设备 LED 应答,闪烁2 次表示开 ZigBee 设备 LED 应答。当有 DIO 中断信号时, 则表示 MC37i 接收到短信息指令,ZigBee模块接收信息后紧接着删除这条短信,释放短信存储区, 调用信息处理子程序对信息内容进行相应处理,符合指令格式的命令将转发给ZigBee 设备进行处理。随后进入等待状态,等待下一次信息的处理。7. MC37i 工作流程MC37i 的工作流程如图17 所示, MC37i 上电成功入网后,开始工作,接收GSM 网络短信息或ZigBee 设备反馈信息,如果是短信息,则产生中断信号,在收到相应AT 指令后将短信数据通过串口传给网关ZigBee 模块并删除信息释放存储区等待下一次数据信息的接收,如果不是控制指令短信而是设备反馈的查询信息,则 MC37i 将反馈信息通过GSM 网络反馈给用户。开始MC37i 接入GSM 网络,开始工作是否释放短信息存储区有数据信息?短信息?是否向网关ZigBee模块转发向移动网络转发反馈信息图 17 MC37i工作流程图8. ZigBee 设备 ZigBee 模块程序设计ZigBee 设备 ZigBee 模块程序总流程图如图18 所示,先对模块进行初始化处理,判别是否成功入网,未入网则指示灯闪烁等待,入网后可进行绑定处理,当接收到MSG 指令信息,判断数据内容,若为查询指令则调用温度读取子程序,以及查询设备LED 开关状态,把温度与状态信息反馈给网关部分,若不是查询指令,则为相应的控制指令,对指令进行解释处理后,控制ZigBee 设备 LED 状态。第10页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计开始初始化子程序成功加入网络?绑定子程序有MSG 指令信息?查询指令?温度读取子程序获取LED 状态向网关反馈查询结果控制指令解释执行控制代码是否否是是否图 18 ZigBee设备 ZigBee 模块程序总流程图三、网关程序源代码/*/ /* Include files */ /*/ #include #include #include #include #include #include #include Printf.h /*/ /* Macro Definitions */ /*/ #define WSN_PROFILE_ID 0 x123 #define WSN_CID_SENSOR_READINGS 0 x12 #define WSN_PAN_ID 0 xAFED 第11页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计#define WSN_CHANNEL 0 x0 #define WSN_DATA_SINK_ENDPOINT 0 x40 #define WSN_DATA_SOURCE_ENDPOINT 0 x41 #define APP_TICK_PERIOD_ms 500 / BOS 定时器设置为500ms /*/ /* Local Function Prototypes */ /*/ PRIVATE void vInit(void);/初始化PRIVATE void vAppTick(void *pvMsg, uint8 u8Param);/嘀嗒时钟响应PRIVATE void vSendData(uint8 data,uint16 DstAddressx);/ 发送 MSG 信息PRIVATE void vAddDesc(void);/ 设备描述PRIVATE void Delay(uint16); /延时函数PRIVATE void cCommandProcessing(void); /远程应用指令处理函数PUBLIC void vAppSaveContexts(void);/保存网络参数PUBLIC void vAppGetContexts(bool_t (*pfbWrite) (uint16 u16Len, uint8* pu8Value);/恢复网络参数和应用数据PUBLIC bool_t bWrite(uint16 u16Len, uint8* pu8Value);/恢复应用数据/*/ /* Local Variables */ /*/ PRIVATE bool_t bNwkStarted = FALSE;/ 网络启动标志PRIVATE bool_t NextReadStart = TRUE ; / 按键防抖用PRIVATE uint16 DstAddress5;/ 短地址PRIVATE uint32 sExtAddrL5;/IEEE地址低 32 位PRIVATE uint32 sExtAddrH5;/IEEE地址高 32 位PRIVATE uint8 cCharIn=0;/ 串口接收字符PRIVATE uint8 cCommandBuffer128; /串口接收字符缓冲区PRIVATE uint8 u8CommandTail=0; PRIVATE bool_t Information_INT=FALSE;/初始化接收串口信息标志PRIVATE bool_t READ_INFORMATION=FALSE;/ 读信息标志, DIO8 中断后 10 秒使得 TickTime 中断后有效PRIVATE bool_t AT_CMGD_CNMI_CMGF_INT=TRUE;/10s后初始化 MC37i 标志,删除第一条信息, (信息提示 ),信息格式为文本格式PRIVATE uint8 u8Msg; PRIVATE uint8 u8TimerId; PRIVATE uint8 u8DeviceID;/ 手机短信息第一个字节,设备号PRIVATE uint8 u8CommandID;/ 手机短信息第二、三个字节,指令内容PRIVATE bool_t bToggle5; PRIVATE uint8 u8ReceiveID11; PRIVATE bool_t ChaXun=FALSE;/ 设置查询标志,供定时识别,定时到,给手机反馈查询信息PRIVATE uint8 u8Return_Information522; PRIVATE uint16 j,k; 第12页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计PRIVATE bool_t bReturn_Infoamation_Flag5;/查询反馈信息标志PRIVATE uint8 Au8AppData40; /*/ /* AppColdStart s */ /*/ PUBLIC void AppColdStart(void) HAL_GDB_INIT(); HAL_BREAKPOINT(); JZS_sConfig.u32Channel =WSN_CHANNEL; JZS_sConfig.u16PanId =WSN_PAN_ID; JZS_u32InitSystem(TRUE); vInit(); (void)bBosRun(TRUE); /*/ /* AppWarmStart */ /*/ PUBLIC void AppWarmStart(void) AppColdStart(); /*/ /* vInit */ /*/ PRIVATE void vInit(void) DstAddress0 = 0 ; sExtAddrL0 = 0 ; sExtAddrH0 = 0 ; vLedInitFfd(); vButtonInitFfd(); vLedControl(0,TRUE); vLedControl(1,TRUE); vLedControl(2,FALSE); vLedControl(3,FALSE); bToggle1=FALSE; bToggle2=FALSE; bToggle3=FALSE; 第13页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计 bToggle4=FALSE; vAHI_DioSetDirection(E_AHI_DIO8_INT, 0); vAHI_DioInterruptEdge(E_AHI_DIO8_INT, 0); vAHI_DioInterruptEnable(0,E_AHI_DIO8_INT); vUART_printInit(); vAHI_HighPowerModuleEnable (TRUE, TRUE ); /*/ /* vAppTick */ /*/ PRIVATE void vAppTick(void *pvMsg, uint8 u8Param) if(AT_CMGD_CNMI_CMGF_INT=TRUE) AT_CMGD_CNMI_CMGF_INT=FALSE; READ_INFORMATION=FALSE; vPrintf(%s,AT+CMGF=1); vPrintf(%c,0 x0D); vPrintf(%c,0 x0D); vPrintf(%c,0 x0A); vAHI_TimerEnable(E_AHI_TIMER_0,10,FALSE,TRUE,FALSE); vAHI_TimerClockSelect(E_AHI_TIMER_0, FALSE,TRUE); vAHI_TimerStartRepeat(E_AHI_TIMER_0,15620,31250); /时间 2000ms if(Information_INT) /DIO8中断 10 秒后,接收信息标志READ_INFORMATION有效 Information_INT=FALSE; READ_INFORMATION=TRUE; u8CommandTail=0; Delay(100); vPrintf(%s,AT+CMGR=1); vPrintf(%c,0 x0D); vPrintf(%c,0 x0D); vPrintf(%c,0 x0A); vAHI_TimerEnable(E_AHI_TIMER_1,10,FALSE,TRUE,FALSE); /启动定时器T1,规定接收数据时间 2000ms vAHI_TimerClockSelect(E_AHI_TIMER_1, FALSE,TRUE); vAHI_TimerStartRepeat(E_AHI_TIMER_1,15620,31250); 第14页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计 NextReadStart = TRUE; /*/ /* Delay */ /*/ PRIVATE void Delay(uint16 n) /延时 n*0.75 微秒 while(n-); /*/ /* vSendData */ /*/ PRIVATE void vSendData(uint8 data,uint16 DstAddressx) AF_Transaction_s asTransaction; uint8 i; for(i=1;i8; asTransaction.uFrame.sMsg.au8TransactionData3=sExtAddrLi16; asTransaction.uFrame.sMsg.au8TransactionData4=sExtAddrLi24; asTransaction.uFrame.sMsg.au8TransactionData5=sExtAddrHi; asTransaction.uFrame.sMsg.au8TransactionData6=sExtAddrHi8; asTransaction.uFrame.sMsg.au8TransactionData7=sExtAddrHi16; asTransaction.uFrame.sMsg.au8TransactionData8=sExtAddrHi24; asTransaction.u8SequenceNum = u8AfGetTransactionSequence(TRUE); asTransaction.uFrame.sMsg.u8TransactionDataLen = 9; asTransaction.uFrame.sMsg.au8TransactionData0 = data; (void)afdeDataRequest(APS_ADDRMODE_SHORT, /* Address type */ DstAddressx, /* Destination address */ WSN_DATA_SINK_ENDPOINT, /* destination endpoint */ WSN_DATA_SOURCE_ENDPOINT, /* Source endpoint */ WSN_PROFILE_ID, /* Profile ID */ WSN_CID_SENSOR_READINGS, /* Cluster ID */ AF_MSG, /* Frame type */ 1, /* Transactions */ 第15页,共37页名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 37 页 - - - - - - - - - 通信新技术综合训练文档GSM/ZigBee 融合的远程监控系统设计&asTransaction, /* Transaction