cc2530传输大量数据时,根据抓包情况发现协调器少发了一次信标帧,这是为何?(推断少一个信标帧的判断过程如下:)
蓝色 --信标帧 黄色 --数据帧 黑色 -- ACK帧
1->2: 正常信标间隔时间(BO=5 即491ms)
2->3:两倍信标间隔时间
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我使用的协议栈是TIMAC1.5.2,测试采用的是单播。终端连续发送(即发送完成后回调函数中立即发送下一帧)大量数据至协调器。
在传输大量数据时,协调器不仅会偶尔丢失信标,还会有概率发生协调器在发送一个信标后的一段时间内,接收不到终端发送的数据帧(抓包时协调器无ACK)的情况。
数据包的发送就是按照CSMA/CA的机制发送的吧?我之前调试的时候数据包发送会计算退避时间等一系列CSMA/CA需要的操作。
前辈,经过调试发现在接收异常的时间段,协调器并没有接收到终端的数据,我觉得可能是那个信标导致协调器关闭了接收状态,在下一个信标帧的时间点才重新打开接收状态。但我没找到发送信标帧的相关代码,不知道该如何去调试信标帧发送前后的情况。