ZigBee协议详解

ZigBee协议详解,第1张

 ZigBee 逻辑设备类型

      aCoordiantor 应该充当Trust Center 的角色,负载建立一个centralized

security network (集中式安全网络),不得加入其它网络。

      bRouter 应该可以加入一个已建立的集中式/分布式安全的网络,不能建立centralized security

network (集中式安全网络)。但是当无法加入已建立的集中式/分布式安全网络的情况下,可以自行建立distributed  security network (分布式安全网络)。

      cEndDevice 应该可以加入一个已建立的集中式/分布式安全的网络

       一个ZigBee可能支持充当Coordiantor和Router的两种角色的能力,可通过应用程序来切换,但是同一个时间只能充当一种角色,如:一个Router设备尝试加网但失败了,它可以切换至Coordiantor角色去建立一个集中式安全网络,一旦此设备建网/入网完成,不得再改变自己的设备类型,除非离网或者遭到其他破坏。

 Network 安全模型

      一个ZigBee网络可以支持集中式安全模型或者分布式的安全模型,所有非Coordiantor类型的ZigBee设备应该能通过合适的安全条件,加入到集中式安全模型或者分布式的安全模型的网络中,对于用户而言是无缝的。

 Link key 连接秘钥(16位)

所有ZigBee节点必须包含以下Link

key:

a 默认的(集中式安全网络)全局密钥:

Default global Trust Center link

key (0:15) = 0x5a 0x69 0x67

0x42 0x65 0x65 0x41 0x6c 0x6c 0x69 0x61 0x6e 0x63 0x65 0x30 0x39

b 分布式安全网络的全局秘钥

Distributed security global link

key (0:15) =0xd0 0xd1 0xd2 0xd3 0xd4 0xd5 0xd6

0xd7 0xd8 0xd9 0xda 0xdb 0xdc 0xdd 0xde 0xdf

c 由安装码得到的预配置秘钥

Install code derived preconfigured

link key(6/8/12/16字节任意值)= 安装码+CRC(2字节)->Hash散列函数->128位的Link Key

此外,如果设备支持touchlink 的入网方式,还需要包含以下秘钥:

d touchlink 预配置秘钥

Touchlink preconfigured link key

(0:15) = 0xc0 0xc1 0xc2 0xc3 0xc4 0xc5 0xc6

0xc7 0xc8 0xc9 0xca 0xcb 0xcc 0xcd 0xce 0xcf

安装码的使用

所有ZigBee 30的设备都需要支持安装码,Trust Center 可能要求所有设备以安装码的方式入网

        a非零售需要专业人员安装的ZigBee设备,可能配置为使用安装码的方式加网

        b零售的需要用户去配置的ZigBee设备,用户可以通过物理按键切换以下两种模式:只让使用安装码入网的节点入网的模式和使用其他所有方式入网的模式

        c零售的不需要用户配置的ZigBee设备应该能够自动加网

Commissioning

所有设备需要支持network steering(网络控制) 机制,以及finding & binding 机制

      aNetwork steering:所有ZigBee设备都需要支持network steering 机制

      bNetwork formation:设备建立网络的能力,其安全模型取决于ZigBee的设备类型:Coordiantor(集中式安全模型网络),Router(分布式安全模型)

      cFinding & binding :定位和绑定其他节点上的应用Cluster的能力

      dTouchlink commissioning :支持基于靠近的commissioning 方式,若支持touchlink commissioning方式,必须支持touchlink 为a initiator or a target or both 。

  对所有 ZigBee30 设备的必须满足的要求

aZDO discovery service commands :

Active_EP_req,Node_Desc_req,Simple_Desc_req,IEEE_addr_req, NWK_addr_req,Match_Desc_req,

Active_EP_rsp ,Node_Desc_rsp,Simple_Desc_rsp,IEEE_addr_rsp,NWK_addr_rspandMatch_Desc_rspcommands

bZDO node manager service commands :

Mgmt_Bind_req, Mgmt_Lqi_req

Mgmt_Bind_rspand,Mgmt_Lqi_rspcommands

cZDO binding table service commands :

Unbind_req ,Bind_req

Bind_rsp,Unbind_rsp

dZDO network manager service command :

Mgmt_Leave_req

Mgmt_Leave_rsp

    e一个ZigBee节点在finding & binding 的时候去广播Identify Query ,至少能够处理一个Identifycluster的Identify Query Response 命令,如果能处理多个Identify Query Response 命令,需要进行特殊处理

    d一个节点如果是finding

& binding的发起者,其绑定表大小必须大于等于Cluster的实体数量,在finding

& binding, touchlink 或者centralized

commissioning 的时候完成绑定表配置的,不管是哪种生成的绑定表,都必须保持一致,才能够通过Mgmt_Bind_req  命令获取其内容

    f对于一个节点的每个强制的可报告的属性实体都必须要有默认的report配置

  默认的 reporting 配置

   一个可报告的属性实体都有默认的report配置(最大报告间隔为0x0000或者0x003d~0xfffe),一个已绑定的cluster之间需要发送report,需要支持随时更新配置report。当两次报告的间隔等于最大报告间隔时需要产生report,如果最大报告周期设置为0,那个不会产生周期性的report,但是任然可以在属性值改变后产生report

 MAC data polling

   BDB文档对Mac层的Poll频率不做限制

   poll的频率应该是可以根据节点的状态进行动态调节的,推荐使用短poll和长poll,ZigBee父节点为自己子节点缓存的数据生命期只有75s,因此睡眠终端设备的poll频率应该比75s/次快才能确保拿到自己的数据。

    如果EndDevice节点在等待reponse消息的时候,它必须使用短poll间隔,至少3s/次。

    如果没有等待的消息可能需要使用长poll间隔,如一小时一次,来确保与父节点的连接可用

    在ZigBee加网和finding &

binding 的阶段,睡眠终端设备必须使用短poll间隔

ZigBee 永久数据

     设备重启依然需要保存之前的bdbNodeIsOnANetwork属性

GreenPower

    ZigBee 30的Router和Coordiantor必须支持Green Power(endpoint 242),EndDevice类型的设备需要根据硬件设计来选择是否支持Green

Power。

Network Steering

ZigBee 30的设备加网时,会依次用Install code

derived preconfigured link key、Default global

Trust Center link key 、Distributed

security global link key和Touchlink

preconfigured link key(如果支持Touchlink的加网方式)扫网加网,每次先扫描主信道(非wifi重合信道)再扫描次信道(余下的),而且起始的通道号是随机产生的;这个过程叫Network Steering。

JAVA无法 *** 作到底层,你可以用C来编写代码,JAVA通过JNI来调用C写的函数实现对zigbee硬件的控制。

如果你要使用普通的android手机来控制硬件,得做一个中间件,能够和android通信,同时又能和硬件通信的设备。

zigbee协议最终是在具体的芯片上实现一个的软件,就像你所写的任何一个单片机程序一样,而ZigBee协议通常只会是整个应用程序的一部分,用户还要在协议之外写代码来控制运行ZigBee协议的单片机与其他设备进行串口通信,SPI和USB也行。

ZigBee通信就像是另一个“串口一样”。

以上就是关于ZigBee协议详解全部的内容,包括:ZigBee协议详解、android程序如何实现和zigbee无线模块连接、怎样实现zigbee和51单片机的通信你做过么,求指教等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10135682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存