1. 程式人生 > >藍芽4.0協議官方手冊(一)--- 通用屬性配置檔案

藍芽4.0協議官方手冊(一)--- 通用屬性配置檔案

1 總則

                     通用屬性配置檔案

                                                                     (GATT)

                                           該說明書定義了通用屬性配置檔案,

                                      該檔案描述了一個使用屬性協議的

                                      一個服務框架,該服務框架用來在

                                      一對裝置間發現服務,讀寫特徵值.

                                                 by金智超  2014.1.14  

1 介紹

1.1 作用域

通用屬性配置檔案定義了一個使用屬性協議的服務框架,該框架定義了一個服務的流程、格式和它的特性.流程的定義包括髮現,讀寫,通知和指示特性.

2 配置檔案概觀

通用屬性配置檔案被應用和其他的配置檔案呼叫,所以客戶端才能通過服務傳遞資訊.每個服務包含了許多屬性,通用屬性配置檔案定義了怎樣使用屬性協議層去發現,讀寫,並且獲得這些屬性的標誌,就像配置廣播的屬性.

2.1 協議棧

圖2.1展示了被這個配置檔案是使用的對等協議

 圖2.1

2.2 配置和角色

執行這個配置檔案的裝置可以被定義為客戶端和伺服器端.

   客戶端---能夠向伺服器端傳送命令和請求,並且能夠接收伺服器端傳送的應答,指示和通知.

    伺服器端---與客戶端功能相對.

2.3 屬性協議

通用屬性配置檔案需要執行屬性協議和屬性操作碼.

2.3.1 概觀

 通用屬性配置檔案使用屬性協議來以命令,請求,應答,指示,通知和驗證的形式來傳遞資料.

   在一個協議資料單元中,包含以下資料.


 操作碼包含指定的命令,請求,應答,指示,通知或者驗證碼和身份鑑別標誌.屬性引數中包含了命令,請求的資料或者從指示,通知,應答用返回的資料.

   屬性協議的命令和請求的值儲存在伺服器端裝置的屬性中.一個屬性由四部分組成,屬性控制代碼,屬性型別,屬性值,和屬性許可權.


屬性控制代碼是一個特定屬性的索引.

   屬性型別是一個描述屬性值的UUID.

   屬性值是被屬性型別描述和被屬性控制代碼索引的資料.

   屬性許可權是不能通過屬性協議讀寫的部分屬性.它被用來定義給定的屬性是否具有讀寫許可權.

2.4 通用屬性配置檔案層級

2.4.1 概觀

協議棧的最高層是配置檔案,配置檔案包含了填充使用案例的一個或多個服務.每一個服務包含許多的特性和其他服務的呼叫.每一個特性包含一個值並且可能包含該值的可選擇資訊.服務、特徵值、和特徵值包含的內容,這些東西包含的資料全部被儲存在伺服器的屬性中.


2.4.2 服務

服務是資料和相關行為的集合(完成特定的功能).在GATT中,服務被服務定義所定義.一個服務定義包含關聯服務,強制特性和可選特性.

服務或特性中的定義或宣告都是由屬性完成的

2.4.3 特性

特徵是一個用來描述服務屬性和值是如何訪問的配置資訊和的值是怎樣被顯示和代表的.在GATT中,a characteristic is defined by its characteristicdefinition. A characteristic definition contains a characteristic declaration,characteristic properties, and a value and may contain descriptors thatdescribe the value or permit configuration of the server with respect to thecharacteristic.

2.5 廣播配置

對於LE物理連線,廣播配置是當伺服器端處於廣播模式程序是,客戶端向伺服器端指示哪個特性值會被在廣告資料中別廣播的一種方法.

3 服務互操作性需求

3.1 服務定義

一個服務定義必須包含服務的宣告,可能包含includedefinitions和特性定義.

    服務的宣告是一個具有根據<<Primary>>或者<<SecondaryService>>中特定屬性了型別的屬性.



3.2 包含定義

包含定義必須包含一個僅有的包含宣告

   包含宣告是一個具有根據<<Include>>中特定屬性型別的屬性.


3.3 特性定義

特性定義必須包含一個特性宣告,一個特性值宣告,可能包含特性描述符宣告.

   以上的宣告被包含在獨立的屬性中.特性值的宣告必須緊跟在特性的聲明後面.

3.3.1特性宣告

特性宣告是一個具有根據<<Characteristic>>中特定屬性型別的屬性.


                                                    特性宣告中的屬性值是隻讀的


一個服務可以有多重的特性定義以相同的特徵UUID.

    在一個服務定義裡面,一些特性是強制的,並且這些特性必須位於任一個可選特性之前,位於包含特性之後.

3.3.1.1 特性效能

特性效能位欄位定義了特性值是怎樣被使用的,或者特性描述符是怎樣被獲取的.如過下列表中的一些位被置位,描述的行為將會被允許.



3.3.1.2 特性值屬性控制代碼

特性值屬性控制代碼欄位包含了特性值的屬性的屬性控制代碼.

3.3.1.3 特性UUID

特性UUID是一個16位或者128位的藍芽UUID,用來描述特性值的型別.

3.3.2 特性值宣告

特性值宣告包含了這個特性的值,它是特性聲明後的第一個屬性.


3.3.3 特性描述符宣告

特性描述符用來包含特性值的相關資訊.

每一個特性描述符都被一個特性描述符UUID定義,

3.4  通用屬性配置檔案屬性型別概要


4 功能要求

每一個功能都被對映到一個程序或者副程序,這些程序和副程序描述屬性協議是怎樣被使用來完成這些功能的.

4.1 功能支援和程序對映

下表描述了功能和程序的對映關係,並且描述了程序是可選的還是強制的.



轉載請註明來自部落格akuarius'blog

郵箱:[email protected]