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





