微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 父设备如何发送数据给自己的所有RFD子节点?

父设备如何发送数据给自己的所有RFD子节点?

时间:10-02 整理:3721RD 点击:

网络中有协调器,路由和终端,组网成功后路由和终端采集温度信息发送给协调器,然后协调器通过串口将接收到的信息发送给上位机。现想要实现的功能为上位机发送温度采集时间间隔数值给协调器,然后通过协调器广播通知所有节点修改温度采集时间间隔,参考论坛中一些网友所发表过的意见,认为协调器直接广播数据给所有节点会造成较大的网络负担,因此改为协调器广播数据给所有路由,再由路由负责将数据发送给各自的RFD子节点的思路。对于路由将数据发送给各自的RFD子节点的实现,有几个问题想请教大家:

1. 若是想让路由通过广播方式发送数据给自己的RFD子节点,应该怎样实现?貌似广播模式中没有发送给自己的RFD子节点这个选项。

2. 若是想让路由通过单播方式发送数据给自己的RFD子节点,目前的实现思路为在关联表中找出所有RFD子节点然后逐个单播,但感觉该方法效率不高,有没更快捷的方法来指定发送目标?

3. 在所要运用的系统中,RFD子节点为低功耗模式且采集温度信息发送的时间间隔为几分钟,请问有什么方法能让路由发送给RFD子节点的数据能保存如此长的时间来等待RFD子节点的轮询再将数据发送给子节点?

yun gao:

       你好!不知道你的问题解决没有,我最近也在学习z-stack,有一些想法不知道对不对,希望能探讨一下共同进步。

        1.协调器可以通过广播地址:0xFFFC,将指令信息发给全部Router,然后由Router再将指令信息发给自己的RFD子节点。实际上是由RFD去pull自己的parent,pull的周期由-DPOLL_RATE或者NLME_SetPollRate决定。

         2.Router将指令转发给自己的RFD子节点可以采用组播的方式,当建立好网络以后,RFD子节点可以通过NLME_GetCoordShortAddr获取自己parent的shortaddr,然后同一parent下面的RFD都依照parent的shortaddr作为groupID建组(包括parent自己),这样parent就可以组播给自己的子节点了。

         3.DNWK_INDIRECT_MSG_TIMEOUT决定了RFD子节点poll自己的parent时的溢出时间,如果RFD子节点的DPOLL_RATE小于DNWK_INDIRECT_MSG_TIMEOUT时间,那Router组播的数据RFD都是可以收到的。

        以上是我的一些个人见解,不知是否正确。希望能相互探讨共同进步。另外,在你的应用里:“协调器直接广播数据给所有节点会造成较大的网络负担”,广播并不是非常的频繁,应该不至于造成广播风暴吧?是否有实际测试过?

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

网站地图

Top