微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > source route table发送问题

source route table发送问题

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

如何让协调器只使用source route table进行发送,而不管目标地址在不在邻居表里或者路由表里

测试拓扑A-B-C

A为协调器,B,C为路由,A发数据给C,有时通过source route table发送,此时发送路径为A-B-C,数据发送成功

有时通过邻居表发送,此时发送路径为A-C,数据发送失败

TI的路由算法是否待优化,由于C可能在A的通信范围临界,导致C会出现在A的邻居表里,发送路径经常变化,最终导致数据传输稳定性降低

疑问:zstack 发送数据包时,如何确定目标地址的发送路径,是根据route cost,或者说根据邻居表,子设备表,路由表,源路由表(如果使能)来决定发送的路径的呢?如果设备在邻居表,并且有效(只是有效,可能链路质量不是很好),是否也是直接发送到该目标地址而不采用之前获得的路由路径进行发送?

TI的大神帮忙解答一下,

Z-TOOL打印如下

<TX>02:36:07.21 COM7 AF_DATA_REQUEST (0x2401)
DstAddr: 0x41F9
DestEndpoint: 0x0B
SrcEndpoint: 0x0B
ClusterID: 0x0000
TransID: 0x01
Options: 0x00
Radius: 0x00
Len: 0x03
Data: ... (0x00, 0x00, 0x00)

<RX>02:36:07.23 COM7 AF_DATA_REQUEST_SRSP (0x6401)
Status: afStatus_SUCCESS (0x0)

<RX>02:36:07.28 COM7 AF_DATA_CONFIRM (0x4480)
Status: 233 (0xE9)
Endpoint: 0x0B
TransID: 0x00

<RX>02:36:15.93 COM7 AF_DATA_REQUEST_SRSP (0x6401)
Status: afStatus_SUCCESS (0x0)

<TX>02:36:15.91 COM7 AF_DATA_REQUEST (0x2401)
DstAddr: 0x41F9
DestEndpoint: 0x0B
SrcEndpoint: 0x0B
ClusterID: 0x0000
TransID: 0x01
Options: 0x00
Radius: 0x00
Len: 0x03
Data: ... (0x00, 0x00, 0x00)

<RX>02:36:15.94 COM7 AF_DATA_CONFIRM (0x4480)
Status: afStatus_SUCCESS (0x0)
Endpoint: 0x0B
TransID: 0x00

抓包数据在附件中

管理员能否帮忙置顶几天?

疑问:zstack 发送数据包时,如何确定目标地址的发送路径,是根据route cost,或者说根据邻居表,子设备表,路由表,源路由表(如果使能)来决定发送的路径的呢?如果设备在邻居表,并且有效(只是有效,可能链路质量不是很好),是否也是直接发送到该目标地址而不采用之前获得的路由路径进行发送?

路由路径选择参考Z-Stack Developer's Guide.pdf的第五章节。

分享下我的理解

1.如果目的节点在“邻居表”,则不用使用路由发现,不会用到路由表,更不会使用过期的路由表。如果邻居表的节点通讯质量不好,那他将不会继续留在邻居表里。另外,邻居表的维护是比较频繁和可靠的。

2.源路由表我理解是在Many-to-One模式下使用的。这个在5.4章节有介绍。

3.如果使能了Many-to-One模式,那路由路径的选择的优先级我认为是,邻居表>源路由表(仅concentrator有)>路由表

谢谢 sinan chen 的回答

测试的结果邻居表通信并不可靠,发送有时成功有时失败。有没有哪些参数可以调整使得链路质量比较好的才能停留在邻居表

第二,使能了Many-to-One模式,路由表的优先级>源路由表

请问下,通过邻居表发送失败的原因是什么?我也出现这样的问题,错误的原因是找不到路由

你出错的原因都是MAC 没有ack么?

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

网站地图

Top