什麼是BLE連接?連接即兩個設備之間的鏈結。BLE是一種同步無線電(RF)協議,意味著兩個設備之間的傳輸必須要先被規劃好。BLE連接因此可當作一系列的會面,其中兩個裝置在同一個頻道上進行發送及接收資訊。為了使其正常運作,設備必須達成在哪裡見面(即使用哪個頻率(頻道))以及何時見面的協議。 BLE5-Stack處理連接時序和跳頻。 在下文中將不進一步解釋後者。
但在連接參數的部分,我們將更深入了解時間。
連接皆由兩個裝置所組成。發起連接的裝置稱作主機(Master),回應發起連接設備的裝置稱作從機(Slave)。
主機主導兩個裝置連接期間的時序與跳頻。
鏈結層(Link Layer)是BLE應用程序的一部份,掌握了裝置是否正處於連接狀態。如BLE Scanning and Advertising所述,為了讓藍牙裝置發現彼此,他們必須進行掃描或廣播。當掃描設備發現一個可被連接的廣播設備時,掃描設備可以發起建立連接。
下圖總結了鏈結層的所有狀態:
如BLE Scanning and Advertising所述,藍芽設備在GAP中可以是下列其中一種或多種的角色:廣播者(Boradcaster)、觀察者(Observer)、外圍設備(Peripheral)、中央設備(Central)。
只有外圍設備(Peripheral)和中央設備(Central)能進入連線狀態。因此這兩個角色將是本節的重點。
外圍設備是一個可以廣播以及能以從機的角色進入連接狀態的裝置。
中央設備是一個可以掃描以及能以主機的腳色進入連接狀態的裝置。
如上所述,必須由主機發起連接的初始化,然後由從機接收連接的請求。連接的中斷則是主機或從機都可以發起。
只要兩個設備定期的交換資料,就算是連接在一起。這個資料的交換稱作連接事件(Connection Event),包含裝置間連續的發送和接收資訊。每起連接事件都是由主機先發送,從機先接收,然後再換從機發送,主機接收。
在BT 4.1之前,外圍設備(Peripheral)一次只能連接到一個中央設備(Central)。現在BLE 已經可支援更複雜的拓樸網路,例如:
一個中央設備可連接多個外圍設備的星狀網路;
或是一個外圍設備可與多個中央設備進行連接的網路,網路內的裝置可同時扮演從機和主機(在不同的連接中)而無需切換角色。從機之間無法建立連縣,從機仍然只能與主機進行連接。
BT 的規範中沒有限制裝置的連接數量。而是設備的內存資源決定了設備的最大連接數。使用者可分析工程專案中的Heap 來判斷設備的最大連接數是多少。
更多的資訊可參考:
以上翻譯自TI 官方文件
原文連結: