BLE GAP 協議和 GATT 協議

2022-02-13 23:23:32 字數 851 閱讀 1380

最近要打算學習 blufi 協議進行藍芽配置,其中必然使用 gap 協議和 gatt 協議,於是進行重新學習一番。

ble 是乙個 bluetooth sig 組織頒布的協議,對於使用 ble 我們開發人員,最關注的是 上層的 gap 協議和 gatt 協議。

gatt 尤其關注於資料如何被格式化、打包、然後跟據分發規則去在網路中傳送。屬性協議(att)與gatt緊密相連,那麼gatt 處於 att 的上層,使用 att 去描述資料如何在兩個連線的裝置中交換。

gap 即通用訪問協議,ble裝置可以使用兩種機制與外部世界通訊:廣播或連線。gap 就是用來定義裝置跟裝置之前是用過廣播呢,還是連線去通訊的。

下面 gap 將回答怎麼連線或廣播?連線後 gap 可以做什麼?兩個問題。

乙個裝置通過選擇 gap 中指定的乙個角色去連線到乙個 ble 網路。

廣播:這個過程中,裝置沒有連線。包含廣播者和觀察者兩種角色。

連線:裝置之間必須連線,一般生產環境中更常用。

中心裝置:乙個裝置通過監聽包,去連線乙個外設,乙個中心可以連很多個外設。

中心裝置可以修改連線引數:中心裝置建立一些連線的引數,中心裝置可以更改引數,外設只能通過請求中心裝置去更改引數。

外設或中心裝置可以中止連線:兩者可以主動、或者因為異常而斷開連線。

類似 gap,在這一層協議上,我們有兩種角色:

所以,當我們使用 gap 協議建立了連線,然後就可以使用 gatt 協議進行資料的訪問實現不同的義務功能。

daytime協議和時間協議

有乙個有用的除錯工具就是daytime服務。它的作用就是返回當前時間和日期,格式是字串格式。daytime服務是基於tcp的應用,伺服器在tcp埠13偵聽,一旦有連線建立就返回ascii形式的日期和時間,在傳送完後關閉連線。接收到的資料被忽略。daytime服務也可以使用udp協議,它的埠也是13,...

SLIP協議和PPP協議

slip 協議和ppp協議都是資料鏈路層協議。slip和ppp是序列線上最常用的兩個鏈路層通訊協議,它們為在點對點鏈路上直接相連的兩個裝置之間提供一種傳送資料報的方法。互聯的兩端裝置可以是主機與主機 路由器和路由器 主機和路由器。slip 協議 序列線路網際協議slip serial line in...

SLIP協議和PPP協議

slip協議和ppp協議都是資料鏈路層協議。slip和ppp是序列線上最常用的兩個鏈路層通訊協議,它們為在點對點鏈路上直接相連的兩個裝置之間提供一種傳送資料報的方法。互聯的兩端裝置可以是主機與主機 路由器和路由器 主機和路由器。slip協議 序列線路網際協議slip serial line inte...