当前位置:文档之家› Zigbee模块通信协议

Zigbee模块通信协议

ZigBee模块无线数据通信通用协议Version 1.2.7浙江瑞瀛网络科技有限公司版权声明本文档所包含的所有信息均为浙江瑞瀛网络科技有限公司(以下简称“瑞瀛”或“本公司”)版权所有。

未经本公司书面许可,不得向本公司雇员、代理商、合作方或授权许可方以外的任何第三方泄露本文档内容,不得以任何形式擅自复制或传播本文档。

若使用者违反本版权保护的约定,本公司有权追究使用者由此产生的法律责任。

版本更新V1.0.0 2011-01-01 初稿V1.0.1 2011-03-15 修改了一些笔误V1.1.0 2011-04-06 根据用户需求重新排列了对象字典V1.1.1 2011-04-20 对操作范例中的数据进行了解释V1.1.2 2011-04-22 增加用户自定义参数V1.1.3 2011-05-17 增加默认参数值和对应AT指令说明V1.2.0 2011-06-01 完善了数据通信方式的说明V1.2.6 2011-09-11 对细节进行了补充说明V1.2.7 2011-12-21 修改模块信息参数以及触发参数使用说明目录1. 概述 (4)1.1. 节点类型 (4)2. 帧格式 (6)2.1. 串口帧格式 (6)2.2. 通用帧格式 (6)2.3. 应用层数据帧(ADF)格式 (8)2.3.1. 读(Read)命令帧:ID = 0x20 (8)2.3.2. 写(Write)命令帧:ID = 0x25 (8)3. 对象字典(OD)定义 (10)3.1. 模块信息参数 (10)3.2. 网络参数 (10)3.3. 当前时间参数 (12)3.4. 执行控制参数 (13)3.5. 应用配置参数 (15)3.6. 用户自定义参数 (16)3.7. 虚拟参数 (16)3.7.1. UART端口映射参数 (16)3.7.2. 触发参数 (17)3.7.3. 节点信息参数 (18)4. 无线通信密码交换过程 (20)4.1. COO建立网络 (20)4.2. 节点加入网络 (20)5. 操作范例 (21)5.1. UART数据传递 (21)5.2. 访问本地节点参数 (23)6. 用户数据的传递方式 (27)6.1. 写UART端口映射参数 (27)6.2. 带目的地址的半透传 (29)6.3. 全透传方式 (31)7. 参数默认值以及对应AT指令 (33)7.1. 网络参数 (33)7.2. 当前时间参数 (33)7.3. 执行控制参数 (34)7.4. 应用配置参数 (34)1.概述本协议适用于本公司所生产的所有无线通信模块,实现数据在模块之间的传递。

本协议中包含对象字典以及串口控制协议。

对象字典将无线模块内的参数和硬件资源标准化,从而可以采用相同的方法来访问和控制模块内部的资源;串口控制协议为用户提供了对模块的控制访问通道,用户设备可以通过串口对无线通信进行控制,完成数据的传递,参数的访问等。

1.1.节点类型在无线模块组成的网络中,一个无线模块就被称为一个节点。

每个无线模块都有唯一的,不重复的8字节的MAC地址。

MAC地址的高4字节固定为0x0080E102。

因此在对模块进行寻址时,只使用低4字节的MAC地址即可。

根据各个节点功能不同,无线网络中的节点分为以下类型:●协调器(Coordinator,COO)COO节点是无线网络的逻辑中心点。

通常而言,COO在无线网络中充当网关的功能,实现外界与无线网络之间的信息交换。

COO节点能够建立并管理一个新的无线网络。

COO节点建立一个无线网络之后,就可以接收其他节点加入网络的请求,从而使无线网络扩展开。

COO节点一般使用有线电源供电,不需要休眠,并且能够管理休眠节点。

其串口参数配置为115200 8 N 1.●路由节点(ROUTER)ROUTER节点具备路由能力,具备为网络中其他节点中继、转发数据的能力。

ROUTER节点不能建立一个新的无线网络,但是能够加入到一个已经存在的无线网络中。

ROUTER节点加入到无线网络中之后,就可以接受其他节点加入网络,从而实现无线网络的扩展。

ROUTER节点一般使用有线电源供电,不需要休眠,并且能够管理休眠节点。

其串口参数配置为9600 8 N 1.●休眠节点(ZigBee End Device,ZED)ZED节点是无线网络中的末端节点,通常使用电池供电,是休眠节点。

ZED 不具备路由功能,也无法接受其他节点加入网络。

ZED需要通过其他具备休眠节点管理能力的节点(COO或ROUTER)才能加入到无线网络中,并且该节点被称为ZED的父节点(PARENT)。

由于ZED大部分时间是出于休眠状态,因此PARENT节点需要为ZED完成无线数据的缓冲和转发工作。

其串口参数配置为9600 8 N 1.手持节点(Hand-Hold-Unit,HHU)HHU节点是无线网络中的移动节点,能够搜索并任意加入/离开无线网络。

HHU节点一般用于移动的数据采集或网络诊断,不具备路由能力,也无法接受其他节点加入网络,不能管理休眠节点。

HHU节点一般使用电池供电,采用间歇工作模式。

其串口参数配置为115200 8 N 1.2.帧格式2.1.串口帧格式应用程序通过串口(UART)访问模块时,为了保证通信的正确率,采用以下的帧格式:1 Byte 1 Variable 1 1Header Length Payload Check FooterUART帧由帧头(Header),帧长(Length),有效数据(Payload),校验和(Check),以及帧尾(Footer)五个部分组成。

其中,Header取值为0x2A,Footer取值为0x23;Length取值为Payload的长度(不包括Header,Footer,Check和Length本身),Check取值为Payload 相加值的最低字节。

本协议以下描述的数据帧格式,就是指Payload的格式。

2.2.通用帧格式通用帧格式是指所有数据都遵守的帧格式,定义如下:Bytes 2 6 4 4 4 6 2 2 variableFrame Control Reserved SourceAddressReserved T argetAddressReserved ClusterIDReserved ADF其中:Frame Control:取值为0x8841Reserved:保留字段,可使用0x00填充Source Address:数据发起的源节点MAC地址低4字节,也可以使用0x00填充。

Target Address:数据发送的目的节点的MAC地址低4字节。

几个特殊的目的地址定义如下:0xFFFFFFFF:全网络广播地址0xFFFFFFFE:一跳半径内广播地址0xFFFFFFF0:COO节点的代替地址,只在节点还不知道COO节点地址的情况下使用。

0x00000000:本节点的代替地址,即串口数据是针对本地节点的Cluster ID:命令标识,用于区分不同的命令,基本的定义如下:Bits:14 13-11 10-8 7-015Resp. Err Sender Reserved IDResp.:应答标识=0:数据帧为命令帧,请求帧或消息帧=1:数据帧为上述帧的应答帧ERR:错误标识,仅用于应答帧(即Resp.=1的情况)=0:应答帧中包含正确的应答数据=1:应答帧中包含错误信息(例如由于接收到非法的命令)Sender:数据帧的发起节点类型Bit13:数据帧发起节点的特殊属性=0:发起节点为普通节点=1:发起节点为COO,或HHUBit12:数据帧发起节点是否具备路由能力=0:发起节点不具备路由能力=1:发起节点具备路由能力Bit11:数据帧发起节点是否需要休眠=0:发起节点需要休眠=1:发起节点不需要休眠Bit13 Bit12 Bit11:=111:数据帧的发起节点为COO=011:数据帧的发起节点为ROUTER=001:数据帧的发起节点为NRR=000:数据帧的发起节点为ZED=100:数据帧的发起节点为HHUID:数据帧类型码ADF:发送的应用层数据帧内容,其格式在本协议后续定义注意:需要特别指出的是,除非特别指明,本通信协议中,整型数据在数据帧中的排列顺序是低位在前,高位在后。

例如,整型数据1000(0x03E8)和长整型数据0x6789ABCD在数据帧中的排列方式分别为:E8 03CD AB 89 672.3.应用层数据帧(ADF)格式2.3.1.读(Read)命令帧:ID = 0x20通过读命令可以访问节点中的各种信息,命令格式如下:Bytes: 2 1 1Index Sub Opt.Index:被访问参数的OD索引,2字节Sub:被访问参数的子索引,1字节。

如果Sub为0,则说明读的是整个参数Opt.:读命令的选项,保留读命令的应答帧格式如下:Bytes: 2 1 1 1 VariableIndex Sub Opt. Length dataLength:Data域的长度,Length = n;如果命令执行错误,Length是错误码的长度1字节data:读取的数据结果,n字节;如果命令执行错误,则data域包含错误码1个字节2.3.2.写(Write)命令帧:ID = 0x25通过写命令可以配置节点中的参数值,从而改变节点的执行策略。

Bytes: 2 1 1 1 VariableIndex Sub Opt. Length dataIndex:被访问参数的OD索引,2字节Sub:被访问参数的子索引,1字节。

如果Sub为0,则说明写入的是整个参数Opt.:写命令的选项,保留Length:写入数据的长度,1字节,Length = ndata:需要写入的数据,n字节写命令的应答帧格式如下:Bytes: 2 1 1 1 VariableIndex Sub Opt. Length StatusLength:Status域的长度Status:写命令的执行状态一般而言,写命令返回的Status长度为1,即返回写命令操作的状态=0:写命令执行成功=其他值:写命令执行失败的错误码3.对象字典(OD)定义无线模块中的所有参数和硬件资源,都使用对象字典(Object Dictionary,OD)来进行描述,从而使这些参数和硬件资源都变成标准化的对象,只需使用统一的读和写操作就能对这些对象进行访问,从而简化对无线的操作。

每个参数或硬件资源都使用独立的OD索引(Index)来编排,因此访问索引就可以访问到具体的对象。

3.1.模块信息参数模块信息参数的OD索引是0,使用读(Read)命令访问此参数,可以获得模块的详细信息。

需要注意的是,本参数的所有参数都是只读的,写(Write)操作将被拒绝访问。

相关主题