ZigBee TI ZStack CC2530 4.5 设备地址01-Primary/Secondary IEEE Address

【配套源码文档软件硬件等资源,入口见文末

很多朋友可能至今也还不知道关于IEEE address,还有“Primary”、“Secondary”和“temporary”之分,本节就向大家介绍一下关于协议栈中的“IEEE address”是如何选择的。

每个ZigBee设备都需要有一个唯一的64位IEEE address。Z-Stack中用如下四个等级次序来决定当设备工作时使用的IEEE address:

步骤1、从NV存储区中读取;

步骤2、从Secondary IEEE address的位置寻找;

步骤3、从Primary IEEE address的位置寻找;

步骤4、使用随机数产生器创建temporary IEEE address

一般情况下,当运行协议栈的设备启动时,它会从非易失性存储区(NV)中去读取IEEE address(在上一次设备运行时被存储下来)。NV存储区保留了包括IEEE address在内的很多参数,为设备重启时使用,尤其是当设备断电时。在三种可能的情况下,NV存储区中的IEEE address会被保存下来——最初按上述步骤2和3的等级次序,或是后期由外部来源传递过来(比如通过串口,来自电脑端运行如Z-Tool这样的程序)。

在设备重启的过程中,如果“从NV存储区读取”的操作不成功,Z-Stack首先会尝试在Secondary IEEE address的位置去寻找一个IEEE address(步骤2)。如果不成功,协议栈会尝试在Primary IEEE address的位置去寻找一个IEEE address(步骤3)。最终,如果这也不成功,协议栈会使用随机数字创建一个temporary IEEE address(步骤4)。如果步骤2或步骤3成功了,IEEE address均会被写入NV存储区,下一次设备重启时就可以从NV存储区读出IEEE address(步骤1)。在开发环境下(NV_RESTORE没有被使用),temporary IEEE address不会被写入NV存储区,所以每次设备重启后,都会有一个和以前不同的IEEE address。

Secondary IEEE address的地址在CC2530 FLASH的最后一页,距离最后存储地址偏移地址为0x0018。对于256KB FLASH的设备来说,IEEE address可以在0x3FFE8~0x3FFEF部分被找到。这个地址是供用户用来覆盖TI在出厂时就已经预编程的Primary IEEE address。和Z-Stack配套的设备编程工具可以用来在这个位置保存IEEE address。

在设备重启的过程中,如果在NV存储区或是Secondary IEEE address的位置都找不到IEEE address,Z-Stack会尝试去读取TI预编程的Primary IEEE address(位于设备“信息存储区”0x00C~0x013的位置)。在极少数的情况下,CC2530设备中没有这样一个预编程的Primary IEEE address,那么协议栈会使用系统的随机数字发生器生成一个以0xF8开头的64位temporary IEEE address

Z-Stack允许通过标准的NV_Write应用接口函数来更新NV存储区中的IEEE address。这样也就允许开发者基于他们自己的考虑,使用Z-Tool或其他等效的机制来改变IEEE address。在生产环境下,还是建议不要使用这样的功能,因为一个已经部署了的ZigBee设备是不应该允许被修改它的IEEE address的。

参考文档:

1、Texas Instruments\ZStack-CC2530-2.5.1a\Documents 《Z-Stack User's Guide - CC2530DB.pdf》 7.2

【配套源码文档软件硬件等资源,入口见文末

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿破仑940911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值