从零开始学习ZigBee之TI-Zstack初识及环境搭建(一)

       首先,需要获得Zstack的源码,这里我们从TI官网下载,需要注意的是,TI官网需要注册登陆后才能下载。下载地址:http://www.ti.com.cn/tool/cn/z-stack?jktype=recommendedresults。我们下载的版本为:Z-Stack 3.0.1,需要使用的EW8051 10.10.1 (10.10.1) for CC2530 and CC2531 Wireless MCU,可以从各自官网下载,博主下载最新的EW8051 10.20版本,破解文件自行从网上查找。下载完成后自行解压安装。

       安装完成后,首先打开Z-Stack 3.0.1安装目录下的Getting Started Guide - CC2530.pdf文件。读下来发现作为新用户的自己需要从安装目录下的Documents文件夹内获取API接口、应用笔记、用户向导文件等,同时也可以从TI的官网找到相应的用户向导文件、应用笔记、评估开发板、数据手册等。这里我们从Documents文件夹内开始。详细研读Z-Stack 3.0 Developer's Guide.pdf文件,这是我们能够快速应用开发CC2530的基础文件。

       一、什么是ZigBee

       ZigBee网络是一个使用电池供电设备的多跳网络。 这意味着两个需要通讯的设备,在ZigBee网络中交换数据可能不得不依赖于其他中间设备才能成功完成。因此由于网络的这种合作性质,需要对每个设备配置特定适当的网络功能和将某些参数配置为特定值。 这套网络设备执行的功能决定设备在网络中的角色,称为设备类型。 集合需要配置为特定值的参数以及这些值称为堆栈配置文件。

       二、ZigBee器件类型

      ZigBee网络中有三种逻辑设备类型:

     (i)协调器

     (ii)路由器

     (iii)终端设备 

      一个ZigBee网络由具有编队能力的设备(如协调器或路由器)、路由器和终端设备节点组成。 需要注意的是设备类型不以任何方式限制在特定设备上运行的应用程序类型


    如图:黑色的点代表协调器,红色的点代表路由器,白色的点代表终端设备。

    (1)协调器

       协调器是具有网络组织能力的设备,但没有加入网络功能。这意味着它只能创建自己的网络,而不能加入现有的网络。为了创建一个网络,协调器节点扫描现有网络的RF环境,选择一个信道和一个网络标识符(也称为PAN ID),然后启动网络。在Z3.0中,此设备创建了一个集中式安全网络,并且被授权充当此网络的信任中心,这意味着此设备负责管理网络的安全,并且它是唯一能够分发密钥并且允许设备加入它创建的网络的设备。

       协调器节点同时也可以选择性的用作应用程序级的网络辅助设置。

       协调器的作用主要与启动网络和管理密钥有关,除此之外,它的行为类似于路由器设备。需要注意的是由于设备加入或离开网络有关的网络程序必须由协调器参加,因此不能缺少自己的网络。

    (2)路由器

       路由器执行以下功能:

       (i)允许其他设备加入网络;

       (ii)多跳路由;

       (iii)协助其子设备的通信。 

        Z-Stack 3.0该设备已被授予形成能力,使其能够创建一个分布式安全网络。这种组建能力允许路由器设备创建没有安全管理器的网络。这意味着一旦创建了网络,创建它的路由器在该网络中就没有任何特殊的作用。一般来说,路由器预计始终处于活动状态,因此必须由主电源供电。

      (3)终端设备

       终端设备对维护网络基础设施没有特别的责任,因此它可以按照选择的方式进行休眠和唤醒,因此它可以是电池供电的节点。通常,终端设备的内存要求(特别是RAM要求)较低。
笔记:

       在Z-Stack中,设备类型通常是在编译时通过编译选项(ZDO_COORDINATOR和RTR_NWK)。 所有示例应用程序都提供了单独的项目文件以构建每种设备类型。

      三、协议栈配置文件

       需要配置为特定值的堆栈参数集以及上述设备类型值称为堆栈配置文件。构成堆栈配置文件的参数由ZigBee联盟定义。网络中的所有设备必须符合相同的堆栈配置文件(即所有设备都必须具有堆栈配置文件,且参数配置为相同的值)。
       如果应用程序开发人员选择更改这些参数中的任何一个的设置,他们依据ZigBee指定的堆栈配置文件修改后,那些设备将不再能够与来自其他供应商的设备进行互操作。因此,“封闭网络”的开发者可以选择改变堆栈的设置变量。这些堆栈配置文件称为“网络特定的”堆栈配置文件。

       设备符合的堆栈配置文件标识符存在于该设备发送的信标中。这个使设备能够在加入之前确定网络的堆栈配置文件。“网络特定”堆栈配置文件ID为0,而传统ZigBee堆栈配置文件的ID为1,以及ZigBee PRO堆栈配置文件(用于Z3.0)ID为2。堆栈配置由nwk_globals.h文件中的STACK_PROFILE_ID参数配置。Z-Stack3的堆栈配置文件保留给Green Power设备,并出现在相应的帧中。

      四、地址参数

       (一)地址类型

        ZigBee设备有两种类型的地址, 一个64位IEEE地址(也称为MAC地址或扩展地址)和一个16位网络地址(也称为逻辑地址或短地址)。

        64位地址是全球唯一的地址,并在设备的整个生命周期内分配给设备。 它通常由制造商或在安装过程中进行设置。 这些地址由IEEE维护和分配。 有关如何获取这些地址块的更多信息,请访问http://standards.ieee.org/regauth/oui/index.shtml。 16位地址在加入网络时被分配给设备,并在网络上使用。 它在该网络中唯一是唯一的。 它用于识别设备并在网络内发送数据。

        (二)网络地址分配

        ZigBee PRO使用随机(随机)寻址方案来分配网络地址。 此寻址方案随机将短地址分配给新设备,然后使用网络中的其余设备确保没有重复的地址。 当一个设备加入时,它从它的父节点接收其随机生成的地址。 新的网络节点然后向网络的其余部分生成“设备宣告”(包含其新的短地址及其扩展地址)。 如果有其他设备具有相同的短地址,则网络中的节点(路由器)将向整个网络发送广播“网络状态 - 地址冲突”,并且具有冲突短地址的所有设备将更改其短地址。 当冲突的设备改变他们的地址时,他们发出他们自己的“设备公告”来检查他们的新地址以查找网络中的冲突。

       终端设备不参与“地址冲突”。 他们的父节点为他们做这件事。 如果终端设备发生“地址冲突”,其父设备将向终端设备发送“重新加入响应”消息以更改终端设备的短地址,并且终端设备发出“设备宣告”以检查其新地址是否存在网络冲突。

       当收到“设备宣告”时,关联表和绑定表将被更新为新的短地址,路由表信息不会更新(必须建立新的路由)。 如果父节点确定“设备宣告”属于其终端设备的其中一个子节点,但不是直接来自终端设备,则父节点会认为该子节点已移至另一个父节点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值