由于工作在2.4G ISM频段,这个频段上有很多其它的设备在共用,所以存在着很多干扰信号,大致分为两类:连续干扰(WLAN信号)和突发干扰(Bluetooth信号)。 在大部分时间里,持续地工作在一个没有干扰的频点,但是在设备上电时或检测到干扰后,PTX和PRX需要搜索频点,以找到一个没有干扰的频点来通讯。对于频点搜索和干扰躲避,
1、开机频点搜索
对于ACK模式传输的包,PTX可以通过MAX_RT或TX_DS中断来判断数据包是否发送成功,如果发送失败,PTX就重传,如果几次重传仍然失败,就切换到下一频点开始发送;PRX如果一段时间没有接收包,就切换到下一个频点接收。由于PTX和PRX的频率切换速度不一样,因此,就在某一时刻,如果双方在某频点收发成功,则表示该频点可用。停止频率切换,固定在该频点进行通讯。
当存在蓝牙突发干扰时,由于蓝牙通常在一个频点的驻留时间小于625 us,将重发延迟设置为700us就可以保证两次发射不会都受干扰。 对于连续的干扰信号比如WLAN信号,就不知道怎么解决了 例如双方工作在A频段,正常通信后进入睡眠模式,这时来了个连续的干扰,发射端又有数据要发送了,连续发射3次都接收端都没反应,发射端就会跳到B频段,而接收端还一直处于A频段那这样就一直都会通讯不上,请问下大神这种情况是怎么解决的。
|