微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > Zigbee ZSTACK IEEE 地址的始末 老达原创

Zigbee ZSTACK IEEE 地址的始末 老达原创

时间:10-02 整理:3721RD 点击:
在Zigbee网络中,每一个节点模块都有一个2个字节的网络短地址还有一个8个字节的IEEE物理地址,下面针对TI的结合ZSTACK和CC2530F256芯片来详细解读一下这个8个字节的地址,有称IEEE地址,又称MAC地址都是一回事指的就是这个东东。 IEEE地址:
TI在CC2530出厂的时候,在XDATA可以寻址的0x7800-0x8000存在2K信息页,这个是固化在芯片里的,是只读取,其中在0x780C开始的连续8个字节就是TI出厂为这颗芯片唯一指定的IEEE地址,注意这块信息页是只能读不能写的。
问题:CC2530芯片下载了ZSTACK协议栈程序后在通信的时候有时候空气中会携带IEEE地址,是这个地址吗?答案是,不一定。
首先,芯片的flash在被擦掉后默认全部是0xFF,ZSTACK有些参数,比如PANID、网络钥匙等一些参数,这些参数需要保存,每一个参数如果要保存,都是以Item(条目)的形式保存在CC2530F256芯片一般121页-126页,每一个条目都有一个条目号类似ID,ZSTACK的一些参数信息会保存在这里,第一次下完程序的时候这6个页全部是0xFF,其中这个8字节的IEEE地址就是ZSTACK必须要存的一个条目参数,条目号是固定的为0x0001,下载了协议栈的代码在运行的时候,首先去121页到126页去查有没有0x0001这个条目,如果发现没有(因为都是0xFF),那么会拷贝上面提到的2K信息页的那个8字节IEEE,并以此来创建条目;如果拷贝成功,那么当然这个条目的IEEE和出厂的IEEE是同一个地址;还有一种情况就是拷贝失败,如果失败了,它会去127页的倒数24个字节开始的8个字节,如果这8个字节不全是0xFF,那么会以这8个字节来创建IEEE条目。
也许有人会问,如果拷贝的127页的这8个字节失败或者全为0xFF会怎么(完全有可能的,全为0xFF就有可能)?如果出现这种情况,那么程序中会按照一定的规则生成一个随机的(还是有点规律)的8字节,并以此来作为IEEE条目且条目号为0x0001创建起来。
Zigbee节点在组网的时候8字节的IEEE地址只认这个0x0001条目里的8字节,所以说节点的IEEE不一定是芯片的IEEE.
还有一个问题,有人会说,如果下一次在对这颗芯片下程序这块信息页会怎么样,IAR下载的时候默认不擦掉这6页的信息页(当然也可以选择擦除),如果擦掉了就和出厂一样,如果没有擦除那么程序在执行的时候又会去搜索0x0001这个条目,发现存在,那么他就不会去动它了,就是一直存在里面了。

这里实际上有4个IEEE地址:
主IEEE地址或称基本IEEE地址:就是2K信息页中,芯片出厂的那个8字节MAC;
节点在网络里的IEEE地址:就是在121页-126页中以条目号为0x0001创建的、网络中需要用的MAC;
第二IEEE地址:就是在第127页倒数第24个字节开始的连续8个字节,这个称第二MAC;
最后一中IEEE:就是随机生成的MAC;

谢谢分享

原创超高清Zigbee视频,《Zigbee深入浅出实战篇》原创超高清视频教程部分

第一讲上 http://www.tudou.com/programs/view/qVqSP3iUxmE/
第一讲下 http://www.tudou.com/programs/view/QVjzwpQlvMQ/
第二讲 http://www.tudou.com/programs/view/bExhg3rh_c8/
第三讲 [url]http://www.tudou.com/programs/view/5bzuZuyL-1w/[/url]
第四讲 http://www.tudou.com/programs/view/iX7R1xtbCl0/
第五讲 http://www.tudou.com/programs/view/HzNN9RUgW_Q/
第六讲上 http://www.tudou.com/programs/view/eWiung2MJ9U/
第六讲下 [url]http://www.tudou.com/programs/view/QZksRbS54FQ/[/url]
...

谢谢分享

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top