24小時聯系電話:18217114652、13661815404
中文
技術專題
了解藍牙技術的可靠性
了解藍牙技術的可靠性
與其他無線通信技術一樣,藍牙也使用無線電。但無線電作為編碼和傳輸數據的媒介并不可靠,因為存在各種挑戰。因此,不僅僅是藍牙,任何建立在物理層無線電基礎上的通信技術都必須應對一系列基本問題。但是,通過正確的堆棧設計和各個層中的正確流程,可以建立高度可靠的無線電通信。
圖 1:在通道 2 上發生沖突
簡而言之,當傳輸的數據等于接收的數據并且與該數據相關的任何預期操作按預期發生時,就會發生可靠的藍牙通信。然而,在現實世界中,有時可能會有更細微的定義,這取決于所涉及的不同可靠性參數。例如:
容錯能力
99.9999% 的成功率可能被認為是可靠的。
潛伏
要在數據傳輸的 500 毫秒內觀察到預期的動作,需要低系統延遲。
交易
一系列更新,其中要么成功應用所有更改,要么不進行任何更改。
彈力
即使在某些組件面臨故障/惡化之后,系統也能成功處理操作。
圖 2:不同步通信中丟失的數據包
對基于無線電的技術的挑戰
無線電通信發生在無線電頻譜的信道內。如果兩個設備同時在同一信道上傳輸,它們會相互破壞——導致數據丟失。這稱為碰撞。其發生的概率由重復發生的次數和傳播所用的時間決定。除此之外,還有傳輸速度和數據包大小。
圖 3:能量隨距離減少
眾所周知,藍牙使用2.4GHz頻段,也稱為ISM。Wi-Fi、ZigBee 和 DECT 電話也可以使用此頻段。
藍牙設備中的無線電通常是半雙工的,即它們可以同時發送和接收。以設備A在信道上將數據包傳輸到設備B的場景為例。
對于接收,設備 B 必須同時在正確的頻道上主動收聽。如果它沒有在偵聽,或者在不同的通道上,則不會收到數據包。設備花費在偵聽上的時間比例稱為 Rx 占空比。不要忘記,一個設備一次只能收聽一個頻道。
信號強度也有巨大的影響。當信號強度較低時(因為它相對接近背景噪聲),一個人可能會遇到更多錯誤。藍牙核心規范規定允許高達 0.1% 的誤碼率 (BER)。除此之外的任何事情都是不可接受的。
無線電可以保持在此限制內的信號強度稱為其接收器靈敏度。因此,如果您是產品設計師,選擇具有良好接收器靈敏度的收音機很重要。
堆棧實現通常包括幾個用于臨時數據包存儲的緩沖區。如果數據包到達緩沖區的速率在足夠長的時間內超過數據包消耗的速率,緩沖區將開始溢出并丟失數據。
GFSK 應對的可靠性挑戰
無線電信號特性用于表示數字數據的方式稱為調制方案。與基于幅度的方案相比,基于頻率的方案往往更不易受噪聲干擾。
圖 4:GFSK 上移或下移中心載頻以表示 1 或 0
藍牙使用一種特殊的基于頻率的調制方案,稱為高斯頻移鍵控 (GFSK)。它通過向上或向下移動中心載波頻率來表示 1 或 0。
但是頻率的突然變化會產生噪音。因此,GFSK 增加了一個濾波器,使頻率過渡平滑且噪聲較小。GFSK 是一個很好的基礎平臺,您可以在此基礎上進行無線通信。
藍牙數據包字段
藍牙數據包具有各種字段。開頭是前導碼,它有 8 位長,包含 1 和 0 的交替模式。它用于查找精確的發射機頻率并設置無線電的增益控制。
圖 5:藍牙數據包中的字段
訪問地址為 32 位長,包含一個特殊值,這意味著數據包可以被任何藍牙設備或特定連接的唯一標識符接收。由于藍牙控制器將接收相關和不相關的信號,因此它必須能夠區分并準確地挑選出相關的信號。
在遠端,有循環冗余校驗 (CRC),可檢測傳輸數據是否因沖突而被無意更改或損壞。它是通過將發送器計算的 CRC 與接收器計算的 CRC 進行比較來執行的。如果它們不相同,則一定發生了損壞,并且數據包被丟棄。
消息完整性代碼 (MIC),也稱為消息身份驗證代碼 (MAC),是一種安全功能,可幫助檢測故意篡改的數據(而不是意外通過沖突)。
錯誤修正
堆棧的物理層 (PHY) 有一個變體,稱為 LE 編碼 PHY,它允許藍牙不僅可以檢測錯誤,還可以在特定限制的數據包中糾正錯誤。這有助于以低信噪比 (SNR) 進行通信。
離發射機越遠,信號強度越低,SNR 會變得更糟,從而更難保持低誤碼率。但是通過前向糾錯 (FEC),您可以在低 SNR 下工作,因此在更遠的范圍內仍然可靠。
擴頻
藍牙解決可靠性挑戰的重要方式之一是通過采用擴頻技術的各種方式。因此,不是對所有數據包使用單個通道,而是通過一組不同的通道傳輸它們,從而最大限度地減少沖突的可能性。
可靠地處理藍牙通信
在連接時,設備會就某些通信參數達成一致,其中包括一些與時間相關的參數,例如無線電用于服務此連接的頻率。無線電必須可能在許多不同的連接之間共享。此特定參數稱為連接間隔。
在連接間隔開始時,設備輪流發送和接收數據包之間的間隔為 150 微秒??刂七B接的精確、商定的定時參數提供了兩個設備的發送和接收行為之間的協調,并使通信可靠。
面向連接的通信
面向連接的通信中的擴頻如下所示:藍牙 LE 將 2.4GHz 頻段劃分為 40 個通道,每個通道寬度為 2MHz。其中三個用于廣告(專用于無連接通信)。其他 37 個在兩個連接的設備通信時使用。
圖 6:2.4GHz 頻段劃分為 40×2MHz 信道
圖 7:連接使用和無線電共享的簡化說明
在每個連接事件中,使用的信道隨機改變。因此,通過這種方式,數據包傳輸在 ISM 頻段周圍散布。此外,系統會記錄任何不良信道(由于 CRC 故障或頻譜干擾)并將其刪除。因此,即使當 ISM 頻帶的一部分飽和時,也能確保有效的通信。這整個行為被稱為自適應跳頻 (AFH)。AFH 顯著降低了沖突的可能性,并使藍牙設備即使在非常困難的無線電環境中也能正常運行。
圖 8:自適應跳頻跨信道分配通信
如前所述,信號強度會極大地影響可靠性,而 FEC 是用于解決此問題的技術之一。但是,另外請注意,當接收信號的電平保持在某個范圍(稱為黃金范圍)內時,無線電接收器的工作效果最佳。有一項稱為 LE 功率控制的藍牙功能,它允許連接的設備請求動態更改傳輸功率級別,以便接收信號強度保持在此黃金范圍內。當設備之間的距離在正常使用過程中發生變化時,這尤其有用。
避免緩沖區溢出
為了緩解緩沖區溢出的可靠性挑戰,必須管理數據包的流量。這可以使用稱為流量控制的技術來完成,該技術用于許多不同的通信技術。
圖 9:流量控制
堆棧的低功耗藍牙 L2CAP 層在需要時應用流量控制,并支持各種不同的流量控制模式。例如,如果您在堆棧頂部使用增強屬性協議,那么它使用 L2CAP 層內的基于增強信用的流控制模式,允許接收設備與發送設備通信其當前接收數據包的能力。如果它為零,則接收器的緩沖區已滿,發送器將在再次恢復數據包傳輸之前等待。
圖 10:流量控制技術
因此,它是一種動態流量控制策略,可以防止緩沖區溢出。
用于無連接通信的低功耗藍牙可靠性
在藍牙中,無連接通信稱為廣告。在基本情況下,每個數據包的副本以隨機頻道順序在每個頻道上廣播。它們的時間間隔完全由廣播設備控制,與發射機沒有任何協調。還有另一種廣告形式,稱為擴展廣告,它使用所有 40 個藍牙 LE 通道。
在基本廣告中使用三個信道不如在連接中使用自適應跳頻那么復雜。但是廣告渠道被故意放置得很遠,以便在某一部分的干擾不會完全阻止通信。
基本廣告以定義的時間間隔發生,但它包括在長達 10 毫秒的數據包傳輸調度中的一些隨機時間變化。這是為了避免與碰巧在同一時間表上傳輸或廣告的附近設備發生持續沖突。
藍牙無連接通信不會嘗試協調廣告設備的活動與接收設備的活動。但是,有一種特殊的廣告模式叫做定期廣告,它使廣告的時間完全確定和精確。
圖 11:定期廣告
并且掃描設備還可以發現廣播設備的周期性廣告時間表,以便它們可以與其精確同步其掃描活動。
這樣,與基本的廣告形式相比,設備可以更可靠、更有效地接收廣播數據。
藍牙網狀網絡
藍牙網狀網絡允許創建大型網絡,擁有數以萬計的設備。這是一種使用藍牙 LE 的特殊方式,其中網狀堆棧位于藍牙 LE 控制器的頂部。
藍牙網格定義了承載,它提供了使用藍牙 LE 控制器進行網格消息通信的不同方式。并且承載為無連接和面向連接的通信提供支持。
解決藍牙網狀網絡問題
Mesh 節點可以配置為以定義的時間間隔自動重傳消息,以便快速重傳多個副本。因此,當您發送多個副本時,郵件丟失的可能性會急劇下降。如果您想確保所有接收設備同時處理消息(即使它們沒有收到相同的副本),也可以通過使用延遲參數來實現,該參數在許多網格消息中可用類型。
圖 12 顯示了以 50ms 的間隔發送 3 次的消息。在這里,第一個副本的延遲參數為 100 毫秒,并且被六個目標燈中的四個接收到。
圖 12:以 50 毫秒為間隔發送 3 次消息
圖 13 顯示了第二個副本在 50 毫秒后發送,并由六個燈中的第 5 個接收。
圖 13:第二個副本在 50 毫秒后發送,并被六個燈中的第 5 個接收
然后最終副本沒有指定延遲(圖 14)。它由六個燈中的第二個接收。然后所有六個節點一致執行請求的狀態更改,恰好是在按下電燈開關后 100 毫秒。這避免了所謂的爆米花效應,即燈光不會同時亮起。
圖 14:最終副本沒有指定延遲
藍牙網狀多路徑傳送
藍牙網狀網絡的常見網絡設計策略是通過在您的節點子集中啟用中繼功能,在整個網絡中構建多條冗余路徑(圖 15)。然后,當您發送消息時,原則上所有這些路徑都可用。在實踐中,如果由于節點的占空比而導致一條路徑不可用,則有可能其他路徑之一可用,并且您傳輸的消息將到達路徑末端的目的地。
圖 15:跨網絡的多條冗余路徑