7.BLE---跳频原理

  1. 概述

我们称主设备为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表示跳数,表示跳频每次的跳频的间隔。

具体参数介绍参考 第五章第5节

  1. 跳频原理

例如,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。

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

Mod指求余运算。

计算步骤:

第一次:

  • 默认第一次选择频道0作为fn
  • fn+1 = (fn + hop) mod 37即fn+1 = (0 + 5) % 37= 5
  • 通过查询used可知频道5不是一个好频道
  • 所以要在好的channel表里找一个channel,即used[5 % numused] = used[5 % 13] = 16
  • 所以第一次通讯选择的频道是16

第二次:

  • 选择频道16作为fn
  • fn+1 = (fn + hop) mod 37即 fn+1 = (5 + 5) % 37 = 10
  • 通过查询used可知频道10是一个好频道
  • 所以第二次通讯选择的频道是10

 

 

 

 

posted @ 2018-08-31 13:39  qq921201008  阅读(2164)  评论(0编辑  收藏  举报