将成品到用户处组网实施
发现信道(DEFAULT_CHANLIST)已经被占用
目前的解决办法是修改DEFAULT_CHANLIST定义,将所有节点重新烧录程序
但这个解决方法存在很大弊端
一旦网络中节点数量众多,重新烧录费时费力
而且一旦使用环境发生变化,占用了默认信道(DEFAULT_CHANLIST),那么只能再次重新烧录程序
这个问题在真正的产品上是很大的致命点
所以请教是否有好的办法,我想过
第一种方法将默认信道(DEFAULT_CHANLIST)的所有值或起来,我观察信道是移位表示,或起来不会冲突
第二种方法在协调器增加宏定义NWK_MANAGER(感谢http://bbs.eeworld.com.cn/thread-292523-1-1.html帖子的作者)
以上两种方法我还没有试验,先发帖讨论或者如果有人做过,稍微指点我,给个方向就好
先谢谢了
JSW-PengBo:
TI的这个我没有用过,不知道你这个是哪个频段的?如果是400MHz或900MHz的还好,可以用拔码开关来选通道,因为这两个频段相对来说使用的人比较少,不用考虑太多;如果是2.4GHz的话,最好要加一个自适应跳频处理,就算你上不了一秒几百跳一千跳的级别,最起码也要隔一段时间检测一下通道是否被占用,占用了就需切换到下一个通道里,因为2.4GHz使用的人太多了,就一个wifi就能把你的通道给堵塞死。
根据以往的经验,2.4GHz的干扰源如下:
(1)wifi,这是最严重的,一个wifi通道就占用了13MHz的带宽,功率又大
(2)2.4GHz无绳电话,无绳电话也有几种,一种是定频的,跟wifi一样,影响一也样了,另一种是跳频的,这个就没有什么影响,只是间歇性占用你的通道
(3)微波炉,近距离时微波炉的影响还是有点,占用的是接近整个2.4GHz频的前半段(以前测试过记得好像是这样子),在一米范围内干扰颇大,远一点就没有什么影响了
(4)蓝牙等其它2.4GHz小设备,这些基本可以忽略了
处理方法:
(1)预测性避干扰,在使用通道前(可以提前几个周期)检测一下该通道是否有被占用(检测通道的信号强度即可),如果有,就按照预定的算法计算另一个通道来替换该通道并提前通知其它设备
(2)实时性避干扰,在该通道发送数据没有收到接收方的应答信号却有信号强度,连续几次没有应答,则判断为被干扰,使用算法计算替换的通道。
其中还有好多细节的,就不一一列举了,也还有好多方法,这仅做抛砖引玉
GXJH:
回复 JSW-PengBo:
感谢
Aries Lord:
把源码和烧写器给用户,让用户自己去改。