微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > Zigbee使用多个定时器出现重连

Zigbee使用多个定时器出现重连

时间:10-02 整理:3721RD 点击:
对于CC2530芯片,采用ZStack-CC2530-2.5.1a协议栈。在使用多个定时器(#define RECEIVE_TIME 0x0001;
#define ADC_TIME 0x0004)时出现问题。

[C] 纯文本查看 复制代码

if(events & RECEIVE_TIME) { Change_PanId(); return ((events &(0xFFFE))); } if(events & ADC_TIME) { ReadADC_Auto(); if(ADC_T != 0x00) osal_start_timerEx(GenericApp_TaskID , ADC_TIME , ADC_TimeOut); return (events & 0xFFFB); }



情况描述:
1. RECEIVE_TIME事件为应用层对Coordinater发送给EndDevice心跳包的检测,如果EndDevice每5s没有收到来自Coordinater的包,则切换信道和PANID。
2.ADC_TIME事件为EndDevice定时采集信息上传事件。

问题:
当两个定时器同时工作时,EndDevice容易发生状况使Coordinater接收不到来自EndDevice的数据采集包,同时EndDevice再扫描入网。

感觉不是多个定时器的问题。
1、产生 RECEIVE_TIME事件后,你做了通道的切换。这个时候协调器和终端节点就不在同一个信道了。个人感觉应该想办法快速扫描到可以通行的信道。增加调频机制。

第一个定时器起的作用是如果5秒没有接收到数据包,就会触发RECEIVE_TIME事件,然后才会通道切换。一般情况下5s内一定会有数据包,然后重启RECEIVE_TIME定时器。第二个定时器是实现定时上传数据的功能。

对不起,发现不是定时器的问题。抱歉

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

网站地图

Top