查看: 4924|回复: 13

徐州工程学院(开发手册)STM32和zigbee技术的高性能组网节...

  [复制链接]
  • TA的每日心情
    开心
    2013-7-2 13:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-8-18 23:50:44 | 显示全部楼层 |阅读模式
    分享到:
    前些天,不断地探索,和实践中,终于解决了TI公司的半开源Zstack协议栈,在解读官方例程和参考一些资料后后,自己写了一个小型的通讯协议。同时也初步手工制作出一些硬件。在此写下记录和一些问题的分享记录。
    先贴上一些实物图吧。


    那么对于这个项目的第一篇,首先解决核心组网的问题,这里先设计小型网络的组网和控制的主要问题。

    一.zigbee组网的建立,加入,等等。
    这里省略一下,毕竟如果细谈zigbee就很复杂了,本来也只是懂得一些皮毛,所以就不细谈,但是要提出一些重点注意的地方。
    1,编译中,防止网络因为断电而丢失,那么在zigbee编译时要加上
    ZTOOL_P1MT_TASK
    MT_APP_FUNC
    MT_SYS_FUNC
    MT_ZDO_FUNC
    NV_RESTORE

    其中的NV_RESTORE是比较关键的,当断电重启,能够保持其参数,加入原来的网络中。
    当然在Coordinator中,其底层函数还要将重启胡的PAN_IP++中的++去掉,这样重启后,不会再重新建一个,这个问题困扰了我几个月。现在解决了。
    协议栈建网后,历程中已经有自动加入网络的,但是为了安全起见,还要或者可以加上手动设置入网控制。那么其核心关键就在于:
    第一种,在广播中使用Group ,这样可以让需要的设备手动加入到群组内,那么这样就相对较为安全。(即在协调器中设置KEY事件,当按下时才准加入群中,然后才能共享网络的控制以及,信息)主要涉及下面的东西:
    //--------------------------------------------//
    // Group Table Element
    typedef struct
    {
      uint16 ID;                       // Unique to this table
      uint8  name[APS_GROUP_NAME_LEN]; // Human readable name of group
    } aps_Group_t;

    //--------------------------------------------//新建组结构体
      aps_Group_t SampleApp_Group;//这里贴的是官方网站的例子的部分代码

    //--------------------------------------------// 在任务初始化中的设置
      SampleApp_Group.ID = 0x0001;
      osal_memcpy( SampleApp_Group.name, "Group 1", 7  );
      aps_AddGroup( LightCtl_ENDPOINT, &SampleApp_Group );
    //--------------------------------------------//
    第二种,在协议栈中有BindingTable.c//BindingTable.h这两个文件中有专门的函数处理网络表的加入,退出,删除等
    看图附件中,其函数有英文说明。



    2,通过官方例程,合上述的几个关键点。那么就可以初步建立一个断电自己恢复的网络。
    下面就是要解决,每一个节点(就是一个设备)的独有代号,这里叫地址。其实每一个zigbee都有唯一的16位长码。但是对于了解zigbee的人都知道网络里是使用short address的,所以在这里,就要知道每个设备的地方。
    这里给出几个比较关键的东西:
      short_ddr=NLME_GetShortAddr();//本地短地址获得
      xad = NLME_GetExtAddr();//长地址获得
      //_------------------------__//下面是根据短地址发消息
      Lt_DstAddr.addrMode = (afAddrMode_t)Addr16Bit;
      Lt_DstAddr.endPoint = LightCtl_ENDPOINT;
      Lt_DstAddr.addr.shortAddr = 0x00;

      if ( AF_DataRequest( &Lt _DstAddr,
                     (endPointDesc_t *)&Lt_epDesc,
                      Lt _CLUSTERID,
                      11, tmpBuf,
                      &Lt _TransID,
                      AF_DISCV_ROUTE,
                      AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
      {
      ;
      }
      else
      {
      ;
      }
    3.下面就是通信代码的协议的构成的问题。

    4.就是传感器代码在zigbee中的移植,其实只要有c51代码很快就能将代码移植进去,只要注意,cc2530一般协议时38M速度,只要注意一下时序,就行。还有一点要注意:不要出现死循环判断。毕竟这个也是个小操作系统。会出现BUG。

    那么zigbee的部分先说到这里,这篇只是短短的介绍一下,属于粗浅的认识,和简短的介绍。有什么说的不对的望见谅。


    下一步,就是讲STM32的沟通协议完善。






    其中带有温湿度,温度传感器,LED的一个小模块

    其中带有温湿度,温度传感器,LED的一个小模块

    带有RC522的

    带有RC522的

    其中带有温湿度,温度传感器,LED的一个小模块2

    其中带有温湿度,温度传感器,LED的一个小模块2
    zigbee协议中的网络表,加入网络,退出网络.jpg
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-7-2 13:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-8-19 00:14:18 | 显示全部楼层
    powerdruy 发表于 2013-8-18 23:57
    大牛啊,你这毕业直接就可以进射频公司搞协议开发了

    哪里是什么大牛啊,才搞了一年半左右的学习。差很远了。明天继续将继续上一些说明和注意的东西。当然会讲解一下最近玩的一个智能家居的物联玩意。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-6-9 13:54
  • 签到天数: 297 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-8-19 08:47:16 | 显示全部楼层
    看看。。。。。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-9-15 13:42
  • 签到天数: 110 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-8-19 09:35:54 | 显示全部楼层
    。。。。。看不懂
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-12-29 18:58
  • 签到天数: 213 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-8-19 14:08:47 | 显示全部楼层
    有空学习下,无线网还是很有用处的
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-8-19 14:53:21 | 显示全部楼层
    楼主协议栈玩的不错啊,得向你多多学习啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2013-11-30 17:53
  • 签到天数: 193 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-8-19 15:26:56 | 显示全部楼层
    赞一个!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-7-2 13:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-8-19 16:36:40 | 显示全部楼层
    zhaojunlin123 发表于 2013-8-19 14:53
    楼主协议栈玩的不错啊,得向你多多学习啊

    也只是懂得不多,还有很多底层的不太懂。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-7-2 13:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2013-8-19 16:37:25 | 显示全部楼层
    caolidong 发表于 2013-8-19 14:08
    有空学习下,无线网还是很有用处的

    无线比较方便。对于一些应用和娱乐以后应该是趋势
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2013-8-19 16:44:00 | 显示全部楼层
    shen2008jie 发表于 2013-8-19 16:36
    也只是懂得不多,还有很多底层的不太懂。

    呵呵,还得多向楼主学习,我协议栈还没怎么搞过~~~~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-5-2 22:47 , Processed in 0.207599 second(s), 33 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.