山 东 省 应 用 物 联 网 设 计 大 赛
Byte[15-16] 默认填充为[8,0] Byte[17-24] 传感器返回 的信息 Byte[25] Byte[26] 校验和 0xFF Byte[0] 0xFF Byte[1-6] Byte[7-12] Byte[13] Byte[14] 1或3 默认填识别号 2 充 为 0
5.3.2 协调器节点设计
(1)协调器的工作流程
协调器是全功能设备,是网络的核心,它不仅建立了网络,而且还给其它传感器节点分配网络地址。如果没有协调器整个网络就无法运行,协调器的硬件结构比较的简单,其软件设计相对比较复杂。协调器初始化后就开始组建网络,组建网络成功后就处于等待数据查询状态,若触发数据查询事件,查找与该事件对应的传感器节点,查询到网络节点后发送查询命令,然后接收传感器节点的信息,主控制器若想获得某传感节点的信息,就通过此协调器获得对应节点的信息并在显示屏上显示该信息。协调器的软件流程如图 5-3 所示。
17
山 东 省 应 用 物 联 网 设 计 大 赛
图5-3 协调器节点的流程图
(2)串口接收/发送数据帧
串口通信的目的就是收集到的节点数据传输到上位机(智能家居系统),系统将这些数据通过手机短信或者 Internet 的方式反馈给用户,用户根据这些数据做出决策,然后再发送指令给智能家居系统,系统再根据串口的数据通信协议规范用户发送的指令并将这些指令发送给 ZigBee 网络协调器,协调器根据 ZigBee数据通信协议规范接收到的指令并再次将这些指令发送给控制节点。
①发送一帧数据的过程
发送数据帧主要在节点反馈数据和上位机发送查询/控制命令,此过程比较简单,没有校验过程,具体步骤如下:
1) 设定起始字节和结束字节为 0xFF,在中间插入数据和数据的校验码。
2) 除了起始字节和结束字节外,将一帧数据中的 0xFF 和 0xFE(包括校验码)字节进行编码:0xFF 0xFE 0x01、0xFE 0xFE 0x00。
3) 将编码后的数据通过串口发送。
18
山 东 省 应 用 物 联 网 设 计 大 赛
②接收一帧数据的过程
接收数据帧主要在 ZigBee 协调器节点接收上位机的查询/控制命令以及上位机接收 ZigBee 网络的反馈数据。此过程存在恢复被编码的数据(即 0xFE 0x010xFF、0xFE 0x00 0xFE)和校验过程,因此比发送数据帧要复杂。具体步骤如下:
1) 首先接收一帧起始字节为 0xFF,结束字节为 0xFF 的数据。由于在一帧数据中除了起始字节和接受字节为 0xFF,其余的数据均不会出现0xFF,若起始字节有两个 0xFF,则抛弃第一个 0xFF,从第二个 0xFF开始。
2) 恢复被编码的数据(译码),即对起始和结束字节之间为 0xFE 0x00 和0xFE 0x01 的数据译码为 0xFE 和 0xFF,即 0xFE 0x01 0xFF、0xFE0x00 0xFE。
3) 判断译码后的帧长度,如果符合既定长度,则进行校验验证,校验码验证也通过,则说明该帧数据正确,进行处理。
4) 如果在第三步中判断数据有错,则抛弃该数据,继续处理后面接收到的数据。通常在抛弃错误数据的时候,为保证没有抛弃下一帧数据的起始字节,在收到两个连续的 0xFF 时,只抛弃一个 0xFF,另一个作为下一帧的起始字节继续使用。
5) 提取数据帧中有效载荷,并对这些载荷进行处理。
5.3.3 终端节点设计
ZigBee 终端节点程序按照各个节点实现的功能进行设计,分为两类:一类是环境信息采集节点,一类是受控节点。
环境信息采集比如温度传感器终端节点,当收到家居网关的命令后,接下来就要对接收到的信息进行分析与判断,若为温度采集信息则调用相应的温度采集程序进行温度采集,然后将温度传感器采集来的信息进行数据打包后发送给协调器,然后由协调器发送给家居网关,程序流程图见图5-4。受控节点比如灯光,当收到家居网关的命令后,控制设备开关,并将状态反馈到家庭网关,程序流程图如图5-5所示。
19
山 东 省 应 用 物 联 网 设 计 大 赛
图5-4 采集终端节点流程图 图5-5 受控终端节点流程图
第6章 嵌入式网关设计
6.1 智能家居网关分析
6.1.1 工作原理
智能家居网关作为一种传输网关,它的作用在于在智能家居内部网络与外部Internet网络之间建立通信桥梁,完成不同网络的数据跨异构网络的传输。
其基本工作原理可以描述如下:网关通过无线路由器连接到手机或外部 Internet 网络,接收控制端发送来的控制和查询命令,解析命令并将命令按照指定的格式发送给与网关可以直接通信的智能家居内部网络中的各前端设备节点,实现对各设备的控制;同时作为智能家居内部网络的信息汇聚节点,它接收来自各前端设备节点的数据信息,并对数据进行处理后发送到可以通信的外部网络,从而完成智能家居系统网络数据的异构网传输。 6.1.2 功能要求
智能家居系统中,智能家居网关一方面是家庭内部网络中信息数据的汇聚点,另一方面它联系着远程控制端,因此其性能直接影响着整个智能家居系统的最终性能。构建智能家居网关时应当在充分考虑实用性、易操作性、高兼容性和可扩展性等基本要求的基础上,满足网
20
山 东 省 应 用 物 联 网 设 计 大 赛
关还需具备较强的处理能力、通信能力和存储能力的性能要求。
通过分析目前市场上主流的智能家居网关基本功能,并结合未来发展趋势和论文的实际应用需求,确定了本论文的智能家居网关的功能需求如下:
(1)家庭内部网络建立功能:网关负责智能家居内部网络的建立、管理和维护。 (2)家庭内部网络数据发送及汇聚功能:向家庭内部网络设备节点转发控制命令,并接收来自内部网络中各设备节点的数据信息。
(3)设备信息存储功能:存储智能家居内部网络中各设备节点的编号、名称、类型、状态、位置等信息。
(4)Internet 数据传输功能:完成与 Internet 网络中的客户端和服务器的数据通信,包括经 Internet 接收控制命令、返回查询和控制结果等。
(5)内外网访问功能:既可以通过家庭无线局域网(WLAN)Wi-Fi 访问网关,又可以通过公共 Wi-Fi、3G 或 GPRS 等经 Internet 公网服务器访问网关,实现对家庭内部网络中各种设备的控制。
(6)状态显示功能:网关实时显示当前的工作状态,包括内部网络数据发送和汇聚状态、Internet 网络数据发送和接收状态、与服务器连接状态等。 6.1.3 智能家居网关总体设计
智能家居网关既要连接智能家居内部网络,又要连接外部网络,同时需要提供足够的信息存储空间,基本的人工输入功能,状态输出功能。网关的总体框架如图 6-1 所示。
图 6-1 智能家居网关总体框架图
智能家居网关作为一种典型的嵌入式系统,应该具备较强的实时任务处理能力、一定的信息存储功能、较强的可扩展性、低功耗等特点。
智能家居内部网络的数据汇聚功能是智能家居网关的核心功能之一,作为智能家居内部网络的汇聚节点,网关需要完成内部网络的构建、维护、数据收发的任务。智能家居网关选择 ZigBee 技术构建家庭内部网络,需要为网关配置符合 ZigBee 技术标准的网络协调器,并与
21