• 正文
    • 藍(lán)牙發(fā)展史
    • 藍(lán)牙和 BLE 區(qū)別
    • BLE 藍(lán)牙模塊主要應(yīng)用領(lǐng)域
    • BLE 數(shù)據(jù)通訊
    • To do
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

BLE中這些概念你都了解嗎

2021/01/07
328
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

上一篇網(wǎng)文我們使用 Android 手機(jī)上的藍(lán)牙調(diào)試助手與 TB-02-kit 模塊進(jìn)行了數(shù)據(jù)通訊,很多人可能對(duì)其中很多概念不是很了解,今天我們就來梳理一下整個(gè)數(shù)據(jù)通訊過程和其中涉及到的一些概念,有理解不到位的地方歡迎留言處指出。

 

藍(lán)牙發(fā)展史

藍(lán)牙發(fā)展史

藍(lán)牙和 BLE 區(qū)別

藍(lán)牙是一種短距離的 2.4 GHz 無線通訊技術(shù),可實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)交換。

一般將藍(lán)牙 3.0 之前的 BR/EDR 藍(lán)牙稱為傳統(tǒng)藍(lán)牙(經(jīng)典藍(lán)牙 BT:BlueTooth),而將藍(lán)牙 4.0 規(guī)范下的 LE 藍(lán)牙稱為低功耗藍(lán)牙。

低功耗藍(lán)牙是在傳統(tǒng)藍(lán)牙的基礎(chǔ)上發(fā)展而來的。

BLE 技術(shù)采用非??焖俚倪B接方式,因此可以處于“非連接”狀態(tài)(節(jié)省能源),此時(shí)鏈路兩端相互間只是知曉對(duì)方,只有在必要時(shí)才開啟鏈路,然后在盡可能短的時(shí)間內(nèi)關(guān)閉鏈路——這樣設(shè)計(jì)的目的就是為了低功耗。

BLE 優(yōu)點(diǎn):搜索速度快、連接速度快、超低功耗保持連接和傳輸數(shù)據(jù),缺點(diǎn)是,傳輸速率略低。

BLE 藍(lán)牙模塊主要應(yīng)用領(lǐng)域

1、移動(dòng)擴(kuò)展設(shè)備 

2、汽車電子設(shè)備 

3、健康醫(yī)療用品:心跳帶、血壓計(jì)等 

4、定位應(yīng)用:室內(nèi)定位、井下定位等 

5、近距離數(shù)據(jù)采集無線抄表、無線遙測(cè)等 

6、數(shù)據(jù)傳輸智能家居室內(nèi)控制、藍(lán)牙調(diào)光、打印機(jī)等

BLE 數(shù)據(jù)通訊

一個(gè) Gatt 包含多個(gè)服務(wù)(Service);一個(gè)服務(wù)包含多個(gè)特征(Characteristic);一個(gè)特征包含多個(gè)描述符;

反過來可以說,一個(gè)描述符對(duì)應(yīng)一個(gè)特征;一個(gè)特征對(duì)應(yīng)一個(gè)服務(wù);一個(gè)服務(wù)對(duì)應(yīng)一個(gè) Gatt。

Service、Characteristic、Descriptor,這三部分都由 UUID 作為唯一標(biāo)示符。

如上圖所示,在我們之前使用的BLE 調(diào)試寶軟件中,我們可以看到,圖中所示的前三個(gè)服務(wù)就是 BLE 必需的三個(gè)基本服務(wù):

#define GAP_SERVICE_UUID    0x1800 // Generic Access Profile 
#define GATT_SERVICE_UUID   0x1801 // Generic Attribute Profile
#define DEVINFO_SERV_UUID  0x180A // Device Information

一般來說,剩下的一個(gè)服務(wù)就是與 BLE 模塊進(jìn)行數(shù)據(jù)通訊的 Service ,而 Service 中的 Characteristic 是手機(jī)與 BLE 終端交換數(shù)據(jù)的關(guān)鍵。

所以我們上文數(shù)據(jù)通訊的操作都是在與Unknown Characteristic 進(jìn)行的數(shù)據(jù)通訊。

為什么會(huì)定義這么多名詞呢?

藍(lán)牙連接成功之后,數(shù)據(jù)的傳輸是對(duì)特征值(Characteristic)這個(gè)參數(shù)進(jìn)行讀,寫,通知等操作;

為了方便管理,我們可能有不止一個(gè)特征值,我們可以根據(jù)需要?jiǎng)?chuàng)建多個(gè)特征值,比如一個(gè)特征值用于記錄環(huán)境濕度的值,一個(gè)特征值用于記錄設(shè)備的溫度值,等等。

我們也可以對(duì)這些特征值進(jìn)行歸類,每一類就相當(dāng)于一個(gè)服務(wù)(Service),一個(gè)設(shè)備可以有多個(gè)服務(wù),每個(gè)服務(wù)可以包含多個(gè)特征值。

為了說明方便,每個(gè)特征值都有他的屬性,所以我們還會(huì)見到其他一些名詞,例如:權(quán)限(permission),值(value),描述(descriptor)等。

To do

下一篇網(wǎng)文,我們就使用 Qt 開發(fā)一個(gè) Android 系統(tǒng)下的 BLE 調(diào)試軟件,實(shí)現(xiàn)與藍(lán)牙模塊的數(shù)據(jù)收發(fā),實(shí)際上就是實(shí)現(xiàn)與下面 UUID 的Unknown ServiceUnknown Characteristic 進(jìn)行數(shù)據(jù)的讀寫操作。

static const QLatin1String serviceUuid("{00010203-0405-0607-0809-0a0b0c0d1910}");

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號(hào)『嵌入式從0到1』,號(hào)主:程序員小哈,是一個(gè)軟硬件全棧開發(fā)工程師(12年工作經(jīng)驗(yàn)的老司機(jī)),電子發(fā)燒友論壇鴻蒙版塊版主,公眾號(hào)內(nèi)容專注于嵌入式學(xué)習(xí)。堅(jiān)持原創(chuàng),寫有圖、有視頻的保姆級(jí)教程文章,篇篇有干貨。做一個(gè)講清楚,說明白,大家學(xué)得會(huì)的交流平臺(tái)。