BLE 自适应跳频及算法实现

本文探讨了BLE协议在2.4G ISM频段中的自适应跳频技术,以应对Wi-Fi和ZigBee等造成的干扰。介绍了Master如何向Slave发送Connect Request并更新Channel Map,以及计算下一个连接使用的频道的算法。通过示例代码展示了如何根据给定的Channel Map和Hop值计算可用频道,并存储到chn_table中。

        BLE协议运行在2.4G ISM频段上,由于诸如Wi-Fi,ZigBee等都在此频段上,因此干扰是比较严重的。需要在此频段上进行有效的数据交互,自适应跳频技术是必不可少的,废话不多说,咱们直接进入主题,讨论下的BLE协议中的自适应跳频,以及跳频算法的实现。

我们称主设备为Master(手机、PC机等),从设备为Slave(手环等)。Master向Slave发送connect request,需要与slave建立连接。在slave收到Master发出的connect request时,在开始建立连接的同时也要更新和计算的Master的channel map表,以及下一个连接使用的频点。

如下图所示,为Master发出的CONNECT_REQ的Payload,图中的ChM和hop参数,分别表示Channel map表,即建立连接后有哪些channel是可以被使用的,有哪些channel是不可用的。hop表示跳数,表示跳频每次的跳频的间隔。


例如,ChM 和 Hop分别为 ChM[5] = {0x02,  0x56, 0x49, 0x13, 0x11]; hop = 5;

将ChM转换为二进制数,则为00010001 00010011 01001001 01010110 00000010,频道位被置为1的表示该信道可用,信道位被置为0表示该信道不可用。那么可用的频道used = [1, 9, 10, 12, 14, 16, 19, 22, 24, 25, 28,32, 36 ];可使用的信道数numUsed = 13。

接下来需要计算下一个连接使用的频道

   fn+1 = (fn + hop) mod 37; fn+1

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值