电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

ZigBee网络地址的分配

来源:电子发烧友 作者:华仔 浏览:459

标签:

摘要: ZigBee 有两种类型的地址:一种是 64 位 IEEE 地址,即 MAC 地址, 另一种是 16 位的网络地址。16 位网络地址是当设备加入网络后分配的, 它在网络中是唯一的,用来在网络中鉴别设备和发送数据...

  一、ZigBee 有两种类型的地址:一种是 64 位 IEEE 地址,即 MAC 地址, 另一种是 16 位的网络地址。

  (1) 64 位的IEEE地址是一个全球唯一的地址,一经分配就将跟随设备一生。它通常由制造商或者被安装时设置。这些地址由 IEEE 组织来维护和分配。

  问题:用Z-stack 协议栈编程,64位IEEE地址是否是芯片自带的,还是需要在编程时给予赋值?这点需要继续深入研究后找出答案

  (2) 16 位网络地址是当设备加入网络后分配的, 它在网络中是唯一的,用来在网络中鉴别设备和发送数据。

  ZigBee网络地址的分配

  二、网络地址的分配

  (1) ZigBee使用分布式寻址方案来分配网络地址。 这个方案保证整个网络中所有分配出去的地址都是唯一的,同时,这个寻址算法本身的分布特性保证设备只能与它的父辈设备通讯来接收一个唯一的网络地址。

  (2) 在每个路由加入之前,寻址方案需要知道和配置一些参数,这些参数是: MAX_DEPTH, MAX_ROUTERS, MAX_CHILDREN。 这些参数是协议栈的一部分,在ZigBee2006中MAX_DEPTH = 5,MAX_ROUTERS = 6, MAX_CHILDREN = 20。

  (a) MAX_DEPTH 决定了网络的最大深度, 协调器位于深度0 , 其子设备位于深度1, 其子子设备位于深度2 ……

  (b) MAX_CHILDREN 决定了一个路由或者一个协调器节点可以处理的子节点的最大个数

  (c) MAX_ROUTERS 决定了一个路由或者协调器节点可以处理的具有路由功能的子节点的最大个数,这个参数是 MAX_CHILDREN 的一个子集。

  (3) 如果开发时想改变这些值, 需完成以下几个步骤:

  (a) 首先要保证这些参数的新植要合法,整个地址空间不能超过 2^16, 这就限制的参数能设置的最大值。可以使用 project\ZStack\tools文件夹下的CSkip.xls文件来确认这些值是否合法。当表格中设置的数据不合法时,就会出现错误提示。

  (b) 其次,还要保证不再使用标准的栈配置, 取而代之的是使用网络自定义的栈配置(例如:在 nwk_globals.h中将STACK_PROFILE_ID改为 NETWORK_SPECIFIC),然后设置nwk_globals.h文件中的MAX_DEPTH参数为一个适当的值。

  (c) 最后,还要设置 nwk_golbals。c文件中的Cskipchldrn数组和CskipRtrs数组,这些数组的值由MAX_ROUTERS, MAX_CHILDREN构成。

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67