微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 数据重传严重

数据重传严重

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

你好!

我用ZStack组网,10个路由节点组成树状网,向协调器发送自己的设备信息,但是用串口接收数据发现有时候每个包都重发三到四次,修改代码f8wConfig.cfg中的    * The maximum number of retries allowed after a transmission failure */
-DAPSC_MAX_FRAME_RETRIES=0

最大重传次数为0,串口还是能收到3-4次同一个包,请问这可能是什么原因

另附其它相关参数的设置

-DAPSC_ACK_WAIT_DURATION_POLLED=30000

/*  Default indirect message holding timeout value:
 *  1-65535 (0 -> 65536) X CNT_RTG_TIMER X RTG_TIMER_INTERVAL
 */
-DNWK_INDIRECT_MSG_TIMEOUT=7

/* The number of simultaneous route discoveries in network */
-DMAX_RREQ_ENTRIES=8

/* The maximum number of retries allowed after a transmission failure */
-DAPSC_MAX_FRAME_RETRIES=0

/* Max number of times retry looking for the next hop address of a message */
-DNWK_MAX_DATA_RETRIES=2

/* Number of times retry to poll parent before indicating loss of synchronization
 * with parent. Note that larger value will cause longer delay for the child to
 * rejoin the network.
 */
-DMAX_POLL_FAILURE_RETRIES=2

先谢!

你好,

串口驱动是否有问题?

1)先判断无线的数据是否有问题,用抓包看,节点是否发送了多条数据?

2)你往串口传输的只是Payload,还会整个数据包,如果是整个数据包的话,你可以找到Seq.number,是否都一样,如果是一样的seq.number的话,那应该是串口处的问题。

你好!

谢谢您的回答,我还是有点不太明白。

这是我用抓包软件看到的数据重传现象,sequence number都是一样的0xD7,请问这是串口的问题吗?

是的话,具体有可能是什么问题?

谢谢!

从抓包数据来看是因为节点发送数据没有收到MAC ACk而重发了4次,你确定0x0005这个节点存在么?

首先,VV认为0x0005这个节点不存在,但是如果不存在,又是哪个节点串口输出的?

有一种情况:0x0001的发射距离覆盖了0x0005,但是0x0005到0x0001被阻断。你把两个节点靠近试试。

另外,0x0001和0x0005的地址,是你自己设置的么?

0x0005节点是存在的,我是采用了NV_INIT 和NV_RESTORE 预编译项,这样节点就会保存自己的网络状态包括本身地址和父节点地址,节点掉网重新加入网络时就可以以原来的地址加入原来的父节点(节点的物理位置都是固定的),这样做目的是减少地址空间的浪费和使网络拓扑结构更加稳定。

不知道这种设置是不是造成数据重传的原因?

还有,我想禁止节点在收不到ACK时重传数据的功能,修改f8wConfig.cfg中的DAPSC_MAX_FRAME_RETRIES等于0为什么没有禁止掉,节点还是继续重发数据?

还有,重发的这些数据包我串口端都是收的到的,并没有丢失,我串口中能全部收到连续的重传数据包。

重传是很随机的现象,有时候没这个问题,有时候节点间距离很近还是会有重传,实在不知道什么原因,请求帮组!

多谢!

0x0005节点是存在的,我是采用了NV_INIT 和NV_RESTORE 预编译项,这样节点就会保存自己的网络状态包括本身地址和父节点地址,节点掉网重新加入网络时就可以以原来的地址加入原来的父节点(节点的物理位置都是固定的),这样做目的是减少地址空间的浪费和使网络拓扑结构更加稳定。

不知道这种设置是不是造成数据重传的原因?

还有,我想禁止节点在收不到ACK时重传数据的功能,修改f8wConfig.cfg中的DAPSC_MAX_FRAME_RETRIES等于0为什么没有禁止掉,节点还是继续重发数据?

还有,重发的这些数据包我串口端都是收的到的,并没有丢失,我串口中能全部收到连续的重传数据包。

重传是很随机的现象,有时候没这个问题,有时候节点间距离很近还是会有重传,实在不知道什么原因,请求帮组!

多谢!

您好大侠  我也越到类似问题 请指教

我也遇到这种情况,请问怎么解决啊?

请问这个抓包软件叫什么名字呢

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

网站地图

Top