藍牙設備在建立連接以前,通過在固定的一個頻段內選擇跳頻頻率或由被查詢的設備地址決定,迅速交換握手信息時間和地址,快速取得設備的時間和頻率同步。建立連接后,設備雙方根據信道跳變序列改變頻率,使跳頻頻率呈現隨機特性。
藍牙系統定義了種工作狀態下的跳頻序列尋呼、尋呼響應、查詢、查詢響應 和信道 跳變序列, 不同狀態下的跳頻序列產生策略不同。
藍牙定義了32個頻點為一個頻段, 劃分為79個子頻段, 工作的頻段及跳頻順序取決于所輸入的藍牙主控設備時鐘CLK 和主控設備地址的最低28比特有效位, 即BD_ADDR[0…27]或者28比特通用查詢接入碼(General Inquiry Access Code,GIAC).
1)查詢/查詢掃描狀態:
藍牙設備通過查詢來尋找在其周圍鄰近的設備,查詢設備每隔312.5微秒選擇一個新的頻率來發送查詢,被查詢設備每隔1.28s選擇一次新的監聽頻率。查詢和被查詢設備使用通用查詢接入碼(GIAC,General Inquiry Acess Code)LAP(Low Address Part),作為查詢地址,GIAP LAP為0x9E8B33. 藍牙標準規定不允許任何藍牙設備使用和GIAP LAP一樣的地址。產生的32個查詢跳變序列(Inquiring hopping sequence) 均勻分布在79個頻率信道上。
2)尋呼/尋呼掃描狀態:
藍牙設備通過尋呼來呼叫其它的設備加入其所在的微微網,尋呼設備每隔312.5微秒選擇一個新的頻率來發送尋呼,在尋呼掃描時,被尋呼設備每隔1.28s選擇一個新的監聽頻率。尋呼和被尋呼設備使用被尋呼設備地址(BT_ADDR)的低28個比特,產生的尋呼跳變序列(paging –hopping sequence)是一個定義明確的周期序列,它的各個頻點均勻分布在2.4G的79個頻率信道上.
3)連接狀態:
在當前狀態下, 藍牙通信設備雙方每隔625微秒改變一個頻率,使用主設備地址的最低28位有效位, 產生的信道跳變序列(Channel hopping sequence)周期非常長,而且79跳變序列在任何的一小段時間內都是接近均勻分布的。
2. 藍牙狀態轉換圖:
上圖是藍牙狀態轉換圖,從圖中可以看出STANDBY狀體是藍牙設備的默認狀態。此模式下設備處于低功耗狀態。
Page:這個子狀態就是我們通常稱為的連接(尋呼),進行連接/激活對應的slave的操作我們就稱為page。它是指:發起連接的設備(主設備)知道要連接設備的地址。所以可以直接傳呼。(想想傳呼機,要知道號碼才行)。
Page scan:這個子狀態是和page對應的,它就是等待被page的slave所處的狀態,換句話說,若想被page到,我們就要處于page scan的狀態。
inquiry:這就是我們通常所說的掃描狀態,這個狀態的設備就是去掃描周圍的設備。它是不知道周圍有什么設備,要去查詢(調查),類似于廣播(吆喝)。處于Inquiry Scan的設備可以回應這個查詢。再經過必要的協商之后,它們就可以進行連接了。
此處需要說明的是:Inquiry之后,不需要進入Page就可以連接上設備。
inquiry scan:這就是我們通常看到的可被發現的設備。體現在上層就是我們在android系統中點擊設備可被周圍什么發現,那設備就處于這樣的狀態。
slave response:這個就是在page的過程中,slave收到了master的page msg,它會回應對應的page response msg,同時自己就進入到了slave response的狀態。
master response:master收到slave response的msg后,他就會進入到master response的狀態,同時他會發送一個FHS的packet。
inquiry response:就是在inquiry scan的設備在收到inquiry的msg后,就會發送inquiry response的msg,在這之后它就會進入到了inquiry response的狀態了。
以上的各種狀態可以總結到下面的尋呼過程中:即尋呼過程按照如下步驟進行:
1) 一個設備(源)尋呼另外一個設備(目的),此時處于尋呼狀態。(Page state)
2) 目的設備接收到該尋呼,此時處于尋呼掃描狀態。(Page Scan state)
3) 目的設備發送對源設備的回復,此時處于子設備響應狀態。(Slave Response state)
4) 源設備發送FHS包到目的設備,此時處于主設備響應狀態。(Master Response state。)
5) 目的設備發送第二個回復給源設備,此時處于子設備響應狀態(Slave Response state。)
6) 目的和源設備切換并采用源信道的參數,此時處于主設備響應狀態和子設備響應狀態。