BLE简介及连接过程
BLE技術是BluetoothSIG規定的一套通信協議,在協議變成具體的代碼之前,都只存在文檔中,TI、Nordic、CSR等廠商,根據SIG發布的BLE技術協議,配合自身的芯片開發了一整套源碼,并且這套源碼經過了SIG的測試,服務BLE協議。這套源碼就叫做協議棧,協議棧是協議的實現。不同的芯片廠商都有各自的協議棧,而這不同的協議棧,BluetoothSIG是不允許廠商開源的,所以,無論是TI的或者NORDIC的BLE芯片資料中協議棧都是做成庫的形式提供,只開放部分的API層,但實際對我們開發終端產品來說足以。
BLE協議棧的構成
控制器部分(Controller):
物理層(PHY):RF特性,運行在2.4GHz ISM band,40頻道2MHz的通道間隙,3個廣播通道,37個自適應自動調頻通道;
?
鏈路層(LL):RF控制層,控制芯片工作在
???????? Standby ?????????? 準備
???????? Advertising ??? 廣播
???????? Scanning?????????? 監聽
???????? Initiating?????????? 發起連接
???????? Connected ???? 已連接
???????? 這五個狀態中的一種;
?
控制接口層(HCI):通信層,在Host和Controller之間提供一個標準化的接口,該層可以由軟件api實現或者使用硬件接口uart,spi,usb來控制;
?
主機部分(Host):
?????????邏輯鏈路控制及自適應協議層(L2CAP):相當于快遞,將數據打包;
?????????安全管理層(SM層):安全服務層,提供配對和秘鑰的分發,實現安全連接和數據交換;
?????????屬性協議層(ATT):允許設備向另外一個設備展示一塊特定的數據,稱之為“屬性”,展示“屬性”的設備稱為服務器,與之配對的設備成為客戶端;鏈路層狀態(主機從機)與設備的ATT角色是相互獨立的;
?????????通用訪問配置文件層(GAP):
?????????通用屬性配置文件層(GATT):定義了使用ATT的服務框架,規定了配置文件profile的結構;
BLE廣播事件:
???????? 在一個廣播事件中,廣播包會分別在三個廣播通道中被發送一次(37,38,39);
?
BLE廣播間隔:
???????? 是指兩次廣播事件之間的最小時間間隔,一般取值范圍在20ms-10.24S之間,鏈路層會在每次廣播時間期間產生一個隨機廣播延時時間(0ms-10ms)
????????
BLE掃描事件:
???????? 每次掃描設備打開Radio接收器去監聽廣播設備,這樣稱為一個掃描事件,
掃描頻寬比,Duty-Cycle,參數:
???????? ???????? 掃描時間:掃描設備的掃描頻度;
???????? ???????? 掃描窗口:每次掃描事件持續的時間;
?
BLE發起連接:
???????? 發送一個連接請求,連接請求包括一套為從設備準備的連接參數,安排連接期間發生的通道和時間。如果廣播設備接收了連接,兩個設備會進入連接狀態,發起方會稱為Master(主機),而廣播方會稱為Slave(從機)。
?
BLE連接參數:
???????? 通道映射,指示連接使用的頻道。
調頻增量,一個5~16之間的隨機,參與通道選擇的算法。
連接間隔,1.25ms的倍數,在7.5ms~4s之間。
監督超時,10ms的倍數,100ms~32s之間,必須大于(1+slaveLatency)*ConnInterval
從機潛伏,允許設備跳過的最大連接次數,0~499之間,有效的連接間隔必須小于32s,不能超過(SupervisionTimeout/connInterval)-1
?
BLE連接事件:
所有的通信都發生在兩個設備的連接事件期間;
連接事件周期的發生,按照連接參數指定的間隔聯系???? (連接間隔)
每個事件發生在某個數據通道(0~36)???????????????????????????????? (通道映射)??????????????????
調頻增量參數決定了下次連接時間發生的通道?????????????????? (調頻增量)
在每個連接時間期間,Master先發送,Slave會在150us之后做出回應,即使一個連接事件發生(或兩者),雙方都沒有數據發送(例外情況是從設備潛伏使能),這允許兩個設備都承認對方仍然存在并保持活躍的連接;
?
從機的潛伏:
潛伏,Slave如果沒有數據發送,允許跳過連接事件。
?
連接參數的設定:
☆短間隔的連接事件:
-兩設備都會以高能耗運行
-高數據吞吐量
-發送等待時間短
☆長間隔的連接事件:
-兩設備都會以低能耗運行
-低數據吞吐量
-發送等待時間長
☆低或者0潛伏值:
-從設備以高能耗運行
-從設備可以快速的收到來自中心設備的數據
☆高潛伏值:
-外圍設備在沒有數據發送的情況下可以低能耗運行
-外圍設備無法及時收到來自中心設備的數據
-中心設備能及時收到來自外圍設備的數據
?
終止連接:
監視超時參數都指定了兩個數據包之間的最大時間跨度。監視超時時間必須大于有效連接間隔而小于32s。Slave和master雙方都維持著自己的監視超時計時器,在每次收到數據包時清零。如果連接超時,設備會認為連接丟失,并且退出連接狀態,返回廣播、掃描或者待機模式。
總結
以上是生活随笔為你收集整理的BLE简介及连接过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AB1601定时器timer0,time
- 下一篇: TI-BLE协议栈的GAP