查看: 2387|回复: 1

转帖:zigbee 入门总结

[复制链接]
  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-8-21 11:22:31 | 显示全部楼层 |阅读模式
    分享到:
    转载的,觉得作者学习的很有套路,也很细致。不论是言语还是学习方法都值得我学习。下面大家一起来看看吧:

    要事先申明一下最好有单片机和C语言的基础,因为往下做就是编程序。


    是一直菜鸟(PS:本人觉得作者很谦虚),但是就这一段时间的入门学习做一个总结吧,以方便后面zigbee入门的人看看。

    1,  了解一下什么是zigbee无线网,了解一下基本的信息比如信道(要是有人带着学习,就可以上手更快了)

    2,  开发环境搭建,也就是IAR和协议栈安装。

    1)这里用win7的同学要注意,必须下载IAR8.0以上的版本才可以;XP的就无所谓了。

    2)其次就是协议栈了:

    协议栈可以有两种来源1,自己安装;2,直接从别人那里复制(个人觉得是比较好的方法)。因为这样的话基本不用配置就可以使用了。

    3)协议栈配置

                project—options打开配置文件,或者用下图打开

    [img]file:///C:/Users/huang/Desktop/OA%7BWZ1M%7B6EE%259HS]3~[6N]3.jpg[/img]

    左边Link选项:

    右边output选项卡

    1勾选override default,下边该位.hex,

    2otheroutputfileintel-extended

            Format variantnone

            Module-local  -include all

    Config选项卡

    勾选override default,并将下边的路径该为本协议栈的文件f8w2530.xcl

    路径(我用的是2530所以才这么选的,这里的配置文件按需要选)。

    左边debugger

    勾选最下方的override default,并将下边的路径该为IARcc2530.ddf的路径.

    3,  下一步就是编程了,推荐看一下这本书《zigbee无线传感器网络设计与实现》,其实这本书讲的很范,但是总的来说作为入门使用还是可以的,可以帮助我们了解基本的程序修改。

    看完数据传输实验,就具体的动手用板子做一下。不要直接全部将程序全部敲进去,只需要在APP下应用.c文件修改就好。之后就是针对修改的部分去查资料。弄明白的话基本就算是入门了。如果只做浅显的,这些显然就够用了。

    4,  如果要进一步深入学习,就去了解一下一些基本概念,这样对学习很有帮助。在优酷上去搜索一套视频《zigbee学习版视频》,这个第一讲哪些基本概念将的比较清楚,后边也讲述的比较好。

    在学习中遇到的问题:

    (1)信道的设置:

    f8wConfig.cfg ,通过如下编译器命令行选项来实现:

    -DDEFAULT_CHANLIST=0x00000800

    该命令行选项在协议栈中定义了一个符号常量DEFAULT_CHANLIST该常量是一个32位二进制数,它的每一位对应一个物理信道(channel),bit 0对应868 MHz频段上的1个信道,bit 1-10对应915 MHz频段上的10个信道,bit 11-26对应2.4 GHz频段上的16个信道。编译程序时需将所要使用的信道对应的bit置为1,其它bit置为0,本例中表示使用2.4GHz频段上channel 11。如果存在多个信道对应的bit为1的情况,协议栈会按照信道从低到高对各个信道进行扫描,寻找空闲信道(网络协调器建立网络时)或寻找指定网络(路由器或终端设备加入网络时)。

    (2) PAN ID的选择。在f8wConfig.cfg文件中,通过如下编译器命令行选项-DZDAPP_CONFIG_PAN_ID=0x1234

    该命令行选项在协议栈中定义了一个符号常量ZDAPP_CONFIG_PAN_ID,该值由用户指定,可以设为0-0x3FFF之间的任何值,代表着网络标识号(PAN ID),通过给不同的网络设置不同的PAN ID值,就可以使它们工作在同一物理信道上。如果该值设为0xFFFF,则PAN ID由协议栈动态设置。对于网络协调器来说选择一个尚未被占用的值作为PAN ID来建立网络,而对于路由器或终端设备来说,则寻找指定物理信道内允许节点加入的网络,然后将其设置为该网络的PAN ID值。注意:同一个PAN ID只允许一个协调器存在,在做实验的时候,每组需要手动设置不同的值,否则网络无法正常工作。(通常默认我ffff,一般在附近有多个zigbee网络的时候修改)

    (3)固定网络中各个节点网络地址(记住网络的信息)

    这个我觉得挺好用的,方法:在definded sumbols中增加一项NV_RESTORE=1,这样就可以了,这样不管是掉电还是网络重启,只要设备没有变化,它的网络地址就不会改变(可以用液晶或串口观察),


    [img]file:///C:/Users/huang/Desktop/L8F3%25A[YXSVD@D9[]V)@B33.jpg[/img]

    当然如果想要去掉记住网络状态,就选择Erase,擦掉记住的信息就好了,之后重新编译下载就好了。方法如下:

    file:///C:/Users/huang/Desktop/$FG_@2EIWK26L~2A4ZN]1NT.jpg

    其中在zigbee学习中组播和绑定也比较好用,组播很简单,但是绑定这个就有的复杂,虽然网上资料比较多,但是都不是很深,协议栈中有一个自带的例子,但是修改起来就工作量巨大。对于绑定我还有的云里雾里。

    (4)网络拓扑结构

    这个我也没有弄明白,按照资料上的要求设置,但是总是失败 组不出想要的网络结构最好有单片机和C语言的基础,因为往下做就是编程序。

    虽然我现在还


    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-8 15:01
  • 签到天数: 459 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-8-21 12:35:34 | 显示全部楼层
    ~~~~~~~~~~~~~~~~~~~板凳
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-25 13:43 , Processed in 0.122063 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.