日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

BG22蓝牙——第三弹 蓝牙的一些入门知识,整理了大佬们的文章和链接

發(fā)布時(shí)間:2023/12/14 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BG22蓝牙——第三弹 蓝牙的一些入门知识,整理了大佬们的文章和链接 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

低功耗藍(lán)牙和經(jīng)典藍(lán)牙概述

低功耗藍(lán)牙和經(jīng)典藍(lán)牙概述 https://www.cnblogs.com/iini/p/8692541.html

為了區(qū)分所謂的低功耗藍(lán)牙和經(jīng)典藍(lán)牙,藍(lán)牙4.0發(fā)布之初,SIG還特意將Bluetooth low engery對(duì)外宣傳為Bluetooth smart,而“Bluetooth”繼續(xù)用來指代經(jīng)典藍(lán)牙,Bluetooth smart ready則用來表示雙模藍(lán)牙(即同時(shí)支持經(jīng)典藍(lán)牙和低功耗藍(lán)牙),所以市面上有很多關(guān)于Bluetooth smart,Bluetooth,Bluetooth smart ready的宣傳材料,但是這些名字不僅沒有起到傳播Bluetooth品牌的作用,還讓眾多消費(fèi)者和開發(fā)者感到混淆,所以后來SIG不再頻繁使用Bluetooth smart等名字,更多的是與藍(lán)牙4.0規(guī)格對(duì)齊,直接使用LE,BR,EDR等名字進(jìn)行宣傳,對(duì)外也不再宣傳低功耗藍(lán)牙和經(jīng)典藍(lán)牙的不同,并將兩者統(tǒng)一到“Bluetooth(藍(lán)牙)”這個(gè)大品牌下面一起宣傳。

深入淺出低功耗藍(lán)牙(BLE)協(xié)議棧 https://www.cnblogs.com/iini/p/8969828.html

如上圖所述,要實(shí)現(xiàn)一個(gè)BLE應(yīng)用,首先需要一個(gè)支持BLE射頻的芯片,然后還需要提供一個(gè)與此芯片配套的BLE協(xié)議棧,最后在協(xié)議棧上開發(fā)自己的應(yīng)用。可以看出BLE協(xié)議棧是連接芯片和應(yīng)用的橋梁,是實(shí)現(xiàn)整個(gè)BLE應(yīng)用的關(guān)鍵。那BLE協(xié)議棧具體包含哪些功能呢?簡(jiǎn)單來說,BLE協(xié)議棧主要用來對(duì)你的應(yīng)用數(shù)據(jù)進(jìn)行層層封包,以生成一個(gè)滿足BLE協(xié)議的空中數(shù)據(jù)包,也就是說,把應(yīng)用數(shù)據(jù)包裹在一系列的幀頭(header)和幀尾(tail)中。具體來說,BLE協(xié)議棧主要由如下幾部分組成:

  • PHY****層(Physical layer物理層)。PHY層用來指定BLE所用的無線頻段,調(diào)制解調(diào)方式和方法等。PHY層做得好不好,直接決定整個(gè)BLE芯片的功耗,靈敏度以及selectivity等射頻指標(biāo)。
  • LL****層(Link Layer鏈路層)。LL層是整個(gè)BLE協(xié)議棧的核心,也是BLE協(xié)議棧的難點(diǎn)和重點(diǎn)。像Nordic的BLE協(xié)議棧能同時(shí)支持20個(gè)link(連接),就是LL層的功勞。LL層要做的事情非常多,比如具體選擇哪個(gè)射頻通道進(jìn)行通信,怎么識(shí)別空中數(shù)據(jù)包,具體在哪個(gè)時(shí)間點(diǎn)把數(shù)據(jù)包發(fā)送出去,怎么保證數(shù)據(jù)的完整性,ACK如何接收,如何進(jìn)行重傳,以及如何對(duì)鏈路進(jìn)行管理和控制等等。LL層只負(fù)責(zé)把數(shù)據(jù)發(fā)出去或者收回來,對(duì)數(shù)據(jù)進(jìn)行怎樣的解析則交給上面的GAP或者GATT。
  • HCI(Host controller interface)。HCI是可選的(具體請(qǐng)參考文章: 三種藍(lán)牙架構(gòu)實(shí)現(xiàn)方案(藍(lán)牙協(xié)議棧方案)),HCI主要用于2顆芯片實(shí)現(xiàn)BLE協(xié)議棧的場(chǎng)合,用來規(guī)范兩者之間的通信協(xié)議和通信命令等。
  • GAP****層(Generic access profile)。GAP是對(duì)LL層payload(有效數(shù)據(jù)包)如何進(jìn)行解析的兩種方式中的一種,而且是最簡(jiǎn)單的那一種。GAP簡(jiǎn)單的對(duì)LL payload進(jìn)行一些規(guī)范和定義,因此GAP能實(shí)現(xiàn)的功能極其有限。GAP目前主要用來進(jìn)行廣播,掃描和發(fā)起連接等。
  • L2CAP****層(Logic link control and adaptation protocol)。L2CAP對(duì)LL進(jìn)行了一次簡(jiǎn)單封裝,LL只關(guān)心傳輸?shù)臄?shù)據(jù)本身,L2CAP就要區(qū)分是加密通道還是普通通道,同時(shí)還要對(duì)連接間隔進(jìn)行管理。
  • SMP(Secure manager protocol)。SMP用來管理BLE連接的加密和安全的,如何保證連接的安全性,同時(shí)不影響用戶的體驗(yàn),這些都是SMP要考慮的工作。
  • ATT(Attribute protocol)。簡(jiǎn)單來說,ATT層用來定義用戶命令及命令操作的數(shù)據(jù),比如讀取某個(gè)數(shù)據(jù)或者寫某個(gè)數(shù)據(jù)。BLE協(xié)議棧中,開發(fā)者接觸最多的就是ATT。BLE引入了attribute概念,用來描述一條一條的數(shù)據(jù)。Attribute除了定義數(shù)據(jù),同時(shí)定義該數(shù)據(jù)可以使用的ATT命令,因此這一層被稱為ATT層。
  • GATT(Generic attribute profile )。GATT用來規(guī)范attribute中的數(shù)據(jù)內(nèi)容,并運(yùn)用group(分組)的概念對(duì)attribute進(jìn)行分類管理。沒有GATT,BLE協(xié)議棧也能跑,但互聯(lián)互通就會(huì)出問題,也正是因?yàn)橛辛薌ATT和各種各樣的應(yīng)用profile,BLE擺脫了ZigBee等無線協(xié)議的兼容性困境,成了出貨量最大的2.4G無線通信產(chǎn)品。

BLE client/server(C/S) 架構(gòu)

BLE采用了client/server (C/S) 架構(gòu)來進(jìn)行數(shù)據(jù)交互,C/S架構(gòu)是一種非常常見的架構(gòu),在我們身邊隨處可見,比如我們經(jīng)常用到的瀏覽器和服務(wù)器也是一種C/S架構(gòu),這其中瀏覽器是客戶端client,服務(wù)器是服務(wù)端server,server比如淘寶服務(wù)器,提供商品信息,廣告,社交等服務(wù),而瀏覽器就是客戶端,比如微軟的IE,就可以用來請(qǐng)求這些服務(wù),并使用server提供的服務(wù)。BLE與此類似,一般而言設(shè)備提供服務(wù),因此設(shè)備是server,手機(jī)使用設(shè)備提供的服務(wù),因此手機(jī)是****client。比如藍(lán)牙體溫計(jì),它可以提供 “體溫” 數(shù)據(jù)服務(wù),因此是一個(gè)server,而手機(jī)則可以請(qǐng)求“體溫”數(shù)據(jù)以顯示在手機(jī)上,因此手機(jī)是一個(gè)client。

服務(wù)是以數(shù)據(jù)為載體的,所以說server提供服務(wù)其實(shí)就是提供各種有價(jià)值的數(shù)據(jù)。

低功耗藍(lán)牙ATT/GATT/Profile/Service/Characteristic規(guī)格解讀:

低功耗藍(lán)牙ATT/GATT/Profile/Service/Characteristic規(guī)格解讀 https://www.cnblogs.com/iini/p/12334646.html

GATT

GATT:https://blog.csdn.net/u013378580/article/details/52891462

GATT(Generic Attribute Profile)通用屬性配置文件,

定義了屬性類型并規(guī)定了如何使用,包括了一個(gè)數(shù)據(jù)傳輸和存儲(chǔ)的框架和一些基本操作。

GATT定義了兩種角色:

? 1) Server:指提供數(shù)據(jù)的設(shè)備。

? 2) Client:指通過GATT的服務(wù)器獲取數(shù)據(jù)的設(shè)備。

GATT使用場(chǎng)景:智能穿戴設(shè)備,手環(huán),汽車,家用電子等。

Profiles

一個(gè)服務(wù)有多個(gè)characteristic組成的,service是一個(gè)獨(dú)立的服務(wù)單元,也可以稱作為profile,比如:心率/HID/體溫/都是標(biāo)準(zhǔn)藍(lán)牙服務(wù)。

在藍(lán)牙程序和對(duì)應(yīng)的app應(yīng)用中總會(huì)涉及Profiles、Services、characteristic。這三個(gè)單詞是一種對(duì)應(yīng)包含的關(guān)系,在Profiles下面有Services,在Services下面有characteristic。

藍(lán)牙Profile?是所有的Bluetooth產(chǎn)品都無須實(shí)現(xiàn)全部 的Bluetooth規(guī)范。為了更容易的保持Bluetooth設(shè)備之間的兼容,Bluetooth規(guī)范中定義了Profile。Profile定義了設(shè)備如何實(shí)現(xiàn)一種連接或者應(yīng)用,你可以把Profile理解為連接層或者應(yīng)用層,也可以將其理解為“應(yīng)用場(chǎng)景、功能、使用方式” 。藍(lán)牙中有很多的Profile, 而且Profile之間也并非平行的關(guān)系,他們是相互依賴組合構(gòu)成的,存在明顯的層級(jí)關(guān)系的。生活中比常見的為A2DP、AVRCP、HSP、HFP、OPP 、GATT等。

藍(lán)牙profile簡(jiǎn)介 https://www.jianshu.com/p/8bed221be010

低功耗藍(lán)牙ATT/GATT/Profile/Service/Characteristic規(guī)格解讀

service

service可以理解為一個(gè)服務(wù),在ble從機(jī)中,通過有多個(gè)服務(wù),例如電量信息服務(wù)、系統(tǒng)信息服務(wù)等,每個(gè)service中又包含多個(gè)characteristic特征值。每個(gè)具體的characteristic特征值才是ble通信的主題。比如當(dāng)前的電量是80%,所以會(huì)通過電量的characteristic特征值存在從機(jī)的profile里,這樣主機(jī)就可以通過這個(gè)characteristic來讀取80%這個(gè)數(shù)據(jù)

Characteristic(特征數(shù)據(jù))

Server是通過characteristic來表示數(shù)據(jù)的,雖然一條數(shù)據(jù)最有價(jià)值的部分是它的值(value),但是僅有

value是不夠的,比如,27 表示27溫度還是27%濕度,同時(shí)每個(gè)value還應(yīng)該有讀寫屬性及權(quán)限屬性,

一個(gè)characteristic包含三種條目:characteristic 聲明,characteristic的值,以及characteristic的描述符(可以多個(gè)描述符)

Characteristic value 就是數(shù)據(jù)值了

總結(jié)

以上是生活随笔為你收集整理的BG22蓝牙——第三弹 蓝牙的一些入门知识,整理了大佬们的文章和链接的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。