1. 程式人生 > >nrf51822 BLE 4.0 低功耗藍芽協議 解析(一)

nrf51822 BLE 4.0 低功耗藍芽協議 解析(一)

參考文件:
《TI 2013研討會藍芽4.0講解部分PPT 20130508.pdf》重點
《TI_BT-LE-TRAINNING.PDF》
《05_BLE Intro.pdf》
BLE: Bluetooth Low Energy

協議棧結構和配置

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

Profile 應該是應用框架的意思。
Profile中文譯名有很多,比如配置檔案,剖面,應用協議,輪廓等,每一種翻譯代表了一種對於profile的不同理解

物理層(PHY)

RF 規格特性
– 執行在 2.4 GHz ISM band 2.4 GHz ISM band 2.4 GHz ISM band 2.4 GHz ISM band
– GFSK 調製方式(高斯頻移鍵控)
– 40 頻道2 MHz 的通道間隙
• 3 個固定的廣播通道
• 37 個自適應自動跳頻資料通道
物理層可以和經典藍芽RF組合成雙模裝置
2 MHz 間隙能更好地防止相鄰頻道的干擾

這裡寫圖片描述
2.4 GHz free ISM band
 1 Mbit/s signalling rate
 GFSK modulation
 Up to 4 dBm maximum transmit power
 40 RF channels
 3 advertising channels reserved for:
 Discover
 Connect
 Broadcast
 37 data channels

BLE:拓撲結構和裝置狀態

BLE 是一種星形拓撲結構:
– 主裝置管理著連線,並且可以連線多個從裝置
– 一個從裝置只能連線一個主裝置
做為一個BLE裝置,有六種可能的狀態:
– 待機狀態(Standby) (Standby) (Standby) (Standby):裝置沒有傳輸和傳送資料,並
且沒有連線到任何裝置
– 廣播狀態(Advertiser) (Advertiser) (Advertiser) (Advertiser):週期性廣播狀態
– 掃描狀態(Scanner) (Scanner) (Scanner) (Scanner):主動地尋找正在廣播的裝置
– 發起連線狀態(Initiator): (Initiator): (Initiator): (Initiator): 主動向某個裝置發起連線
– 主裝置(Master) (Master) (Master) (Master):作為主裝置連線到其他裝置
– 從裝置(Slave) (Slave) (Slave) (Slave) :作為從裝置連線到其他裝置

 Advertising: connectable and non-connectable
 Scanning: active or passive
 Slave: connection role
 Master: connection role
 31 bytes advertising payload size
 27 bytes maximum payload size per packet
 AES-128 built-in encryption
 CCM
 Counter with
 Cipher Block Chaining
 Message Authentication Code

BLE: 廣播事件

廣播包的傳送是單向的,不需要任何連線。
裝置傳送廣播包進入廣播狀態
– 廣播包可以包含特定的資料定義,最大31個位元組
– 廣播包可以直接指向某個特定的裝置,也可以不指定
– 廣播中可以宣告是可被連線的裝置,或者是不可連線的裝置
在一個廣播事件中,廣播包會分別在三個廣播通道中被髮
送一次 (37, 38, 39)

BLE: 廣播間隔

廣播間隔,是兩次廣播事件之間的最小時間間隔
廣播間隔的取值範圍是在 20ms ~ 10.24s 之間
鏈路層會在每次廣播事件期間產生一個隨機廣播
延時時間(0ms and 10ms) (0ms and 10ms) (0ms and 10ms) (0ms and 10ms),這個延時被加在廣播
間隔中,這樣來避免多裝置之間的資料碰撞。

BLE: 掃描事件

每次掃描裝置開啟Radio 接收器去監聽廣
播裝置,稱為一個掃描事件
掃描事件交替發生在三個特定的廣播通道
中: 37, 38, 39 : 37, 38, 39 : 37, 38, 39 : 37, 38, 39
掃描頻寬比 (Duty-Cycle), (Duty-Cycle), (Duty-Cycle), (Duty-Cycle), 關於掃描的兩個
時間引數:
– 掃描間隔: 即掃描裝置的掃描頻度
– 掃描視窗: 每次掃描事件持續的時間

BLE: 發起連線

除了掃描,裝置也可以主動發起連線
發起狀態的裝置和掃描狀態的裝置區別在於:當
它監聽到一個可連線的廣播,發起裝置會發送一
個連線請求,而掃描裝置會發送一個掃描請求
連線請求包括一套為從裝置準備的連線引數,安
排連線事件發生的的通道和時間
如果廣播裝置接收了連線,兩個裝置會進入連線
狀態,發起方會稱為Master ,而廣播方會稱為
Slave

BLE: 連線引數

通道對映-指示連線使用的頻道
跳頻增量-一個5-16之間的隨機,參與通道選擇的
演算法
連線間隔-1.25ms的倍數,7.5ms-4.0s 7.5ms-4.0s 7.5ms-4.0s 7.5ms-4.0s之間
監督超時-10ms的倍數,100ms-32.0s 100ms-32.0s 100ms-32.0s 100ms-32.0s之間,必
須大於
(1 + slaveLatency) (1 + slaveLatency) (1 + slaveLatency) (1 + slaveLatency) * (ConnInterval) (ConnInterval) (ConnInterval) (ConnInterval)
從機潛伏-0-499之間,不能超過
((supervisionTimeout / connInterval) ((supervisionTimeout / connInterval) ((supervisionTimeout / connInterval) ((supervisionTimeout / connInterval) – 1)

BLE: 連線事件

所有的通訊都發生在兩個裝置的連線事件期間
連線事件週期地發生,按照連線引數指定的間隔
每個事件發生在某個資料通道(0-36),跳頻增量引數決
定了下次連線事件發生的通道
在每個連線事件期間,Master 先發送,Slave 會在
150us之後做出迴應
即使一個連線事件發生(或兩者),雙方都沒有資料傳送
(例外情況是從裝置潛伏使能)。這允許兩個裝置都承認
對方仍然存在並保持活躍的連線。

BLE: Slave的潛伏

潛伏:Slave如果沒有資料傳送, 允許跳過連線事件
連線引數中的Slave 的潛伏值,是允許從裝置跳過的最大連線次數
在連線事件中,如果slave 沒有對master 的包做出迴應,master 將
會在後來的連線事件中重複傳送,直到slave迴應
兩個有效的連線事件之間的最大時間跨度(假設slave跳過了最大數目
的連線事件),稱為“有效連線間隔”
從裝置的潛伏值範圍是0-499,但是有效的連線間隔必須小於32.0s

BLE: 連線引數的設定

短間隔的連線事件:
– 兩裝置都會以高能耗執行
– 高資料吞吐量
– 傳送等待時間短
長間隔的連線事件:
– 兩裝置都會以低能耗執行
– 低資料吞吐量
– 傳送等待時間長
低或者0潛伏值:
– 從裝置以高能耗執行
– 從裝置可以快速收到來自中心裝置的資料
高潛伏值:
– 外圍裝置在沒有資料傳送的情況下可以低能耗執行
– 外圍裝置無法及時收到來自中心裝置的資料
– 中心裝置能及時收到來自外圍裝置的資料

BLE: 終止連線

Master 和Slave 都可以主動斷開連線
– 一邊發起斷開,另一邊必須在在斷開連線之前回應這
個斷開請求
監視超時而斷開連線
– 監視超時引數指定了兩個資料包之間的最大時間跨度
– 監視超時時間必須大於有效連線間隔而小於32.0秒
– slave and master slave and master slave and master slave and master雙方都維持著自己的監視超時計時
器,在每次收到資料包時清零。
– 如果連線超時,裝置會認為連線丟失,並且退出連線
狀態,返回廣播,掃描或者待機模式。

相關推薦

nrf51822 BLE 4.0 功耗協議 解析

參考文件: 《TI 2013研討會藍芽4.0講解部分PPT 20130508.pdf》重點 《TI_BT-LE-TRAINNING.PDF》 《05_BLE Intro.pdf》 BLE: Bluetooth Low Energy 協議棧結構和配置

Android開發 BLE4.0功耗

一、BLE4.0低功耗藍芽 Bluetooth Low Energy,藍芽低功耗,是從藍芽4.0開始支援的技術。相較傳統藍芽,傳輸速度更快、覆蓋範圍廣、安全性高、延時短、耗電低等特點。 二、關鍵術語 1.GATT(通用屬性配置):通用屬性配置檔案,用於ble鏈路上傳送和接

學習之旅——功耗之報文廣播報文&資料報文

1.低功耗藍芽規範中,有兩類報文:廣播報文和資料報文。 (1)裝置利用廣播報文發現、連線其它裝置。一旦連線建立之後,則開始使用資料報文。 (2)低功耗藍芽規定了3個廣播通道和37個數據信道。 2.無論是廣播報文還是資料報文,鏈路層只使用一種資料包格式: 注:報文是一位元

Android BLE 學習總結:手機作為周邊BluetoothGattServer的實現

低功耗藍芽的基本概念: 在BLE協議中,有兩個角色,周邊(Periphery)和中央(Central)。周邊是資料的提供者,中央是資料的使用和處理者。在Android SDK裡面,Android4.3以後手機可以作為中央使用;Android5.0以後手機才可以

android BLE詳細講解

本文主要講解Android低功耗藍芽的api使用以及藍芽掃描、連線、傳送資料、接收資料等一系列操作,本篇結尾有本人封裝的BleLib藍芽庫,非常適合藍芽初學者使用,只需要一行程式碼注入就OK了,而且用法也極其簡單,我會在第二篇中專門講解一下BleLib庫的使用。

RFCOMM剖析

                一.概述RFCOMM是一個簡單傳輸協議,其中針對9針RS-232(EIATIA-232-E)串列埠模擬附加了部分條款。RFCOMM協議可支援在兩個BT裝置之間同時保持高達60路的通訊連線。可由BT裝置利用的同時連線數量根據實際應用情況定義二.幀型別RFCOMM不使用TS07.1

無需程式設計,DIY自己智慧小車的Android遙控軟體

 很多熱衷於玩微控制器小車、機器人的童靴,往往也向往著有天能自己編寫一個Android手機的遙控程式,通過自己的手機遙控小車,微控制器程式用C語言或者彙編什麼的都可以容易完成,,無奈要寫一個上位機的Android控制程式就要會java、還要學一點xml知識,對於只學過C

Android開發教程——搜尋裝置

Android藍芽功能的開發一直是很多新手頭疼的問題,網上雖然也有很多教程貼,但大多都寫得不全面,不能讓我們真正掌握藍芽開發的基本知識。本教程主要講解搜尋藍芽裝置、藍芽裝置之間的連線和藍芽之間的通訊三個主要模組。掌握了這三個,基本就能進行簡單的藍芽開發了。

android5.1 子系統介紹Android下bluedroid、bluetooth apk介紹

前言本文件主要介紹android平臺下bluetooth的應用層軟體,先介紹bluetooth應用層的框架,接著分別介紹Bluedroid層軟體、Bluetooth應用程式(Bluetooth.apk),Bluetooth framework層,最後完整分析一些藍芽的操作流程。基於android 5.1的平臺

33---varnish 4.0 工作機制和配置例項解析

這兩天在看varnish,感慨一句,這軟體真不錯!!! ============ 功能&程式包: 首先varnish是反向HTTP代理,是具有強大快取功能的代理,因此也被稱之為web加速器或http加速器。官網對它的描述是不僅是代理,還說它具有web應用防火牆、抵禦

AVDTP 剖析 --- 概述

每個transport session 使用不同的L2CAP Channel。如果使用Multiplexing Service,則一個transport channel上可能有好幾種transport transport,需要AL header 來進行區分。

Hollong 功耗4.0/4.1/4.2 BLE Sniffer協議分析儀

名稱:緯圖Hollong BLE藍芽 監控分析儀 品牌:ViewTool/緯圖 型號:VTH201A 典型應用: - 抓取BLE藍芽傳輸資料,分析資料傳輸協議; - 實時捕獲、顯示、分析、過濾協議資料,減少除錯時間,加速產品進入市場; - 協助開發除錯BLE相關

android 4.0 ble 功耗

一:概述 這段時間做了藍芽4.0的專案,就是一個藍芽裝置控制手機進行拍照。並且有很多按鍵,不同的按鍵對應到手機上有不同的功能,並且組合起來也有不同的功能。 低功耗藍芽有中央裝置後周邊裝置的概念手機就是一箇中央裝置,像我這次試用的一個控制器, 我試過小

Android開發之功耗(4.0)開發全記錄

主要內容概況 前面我記錄了開發藍芽2.0的過程,今天準備介紹現在的主流藍芽技術,藍芽4.0的開發,該藍芽技術是在Android4.3(API級別18)版本引入的API。 官方文件 具體的區別主要以下幾點: 1.新的藍芽技術提供了連線服務的方法,以前是沒有提供連線藍芽的方法

功耗4.0BLE程式設計-nrf51822開發(6)-Battery Service

    Battery Service是有關電池特性方面的服務,如果需要它,在初始化時將它加入到藍芽協議棧。     如果通過ble_bas_battery_level_update(),電池電量將會通知,Battery Service將傳送事件到應用程式。 (1)Batt

分鐘讀懂功耗(BLE)MTU交換資料包

1.概述  * MTU: 最大傳輸單元(MAXIMUM TRANSMISSION UNIT) , 指在一個PDU (Protocol Data Unit: 協議資料單元,在一個傳輸單元中的有效傳輸數據)能夠傳輸的最大資料量(多少位元組可以一次性傳輸到對方)。  

分鐘讀懂功耗BLE)連線資料包

一分鐘讀懂低功耗藍芽(BLE)連線資料包1.概述   BLE 連線過程中有三個重要的資料包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ。   SCAN_REQ: 掃描請求,由主裝置(MASTER DEVICE)向從裝置(SLAVE DEV

分鐘讀懂功耗BLE)廣播資料包

一分鐘讀懂低功耗藍芽(BLE)廣播資料包 低功耗藍芽 =》 BLE (Bluetooth Low Energy) 1. 怎樣抓取BLE廣播資料包    * 硬體:一個BLE裝置(具有廣播功能);          一臺H

TI功耗BLE介紹

轉載自:http://www.cnblogs.com/cainiaoaixuexi/archive/2013/11/08/3414433.html 本文件翻譯和修改自參考資料:CC2540Bluetooth Low Energy Software Developer’s Guide (Rev.

功耗BLE和ZigBee在物聯網應用中的區別

 隨著低功耗、廣域網(LPWAN)市場的擴大,物聯網(IoT)應用的低功耗協議有了更多的選擇。在本文中,我們將藍芽和藍芽低能耗(BLE)與ZigBee進行比較,這樣您就可以更好地瞭解在連線裝置上使用哪種無線協議。  簡單來說,藍芽是近場通訊,ZigBee是區域網,更深入的區別繼續看下文。