藍(lán)牙基礎(chǔ)(三):藍(lán)牙信道、跳頻與選擇算法
掃描二維碼
隨時隨地手機(jī)看文章
前言
藍(lán)牙工作在 2.4GHZ ISM 頻段,它與 2.4G WiFi 處于相同的頻段。在經(jīng)典藍(lán)牙與 BLE 藍(lán)牙之間,信道數(shù)、信道帶寬、跳頻機(jī)制、信道用途上都存在很大的區(qū)別。
這里我們將介紹藍(lán)牙的信道、跳頻、以及信道的選擇算法。
(一)經(jīng)典藍(lán)牙信道
經(jīng)典藍(lán)牙信道帶寬 1Mhz,從信道 ch0~ch78,合計共 79 個信道分布在 2400 ~2483.5 MHz(ISM)頻段。
在未連接前,經(jīng)典藍(lán)牙使用的是79個信道中的32個信道進(jìn)行廣播和配對(Inquiry Scan/Page Scan 階段)
配對連接成功之后,則會使用全部 79 個信道,包括控制包和數(shù)據(jù)包都通過這 79 個信道交換。
(1) 經(jīng)典藍(lán)牙通道類型
在經(jīng)典藍(lán)牙中,信道分為 5 類:
| 通道類型 | 使用的信道數(shù)量 | 使用的信道編號(示例) | 用途說明 |
|---|---|---|---|
| Inquiry Scan | 32個 | 0~78中選出的32個 | 設(shè)備發(fā)現(xiàn) |
| Page Scan | 32個 | 0~78中選出的32個 | 等待連接 |
| Basic Piconet | 全部79個 | 0~78(完整跳頻) | 正常通信 |
| Adapted Piconet | 介于20~79個 | 從0~78中篩選(AFH調(diào)整) | 通信避干擾 |
| Synchronization Scan | 1個 | 單一廣播信道(由廣播端選擇) | 同步廣播接收 |
- Inquiry Scan & Page Scan:用于設(shè)備發(fā)現(xiàn)和連接前階段。
- Basic/Adapted Piconet:連接后使用,用于正?;蚋蓴_優(yōu)化通信。
- Synchronization Scan:專為同步廣播設(shè)計,用于周期性接收廣播數(shù)據(jù)。
(2)Inquiry Scan(發(fā)現(xiàn)設(shè)備)
Inquiry Scan 通道的作用是用于設(shè)備被發(fā)現(xiàn)(被查詢) 的場景。
主要特點:
- 使用32個預(yù)定義的跳頻信道(在79個信道中選出)。
- 設(shè)備周期性地監(jiān)聽 Inquiry 信號。
- 當(dāng)其他設(shè)備發(fā)起 Inquiry 請求時,處于 Inquiry Scan 狀態(tài)的設(shè)備會響應(yīng)。
- 通過該通道,設(shè)備能被發(fā)現(xiàn),但還未建立連接。
主要適用場景:設(shè)備廣播“我在這”,以供其他設(shè)備查詢時使用。
(3)Page Scan(連接目標(biāo)設(shè)備)
Page Scan 通道的作用是用于設(shè)備等待被連接(被尋呼)的場景。
主要特點:
- 設(shè)備處于“可連接”狀態(tài)時,周期性地監(jiān)聽特定跳頻上的尋呼信號。
- 主設(shè)備在這 32 個信道中跳頻發(fā)送 Page 請求
- 主設(shè)備使用 Page Channel 向從設(shè)備發(fā)起連接。
- 從設(shè)備在這個通道上掃描尋呼請求。
主要適用的場景:從設(shè)備等待主設(shè)備發(fā)起連接。
(4)Basic Piconet Channel
Basic Piconet Channel是設(shè)備連接成功后,用于主從之間數(shù)據(jù)傳輸?shù)闹饕锢硗ǖ馈?/span>
主要特點:
- 由一個主設(shè)備控制跳頻序列。
- 所有從設(shè)備跟隨主設(shè)備的跳頻。
- 使用所有79個信道(0~78)。
主要適用場景是:連接狀態(tài)下的正常通信。
(5)Adapted Piconet Channel
Adapted Piconet 通道是 Basic Piconet 的一個變種,適用于跳頻受限環(huán)境(如 Wi-Fi 干擾)。
主要特點:
- 用于連接狀態(tài)下通信。
- 跳頻圖是根據(jù)頻道質(zhì)量評估動態(tài)調(diào)整的(Adaptive Frequency Hopping, AFH)。
- 跳頻圖會剔除干擾嚴(yán)重的信道。
- 動態(tài)選擇部分信道(例如剔除干擾頻段,可能只用20~60個)
主要適用場景:存在2.4GHz 環(huán)境有干擾時的通信場景。
(6)Synchronization Scan Channel(同步掃描通道)
Synchronization Scan 通道用于支持同步從設(shè)備(如耳機(jī)、音箱)保持與主設(shè)備的同步,尤其是在廣播傳輸時。
主要特點::
- 用于收聽周期性廣播(如 synchronized broadcast)。
- 從設(shè)備周期性喚醒并監(jiān)聽同步廣播信號。
- 支持低功耗同步接收。
主要適用場景:單向廣播同步,如廣播音頻等。
(二)BLE 低功耗藍(lán)牙信道
BLE藍(lán)牙為了更好地適應(yīng)低功耗、低成本、小數(shù)據(jù)量傳輸的需求,以便能更好地適配物聯(lián)網(wǎng)設(shè)備,BLE藍(lán)牙在經(jīng)典藍(lán)牙基礎(chǔ)上減少了信道數(shù)、增加了信道寬度。
但 BLE 藍(lán)牙在抗干擾性和數(shù)據(jù)速率方面有做了部分的取舍。
(1)BLE藍(lán)牙信道類型
BLE 藍(lán)牙與經(jīng)典藍(lán)牙都是工作在 2400 ~2483.5 MHz(ISM) 頻段,BLE 藍(lán)牙將 ISM 頻段分為帶寬為 2Mhz 的 ch0~ch39 共 40 個信道。
這 40 個信道編號并不是連續(xù)的。其中37、38、39 為廣播信道,分布在不同的位置。
為何 37、38、39 三個廣播信道會分布在不同位置?
主要原因是藍(lán)牙與 2.4G WiFi處于同一個工作頻段,為了盡可能地避免 WiFi 對藍(lán)牙的干擾,所以將三個廣播信道布置到了 WiFi 信道的"縫隙"中。
上圖可以看出 BLE 的37、38、39 信道,實際是分布在WiFi 1、6、11 信道的"縫隙"處。
WiFi 信道相關(guān)的知識可以查看之前 WiFi 系列文章中的《WiFi基礎(chǔ)(二):最新WiFi信道、無線OSI模型與802.11b/g/n》
當(dāng)藍(lán)牙與 WiFi 在同一個空間工作時,從頻譜圖中可以明顯地看到藍(lán)牙的廣播信道頻譜。
隨著時間的變化,也可以看到一段時間上各信道的利用率。其中藍(lán)牙廣播信道的使用率還是挺高。
(2)經(jīng)典 VS BLE 藍(lán)牙信道
藍(lán)牙技術(shù)的發(fā)展從 BR/EDR(Basic Rate/Enhanced Data Rate) 到 BLE(Bluetooth Low Energy),其物理信道數(shù)量由 79個(在BR/EDR中)減少為 40個(在BLE中),在功耗、成本、信道重疊上有優(yōu)勢,但在吞吐量、抗干擾方面又有明顯不足。
BLE 藍(lán)牙信道優(yōu)勢:
- 簡化射頻設(shè)計:2 MHz 寬度、40 個信道更適合低成本實現(xiàn)。
- 更快建立連接:3 個固定廣播信道,有利于快速掃描與連接。
- 節(jié)能優(yōu)化:信道規(guī)劃簡化通信過程,有助于降低功耗。
- 減少與Wi-Fi干擾:合理分布的信道避免與 Wi-Fi 常用信道沖突。
BLE 藍(lán)牙信道劣勢:
- 抗干擾能力略弱:跳頻范圍變窄,在復(fù)雜無線環(huán)境下易受影響。
- 最大吞吐量較低:不適合大數(shù)據(jù)量或高質(zhì)量音頻/視頻傳輸(不過BLE Audio在BLE 5.2中已部分改進(jìn))。
- 兼容性問題:早期BLE設(shè)備不支持BR/EDR,應(yīng)用需要按場景選擇。
簡而言之就是:經(jīng)典藍(lán)牙使用 1Mhz 帶寬 79 信道,BLE 使用2Mhz 帶寬 40 信道。BLE 藍(lán)牙減少了信道數(shù)、增加了信道寬度,使得BLE藍(lán)牙在低功耗、低成本、小數(shù)據(jù)量傳輸中占據(jù)優(yōu)勢,但在抗干擾性和數(shù)據(jù)速率方面又有所犧牲。
(三)跳頻技術(shù)
為了提高通信的抗干擾和提升頻譜的利用率,藍(lán)牙使用了 FHSS 和 AFH 跳頻技術(shù)
(1)FHSS 跳頻擴(kuò)頻(Frequency Hopping Spread Spectrum)
藍(lán)牙從一開始的1.0版本就有使用跳頻技術(shù),當(dāng)時使用的是 FHSS 技術(shù)。
FHSS 是一種擴(kuò)頻技術(shù),它通過在多個頻率信道間快速切換(跳頻)來發(fā)送數(shù)據(jù),從而提高抗干擾能力和通信安全性。
FHSS 跳頻擴(kuò)頻的優(yōu)點
-
抗干擾能力強(qiáng):跳頻特性使信號不在一個頻率上長時間停留,能規(guī)避某些短時干擾。
-
提高通信安全性:頻率不斷變化,監(jiān)聽者難以持續(xù)跟蹤完整的數(shù)據(jù)流,提高抗監(jiān)聽能力。
-
抗多徑效應(yīng):跳頻可以避免由于多徑效應(yīng)導(dǎo)致的某一頻率點的嚴(yán)重衰減。
-
實現(xiàn)簡單、成本低:在早期硬件平臺上易于實現(xiàn),對處理器和協(xié)議要求較低。
FHSS 跳頻擴(kuò)頻的缺點:
-
容易跳入受干擾信道:跳頻是隨機(jī)或偽隨機(jī)的,可能跳到被 Wi-Fi 或其他設(shè)備強(qiáng)干擾的頻率上,影響通信質(zhì)量。
-
無適應(yīng)能力:不能根據(jù)環(huán)境自動優(yōu)化跳頻序列,效率低于后來的自適應(yīng)跳頻技術(shù)。
-
頻譜利用率不高:所有信道都參與跳頻,即使某些信道質(zhì)量很差,也仍可能使用。
(2)AFH 自適應(yīng)跳頻(Adaptive Frequency Hopping )
雖然 FHSS 能提高抗干擾能力,但在 2.4 GHz 頻段中,有很多其他設(shè)備(如 Wi-Fi、微波爐、Zigbee)也在使用相鄰或相同頻率,可能造成干擾。
為了解決該問題,從 藍(lán)牙 1.2 開始,引入了 AFH 技術(shù)
AFH 的核心思想是:
AFH 會檢測信道質(zhì)量,自動將受干擾嚴(yán)重或質(zhì)量差的信道從跳頻序列中排除,只在“良好信道”之間跳頻,從而提升通信質(zhì)量。
AFH 自適應(yīng)跳頻的優(yōu)點:
-
避開干擾頻率:自動檢測和屏蔽受干擾或高誤碼率的信道,顯著提高通信穩(wěn)定性和吞吐率。
-
與 Wi-Fi 等共存能力強(qiáng):能主動避開 Wi-Fi 使用的 2.4GHz 頻段(如信道 1、6、11),減少藍(lán)牙與 Wi-Fi 的沖突。
-
動態(tài)適應(yīng)能力強(qiáng):能根據(jù)實時環(huán)境變化,更新跳頻序列,應(yīng)對移動設(shè)備和復(fù)雜無線環(huán)境。
-
提高實際傳輸效率:由于減少了因信道干擾而導(dǎo)致的重傳,提升了有效數(shù)據(jù)速率。
AFH 自適應(yīng)跳頻的缺點
-
實現(xiàn)更復(fù)雜:需要主設(shè)備監(jiān)測信道質(zhì)量、動態(tài)維護(hù)信道列表,增加了協(xié)議棧復(fù)雜度和資源消耗。
-
依賴主從協(xié)同跳頻:主設(shè)備做決策并同步從設(shè)備,若同步失效,通信會中斷。
-
受限于信道總數(shù)減少:剔除“壞信道”后,可用信道減少,可能導(dǎo)致頻譜利用率下降、跳頻圖變得不均勻。
FHSS 與 AFH的應(yīng)用
在經(jīng)典藍(lán)牙中,設(shè)備剛連接上時,使用的是Basic Piconet Channel 通道進(jìn)行數(shù)據(jù)交互,實際使用的是 FHSS 跳頻機(jī)制在0~79信道之間跳轉(zhuǎn)。
如果開啟了AFH功能,藍(lán)牙模塊會去檢測信道的質(zhì)量,將質(zhì)量不好的信道剔除,也就是Adapted Piconet Channel 信道。它使用的是BR/EDR 80個信道中的部分信道進(jìn)行數(shù)據(jù)交互。
在藍(lán)牙中,生成跳頻序列的算法有兩種:
- Channel Selection Algorithm #1(CSA#1)
- Channel Selection Algorithm #2(CSA#2)
下面我們介紹這兩種算法在BLE中的使用。
(四)信道選擇算法
在BLE通信中,設(shè)備通過跳頻(Frequency Hopping)在多個數(shù)據(jù)通道之間切換,以減少干擾并提高通信可靠性。
CSA#1和CSA#2定義了數(shù)據(jù)包應(yīng)跳轉(zhuǎn)到哪個通道。
(1)CSA#1 (Channel Selection Algorithm #1)
CSA#1 是藍(lán)牙早期版本(如 Bluetooth 4.0 及之前)中使用的信道選擇算法。
特點:
- 基于事件計數(shù)器(Event Counter)。
- 線性跳頻:通過一個簡單的公式,在37個數(shù)據(jù)通道中進(jìn)行偽隨機(jī)跳變。
- 不可自適應(yīng):無法避開存在干擾的信道。
跳頻的公式為:
channel_index = (event_counter + hop_increment) % 37
hop_increment 為配對時選定的跳頻因子(范圍是1~36,不能被37整除)
上圖可以看出CSA#1算法跳頻的線性變化。
CSA#1優(yōu)勢:
- 實現(xiàn)簡單: 算法邏輯相對簡單,計算量低,適合資源受限的設(shè)備(如低端MCU)。
- 兼容性強(qiáng): 是 BLE 4.0/4.1 的默認(rèn)跳頻算法,幾乎所有 BLE 設(shè)備都支持。
- 跳頻快速: 跳頻速度快,延遲小,有助于低延遲通信。
CSA#1劣勢:
- 跳頻模式較為可預(yù)測,安全性較低。
- 容易受干擾,因為不能跳過信號質(zhì)量差的通道。
- 在高干擾環(huán)境(如 Wi-Fi 重疊)下表現(xiàn)較差。
(2)CSA#2 (Channel Selection Algorithm #2)
CSA#2 算法在藍(lán)牙5.0 之后版本廣泛使用,旨在提高藍(lán)牙的抗干擾性和安全性。
特點:
- 更加隨機(jī)、抗干擾性更強(qiáng)。
- 支持信道映射表(Channel Map),跳過受干擾的通道。
- 基于AES-like加擾運(yùn)算:提高安全性和隨機(jī)性。
算法大致流程:
- 使用一個 event_counter 和 access_address 作為種子,經(jīng)過非線性變換(例如基于 AES 的混淆函數(shù))生成一個偽隨機(jī)數(shù)。
- 將該偽隨機(jī)數(shù)對可用通道數(shù)量取模,得到目標(biāo)信道索引。
- 使用當(dāng)前的 信道映射表(channel map)來找出實際要跳轉(zhuǎn)的通道。
從上圖可以看出,使用CSA#2之后,信道跳轉(zhuǎn)是非線性的。
CSA#2優(yōu)勢:
-
抗干擾能力強(qiáng): 使用 AES 加密生成偽隨機(jī)跳頻序列,難以預(yù)測,抗干擾性和安全性大幅提升。
-
頻譜使用均勻: 所有可用頻道使用更均勻,避免某些頻道過度使用,提高系統(tǒng)穩(wěn)定性。
-
安全性更高: 序列與連接參數(shù)相關(guān),外部無法預(yù)測,有助于防止干擾和嗅探攻擊。
-
支持動態(tài)黑名單: 可以動態(tài)地排除受干擾的頻道(結(jié)合 Adaptive Frequency Hopping, AFH)。
CSA#2缺點:
- 實現(xiàn)復(fù)雜: 依賴加密算法(如 AES-128),計算復(fù)雜度高,對硬件資源有更高要求。
- 兼容性要求更高: 舊設(shè)備(BLE 4.0/4.1)可能不支持 CSA#2,需協(xié)商降級使用 CSA#1。
- 稍微增加功耗: 計算量增大可能略微提升能耗,尤其是在資源緊張的低功耗設(shè)備中。
CSA#1 VS CSA#2
| 特性 | CSA#1 | CSA#2 |
|---|---|---|
| 引入版本 | BLE 4.0/4.1 | BLE 4.2(廣泛用于 BLE 5.0+) |
| 抗干擾能力 | 一般 | 強(qiáng) |
| 跳頻序列可預(yù)測性 | 高(易預(yù)測) | 低(偽隨機(jī)) |
| 計算復(fù)雜度 | 低 | 高(需要加密運(yùn)算) |
| 實現(xiàn)簡易性 | 簡單 | 較復(fù)雜 |
| 通道使用均勻性 | 差 | 好 |
| 兼容性 | 與所有 BLE 設(shè)備兼容 | 需要 BLE 4.2 及以上設(shè)備支持 |
(3)信道質(zhì)量判斷
所有的無線設(shè)備,包括藍(lán)牙和 WiFi,都無法在發(fā)送數(shù)據(jù)的同時檢測當(dāng)前信道是否繁忙,而是通過過往數(shù)據(jù)的收發(fā)情況進(jìn)行分析判斷。
信道質(zhì)量的衡量指標(biāo)
藍(lán)牙控制器通過以下方式判斷某個信道是否“質(zhì)量差”:
(1)包錯誤率(PER, Packet Error Rate)
- 某個信道上發(fā)送的包中,有多少是被接收方認(rèn)為損壞的(如CRC校驗失?。?。
- 通常以“百分比”表示,比如 PER > 10% 可認(rèn)為質(zhì)量較差。
(2)重傳次數(shù)(Retransmissions)
- 如果某個信道頻繁需要重傳,說明它信號質(zhì)量差。
(3)接收信號強(qiáng)度(RSSI)
- 藍(lán)牙設(shè)備能檢測接收到的信號強(qiáng)度;RSSI太低表示信道質(zhì)量差。
- 但RSSI不總是直接用來決定跳頻行為,更多用于優(yōu)化連接。
(4)信道利用率或干擾檢測
- 某些藍(lán)牙控制器具備檢測頻道是否被Wi-Fi等占用的能力(頻譜掃描或能量檢測)。
藍(lán)牙控制器維護(hù)一個信道分類表(Channel Classification Map),將信道分為:
- Good(好):當(dāng)前通信表現(xiàn)穩(wěn)定;
- Bad(差):通信包錯誤率高、干擾嚴(yán)重;
- Unknown(未知):未被使用或未測量;
藍(lán)牙主設(shè)備定期上報這個分類表給從設(shè)備,確保主從設(shè)備使用同一跳頻序列。
(五)藍(lán)牙信道未來發(fā)展
從藍(lán)牙聯(lián)盟官方網(wǎng)站上看,藍(lán)牙是有在規(guī)劃 5 GHz 和 6 GHz 頻段的使用,但是沒有給出明確的推出時間。
規(guī)劃5 GHz 和 6 GHz的目的是:更高的數(shù)據(jù)吞吐量、更低的延遲、更高的定位精度以及更好的共存性。
藍(lán)牙規(guī)范的推出,再到用戶能用的實際產(chǎn)品,中間會有個代差??梢源_定的是,短時間內(nèi)應(yīng)該大家是還看不到 5 GHz 和 6 GHz 藍(lán)牙的應(yīng)用。
結(jié)尾
本章主要介紹了經(jīng)典藍(lán)牙和BLE藍(lán)牙的物理信道,以及它們的調(diào)頻技術(shù)、信道選擇算法。下一章將介紹藍(lán)牙的連接過程。





