#author("2019-10-25T14:27:19+08:00","default:Admin","Admin") ZigBee

※This article is based on ZigBee Stack 2.51.a

设备类型

Cooordinator 协调器 Router 路由器 End-Device 终端设备

ZigBee网络由一个Coordinator以及多个Router和多个End-Device组成

&ref(): File not found: "ZigBee_设备类型.png" at page "+ZigBee+组网绑定";

绑定机制

绑定机制允许一个应用服务在不知道目标地址的情况下向对方(应用服务)发送数据包,绑定是控制信息从一个应用层到另一个应用层流动的一种机制。

发送时使用的目标地址将由应用支持子层从绑定表中自动获得,从而能是消息顺利被目标节点的一个或多个应用服务乃至分组接收。

APS层确定目的地址从他的绑定表格中,然后在信息前端加上这个目的地址或组。

注意:由于所有绑定信息都子啊在Zigbee协调器中,所有只有协调器才能接收绑定请求。

入网规则

zigbee入网规则中,子节点加入网络会得到父节点分配的16位短地址,以此区分不同节点。

协调器知道网络中设备的16地址,你有几种方法可以获得

  1. 每个节点入网的时候都会发出来Device Announce,这个消息是广播消息,那么协调器也可以收到的消息,你把对应的设备的地址保存下来就可以了。
  2. 通过ZDP_IEEEAddrReq来获得,具体做法在文档 C:\Texas Instruments\Z-Stack Home 1.2.0\Documents Method for Discovering Network Topology.pdf
  3. 通过ZDP_MgmtLqiReq,做法跟2)类似。

在知道节点的短地址以后,按照下面顺序

  1. 发送Node Descriptor Request, 在Node Descriptor Response里面,会获取关于zigbee设备层面的基本信息,包括节点类型,供电方式,哪个厂家的,工作在哪个信道,等等,具体可以看ZigBee Specification 和ZigBee Cluster Library
  2. 然后再发送Active Endpoints Request,在Active Endpoints Response里面,会获取关于节点支持哪些endpoint
  3. 然后针对每个Endpoint发送 Simple Descriptor Request,在Simple Descriptor Response里面,会获取这个endpoint下面支持的profile、 out cluster、in cluster等等,到此关于这个节点的基本的设备信息,应用信息,功能信息都获取到了!

一个环境里,如果有多个ZigBee协调器,终端节点会选择那个连接?

看哪个网络的信任中心允许组网的功能打开了,就会选择哪一个入网,如果都入网了就会选择信号强度更强的那个组网。 顺便说一下Ti的这部分代码是可以修改的。你也可以改成你想要的方式组网。

协议栈介绍

重要设备地址(Important Device Addresses)

应用程序可能需要知道他的设备地址和父亲地址,使用下面的函数获取设备地址(在 Zstack API中定义)

地址相关函数名称功能
NLME_GetExtAddr返回设备IEEE 64位地址的指针
NLME_GetShortAddr返回设备16位网络地址
NLME_GetCoordShortAddr返回设备的父节点的16位网络地址(PAN协调器的网络地址总是为0x0000)
NLME_GetCoordExtAddr返回设备父节点的IEEE 64位地址


超多機能のアクセス解析が永久無料!

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:45:09 (1627d)

G|Cg|C@Amazon Yahoo yV

z[y[W yVoC[UNLIMITȂ1~] COiq COsیI