微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > af_datarequest消息并发

af_datarequest消息并发

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

z-Stack 1.2.2a 协议栈,协调器向多个终端发送消息时,能够支持并行发送么?

同样的消息内容?那为什么不用广播?

1、 嗯嗯,我的应用场景是一个协调器带5个终端,我要点对点的对从0号到4号终端,依次发送的指令(指令不同)。是不是可以依次发送5条指令,这五条指令之间没有加延时。这种指令下发合理么?

2、另外,一个协调器对其中一个终端进行50k的数据传输(例如ota),参数设为

/* The number of milliseconds to wait between data request polls to the coordinator. */
-DPOLL_RATE=1000

/* This is used after receiving a data indication to poll immediately
* for queued messages...in milliseconds.
*/
-DQUEUED_POLL_RATE=100

这50k的数据肯定要分包发送,调用AF_DataRequest ( ) ,进行数据包发送,

在一个1s的poll_rate周期内,协调器能放多少条数据包,等终端来取?协调上的这个待发送的数据缓存多大,协议栈里能看到么?

我在实验的时候,发现如果10个数据包间隔500ms发送,终端会有丢包。是我发送间隔的原因导致失败么?

如何才能做到效率最高的数据传输啊?

这块不是很明白,希望ti的工作人员帮忙解答一下?十分感谢!

1、协调器上会给每一个关联设备提供3条msg buffer。

// Maximum msgs to hold per associated device.
#define NWK_INDIRECT_MSG_MAX_PER 3 

2、协调器hold 每一条msg的时间是NWK_INDIRECT_MSG_TIMEOUT=7(秒)
3、给所有关联设备提供的msg buffer有12-3条 (目前理解12-3 是因为路由器的关联表中有存在协调器的可能性,协调器和路由器之间不会去data request)

// Maximum total msgs to hold for all associated devices.
#define NWK_INDIRECT_MSG_MAX_ALL \
 (NWK_MAX_DATABUFS_TOTAL - NWK_INDIRECT_MSG_MAX_PER)

我的理解是对的么?

我的问题和上面这个同学差不多:

【需求】协调器同时给9个终端发送数据(内容不同),终端收到数据给协调器回复ACK后再发送一条数据。也就是同一个数据终端只有一条发送数据。zstack中定义的msg buffer最多为9条,每个设备一条。

【现象】协调器并发数据时,会出现没有收到SRSP导致的发送失败(终端并没有收到数据)

【问题】按zstack里NWK_INDIRECT_MSG_MAX_ALL的配置为9,应该最多有9条数据缓存才对。

为什么会收不到MAC层的回应导致发送失败呢?有没有函数或方法可以查看MAC层buffer的发送状况?

PS:期待回复,新年快乐!

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

网站地图

Top