久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2713|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

低功耗藍(lán)牙之GAP、GATT

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:409908 發(fā)表于 2018-10-15 17:40 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
   本篇主要介紹一下關(guān)于BLE開發(fā)過程中必須了解的兩個協(xié)議:GAP(通用訪問協(xié)議)、GATT(通用屬性協(xié)議)。兩個協(xié)議都隸屬于Host層,直接關(guān)系到應(yīng)用層開發(fā),與BLE開發(fā)人員的關(guān)系比較密切,其分別負(fù)責(zé)連接前數(shù)據(jù)廣播和連接后的數(shù)據(jù)傳輸。

二、平臺

Software Version:BLE_STACK_CC26XX_2.1.0

Hardware Version:CC2640/CC2650

IDE:IAR 7.40

三、GAP

    1、藍(lán)牙低能耗技術(shù)“完成”一次連接(即掃描其它設(shè)備、建立鏈路、發(fā)送數(shù)據(jù)、認(rèn)證和適當(dāng)?shù)亟Y(jié)束)只需3ms。而標(biāo)準(zhǔn)藍(lán)牙技術(shù)完成相同的連接周期需要數(shù)百毫秒。

    GAP層有4種不同類型的廣播:通用的、定向的、不可連接的以及可發(fā)現(xiàn)的。

    設(shè)備每次廣播時,會在3個廣播信道上發(fā)送相同的報(bào)文。這些報(bào)文被稱為一個廣播事件。除了定向報(bào)文以外,其他廣播事件均可以選擇20ms - 10.28s不等的間隔。通常,一個廣播中的設(shè)備會每一秒廣播一次。廣播事件之間的時間稱為廣播間隔。主機(jī)可以控制該間隔。但是,設(shè)備周期性的發(fā)送廣播會有一個問題:由于設(shè)備間的時鐘會不同程度的漂移,兩個設(shè)備可能在很長一段時間同時廣播而造成千擾。為防止選一情況的發(fā)生,在上一次廣播事件發(fā)生后加入隨機(jī)延時。它們發(fā)送下一個廣播事件時也很可能不再沖突。

    通用廣播:通用廣播是用途最廣的廣播方式。進(jìn)行通用廣播的設(shè)備能夠被掃描設(shè)備掃描到,或者在接收到連接請求時作為從設(shè)備進(jìn)入一個連接。通用廣播可以在沒有連接的情況下發(fā)出,換句話說,沒有主從設(shè)備之分。

    定向廣播:有時候,設(shè)備間需要快速建立連接。如果從設(shè)備想這么做,就需要進(jìn)行廣播。定向廣播事件就是為了盡可能快的建立連接。這種報(bào)文包含兩個地址:廣播者的地址和發(fā)起者的地址。發(fā)起設(shè)備收到發(fā)紿自己的定向廣播報(bào)文后,可以立即發(fā)送連接請求作為回應(yīng)。

    不可連接廣播:不想被連接的設(shè)備使用不可連接廣播事件。這種廣播的典型應(yīng)用包括設(shè)備只想廣播數(shù)據(jù),而不想被掃描或者連接。速也是唯一可用于只有發(fā)射機(jī)而沒有接收機(jī)設(shè)備的廣播類型。不可連接廣播設(shè)備不會進(jìn)入連接態(tài),因此,它只能根據(jù)主機(jī)的要求在廣播態(tài)和就緒態(tài)之間切換。

    可發(fā)現(xiàn)廣播:最后一種廣播事件是可發(fā)現(xiàn)廣播。這種廣播不能用于發(fā)起連接,但允許其他設(shè)備掃描該廣播設(shè)備。這意味著該設(shè)備可以被發(fā)現(xiàn),既可以廣播數(shù)據(jù),又可以響應(yīng)掃描,但不能建立連接。這是一種適用于廣播數(shù)據(jù)的廣播形式,動態(tài)數(shù)據(jù)可以包含于廣播數(shù)據(jù)之中,而靜態(tài)數(shù)據(jù)可以包含于掃描響應(yīng)數(shù)據(jù)之中。可發(fā)現(xiàn)廣播不會進(jìn)入連接態(tài),而只能在停止后回到就緒態(tài)。

    如上面所述,BLE設(shè)備可以進(jìn)行廣播。但是,一個廣播設(shè)備必須在廣播中包含一些有用的數(shù)據(jù)。這意味著可以通過4種廣播事件中的3種進(jìn)行廣播:通用廣播、不可連接廣播以及可發(fā)現(xiàn)廣播。進(jìn)行廣播時,需要在廣播報(bào)文中給數(shù)據(jù)打上標(biāo)簽。之所以要這么做,是因?yàn)椴⒎撬性O(shè)備都能理解所有可能的廣播數(shù)據(jù)。因此,需要給廣播數(shù)據(jù)打上標(biāo)簽并指出其長度。每個數(shù)據(jù)片段均起始于一個長度域,用以指示后面的類型及數(shù)據(jù)域的長度;接下來是類型域,接收機(jī)可根據(jù)其內(nèi)容判斷自己是否能夠理解后面的數(shù)據(jù)。


四、GATT

    通用屬性配置文件(GATT)在屬性協(xié)議(ATT)的基礎(chǔ)上構(gòu)建,為屬性協(xié)議傳輸和存儲數(shù)據(jù)建立了一些通用操作和框架。

1)GATT定義了兩個角色:服務(wù)器和客戶端。

    GATT的角色并不一定與特定的GAP角色有關(guān)聯(lián),但可能由更高層級的配置文件指定。GATT和ATT不是傳輸專用,也可以用于BR/EDR和低耗能。但是,由于GATT和ATT用作發(fā)現(xiàn)服務(wù),故必須在低耗能技術(shù)中實(shí)施。GATT服務(wù)器存儲通過屬性協(xié)議傳輸?shù)臄?shù)據(jù),并接受GATT客戶端發(fā)出的屬性協(xié)議請求、指令及確認(rèn)。GATT服務(wù)器發(fā)送請求回復(fù),而如果在配置時GATT服務(wù)器發(fā)生特定事件,則會向GATT客戶端異步發(fā)送指示和通知。GATT還指定GATT服務(wù)器中所載的數(shù)據(jù)格式。

    屬性在當(dāng)經(jīng)由屬性協(xié)議傳輸時,會被格式化為相關(guān)的服務(wù)和特性。服務(wù)可能包括許多特征。特征包括單一值和許多描述特征值的描述符。

憑借經(jīng)定義的服務(wù)、特征和特征描述符架構(gòu),并非配置文件特定的GATT客戶端仍然可以遍歷GATT服務(wù)器,并向用戶顯示特征值。特征描述符可用于顯示特征值的描述符,從而可讓用戶了解該值。

2)GATT配置文件層級

    GATT配置文件規(guī)格規(guī)定了交換配置文件數(shù)據(jù)的架構(gòu)。此架構(gòu)定義了配置文件所用的基本元素,例如服務(wù)和特征。

該層級的最高層是配置文件(profile)。配置文件由實(shí)現(xiàn)用例所需的一個或多個服務(wù)組成。服務(wù)由特征或有關(guān)其它服務(wù)的引用組成。每一個特征包括一個值,還可能包括有關(guān)該值的可選信息。服務(wù)、特征以及特征的組件(即特征值和特征描述符)構(gòu)成了配置文件數(shù)據(jù),并全部存儲在服務(wù)器的屬性中。

3)服務(wù)

    服務(wù)是數(shù)據(jù)和完成設(shè)備或設(shè)備的某些部分的特定功能或特征的相關(guān)行為的集合。服務(wù)可能涉及其它主要或次要服務(wù)和/或構(gòu)成該服務(wù)的特征集合。

服務(wù)分為兩種類型:主要服務(wù)和次要服務(wù)。主要服務(wù)提供設(shè)備的主要功能。次要服務(wù)提供設(shè)備的輔助功能,引用自該設(shè)備至少一項(xiàng)主要服務(wù)。

為了令早前的客戶端保持向后兼容性,服務(wù)定義的其后修訂僅可增加新引用的服務(wù)或可選特征。服務(wù)定義的其后修訂也不得改變該服務(wù)定義先前修訂的特征。

服務(wù)可能用于一個或多個配置文件,以實(shí)現(xiàn)特定用例。

4)特征

    特征,連同屬性和有關(guān)如何訪問該值的配置信息以及有關(guān)如何顯示或表述該值的信息,是用于服務(wù)的值。特征定義包含特征聲明、特征屬性和值。它還可能包含描述該值或允許服務(wù)器配置有關(guān)特征值的描述符。

5)關(guān)于句柄handle 和UUID

    屬性句柄:一臺設(shè)備可以有許多的屬性,例如溫度傳感器可能包含溫度屬性、設(shè)備名稱屬性和電池電量屬性。表面看來,通過屬性類型似乎足以判別某種屬性。比如使用溫度屬性來獲取溫度,通過設(shè)備名稱屬性來獲取設(shè)備名等。但是,如果設(shè)備包含了兩種溫度屬性,比如一個室內(nèi)溫度傳感器加上室外溫度傳感器,情況會變得怎樣。這時你便無法直接讀取溫度傳感器,而必須讀取第一個或第二個溫度屬性。考慮到可能有任意多個溫度傳感器,問題將變得更加復(fù)雜。為了解決這個同題,我們使用了一個16位的地址,也就是屬性句柄。有效的句柄范圍從0x0001--xFFFF。0x0000為無效句柄,不能用于尋址屬性。可以根據(jù)在軟硬件或嵌入式方面的背景,把句柄(Handle)相應(yīng)地想象為內(nèi)存地址、端口號、屬性值對應(yīng)的硬件寄存器地址。

    屬性類型:可以被公開的數(shù)據(jù)有許許多多的類型:溫度、壓強(qiáng)、體積、距離、功率、時間、充電狀態(tài)、開關(guān)狀態(tài)、狀態(tài)機(jī)的狀態(tài)等。所公開的數(shù)據(jù)的種類稱作屬性類型。為了區(qū)分如此多的數(shù)據(jù)類型,一串128位的數(shù)字被用來標(biāo)識屬性的類型。這個唯一標(biāo)識碼就叫做通用唯一識別碼(UUID),128位的UUID相當(dāng)長,設(shè)備間為了識別數(shù)據(jù)的類型需要發(fā)送長達(dá)16個字節(jié)的數(shù)據(jù)。為了提高傳輸效率,藍(lán)牙技術(shù)聯(lián)盟( SIG)定義了一種稱為“藍(lán)牙UUID基數(shù)”的128位通用唯一識別碼,結(jié)合一個較短的16位數(shù)使用。二者仍然遵循通用唯一識別碼的分配規(guī)則,只不過在設(shè)備間傳輸常用的UUID時,只發(fā)送較短的16位版本,接收方收到后補(bǔ)上藍(lán)牙的UUID基數(shù)即可。

藍(lán)牙UUID基數(shù)如下:

00000000—0000—1000—8000—00805F9B34FB

例如要發(fā)送的16位識別碼位0X2A01,完整的128位UUID便是:

00002A01—0000—1000—8000—00805F9B34FB

0x1800 - 0x26FF用作服務(wù)類通用唯一識別碼

0x2700 - 0x27FF用于標(biāo)識計(jì)量單位

0x2800 - 0x28FF用于區(qū)分屬性類型

0x2900 - 0x29FF用作特性描述

0x2A00- 0x7FFF用于區(qū)分特性類型

UUID,就是用來唯一識別一個特征值的ID。

handle,就是對應(yīng)的attribute的一個句柄



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区久久 | 男女免费视频网站 | 国产在线精品一区二区三区 | 国产成人综合一区二区三区 | 99色综合| 亚洲女人天堂网 | 黑人巨大精品欧美一区二区免费 | 精品欧美一区二区三区久久久 | 久久欧美精品 | 在线成人免费视频 | 香蕉一区 | 国产日韩欧美在线观看 | 国产精品国产精品国产专区不片 | 日韩欧美一级精品久久 | 国产一区二区三区亚洲 | 超碰3 | 日韩性生活网 | 亚洲第一视频网 | 中文字幕在线播放第一页 | av在线一区二区三区 | 久在线 | 天堂综合网久久 | 久久久久久久久久久高潮一区二区 | 九九亚洲 | 欧美 日韩 国产 在线 | 人人擦人人 | 伊人性伊人情综合网 | 狠狠爱综合网 | 一区二区国产精品 | 国产精品一二三区 | 精品久久久久久久久久 | 亚洲午夜视频 | 精品国产欧美一区二区 | 久久极品 | 一区二区福利视频 | 日韩高清在线观看 | 国产精品一区二区日韩 | 北条麻妃av一区二区三区 | 在线免费av电影 | 在线观看亚洲欧美 | 午夜影院在线观看免费 |