日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BG22蓝牙——第三弹 蓝牙的一些入门知识,整理了大佬们的文章和链接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

低功耗藍牙和經典藍牙概述

低功耗藍牙和經典藍牙概述 https://www.cnblogs.com/iini/p/8692541.html

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

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

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

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

BLE client/server(C/S) 架構

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

服務是以數據為載體的,所以說server提供服務其實就是提供各種有價值的數據。

低功耗藍牙ATT/GATT/Profile/Service/Characteristic規格解讀:

低功耗藍牙ATT/GATT/Profile/Service/Characteristic規格解讀 https://www.cnblogs.com/iini/p/12334646.html

GATT

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

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

定義了屬性類型并規定了如何使用,包括了一個數據傳輸和存儲的框架和一些基本操作。

GATT定義了兩種角色:

? 1) Server:指提供數據的設備。

? 2) Client:指通過GATT的服務器獲取數據的設備。

GATT使用場景:智能穿戴設備,手環,汽車,家用電子等。

Profiles

一個服務有多個characteristic組成的,service是一個獨立的服務單元,也可以稱作為profile,比如:心率/HID/體溫/都是標準藍牙服務。

在藍牙程序和對應的app應用中總會涉及Profiles、Services、characteristic。這三個單詞是一種對應包含的關系,在Profiles下面有Services,在Services下面有characteristic。

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

藍牙profile簡介 https://www.jianshu.com/p/8bed221be010

低功耗藍牙ATT/GATT/Profile/Service/Characteristic規格解讀

service

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

Characteristic(特征數據)

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

value是不夠的,比如,27 表示27溫度還是27%濕度,同時每個value還應該有讀寫屬性及權限屬性,

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

Characteristic value 就是數據值了

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。