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

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM