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