概述
我們稱主設備為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節
跳頻原理
例如,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
