轉載 http://blog.csdn.net/eastmoon502136/article/details/8725180
關於藍牙協議棧體系結構
底層硬件模塊
RF
1、利用2400M~2483.5M頻帶
2、採用調頻方式傳輸數據,一共有79/EDR,40/BLE個hops,每秒
3、採用GFSK(DQPSK和8DPSK)調製方式
4、信道間隔(1MHZ/EDR模式,2MHZ/BLE模式)
BB
藍牙系統提供點對點或點對多點的連接,在連接中設備共享物理信道,稱爲piconet。一個設備做爲master,其他的設備作爲slave。pico網中最多可支持7個活動的slave。其他的處於非活動狀態。這些非活動slave仍需要保持與master的同步,通道的訪問由master來控制。
對所有調製方式,符號率均爲1Ms/s。這樣BR是1Mbps,EDR DQPSK是2Mbps,EDR 8DPSK是3Mbps。
包格式
藍牙地址
1、物理通道
2、藍牙物理通道由僞隨機頻率hopping序列,特定的時間slot,訪問碼和包頭編碼構成。
3、兩個設備爲了通信,需要使用共享信道,這樣就需要兩者必須在同一時刻使用相同的頻
率。
4、hopping序列有藍牙設備地址中UAP和LAP決定,timeslot長度取決於物理通道,在連接狀態下最大的hop率爲1600hops/s,inquiry和page狀態下爲3200hops/s。
四種物理通道
1、基本pico網通道 2、自適應pico網通道 3、Page scan物理通道 4、inquiryscan物理通道
物理連接
包括電源控制,link監控,加密和鏈路管理協議,通道數據率變化,多slot包控制。
五種邏輯傳輸
1、SCO 基於同步連接邏輯傳輸 2、ESCO擴展SCO 3、ACL 異步邏輯傳輸
4、ASB 活動Slave廣播 5、PSB Parked Slave廣播
LMP
1、鏈路管理協議
2、用於鏈路的建立和控制,信號在鏈路管理層被解析和過濾,不會傳遞至上層。
3、協議由一系列的消息構成,這些消息通過ACL-C邏輯傳輸。
傳輸示意圖
包格式
主要功能
1)連接控制:連接建立,斷開,電源控制,自適應頻率hopping,通道分類, 鏈路監控,通道質量驅動數據率變化,Qos,Paging參數,多slot包控制,EDR,LMP PDU封裝。
2)安全:認證,配對,改變link key,改變當前link key類型,加密,請求加密keysize,簡單安全配對。
3)信息請求
4)功能切換
5)操作模式
6)邏輯傳輸
7)測試模式
HCI
爲控制器定義了統一的命令接口
1)流控制
2)HCI數據格式
3)HCI配置參數
4)HCI命令和事件
HCI流控制
Host到控制器數據流控制
基於包的數據流控制
基於塊的數據流控制
控制器到Host數據流控制
命令流控制
斷開行爲
命令錯誤處理
HCI命令和事件
1)鏈路控制命令
2)鏈路策略命令
3)控制和基帶命令
4)消息參數
5)狀態參數
6)測試命令
7)事件
8)LE控制器命令
中間協議層
L2CAP
框架圖
流控制與重傳過程 和AMP通道建立和處理過程
SDP
該規範定義了藍牙設備提供的本地服務協議。
Some examples of service attributes:
Example Service Browsing Hierarchy
services records and service attributes
GAP
該profile定義了發現藍牙設備的通用過程(idle模式過程),和連接到藍牙設備的鏈路管理方面(連接模式過程)。它還定義了不同安全級別下的過程。
定義了表示藍牙的參數
1)BD_ADDR
2)藍牙設備名
3)藍牙PIN
4)設備類型
配對
安全方面
1)認證
2)安全模式
IDLE模式過程
建立過程
1)LINK建立
2)通道建立
3)連接建立
擴展Inquiry響應數據格式
LE相關的特殊規範
GATT
GATT是基於attribute協議的服務框架。
功能:描述了怎樣使用attribute協議來發現、讀、寫和獲取這些屬性的標誌,以及配置屬性的廣播。
client:對於service啓動命令和請求,可以接收service端的響應、指示和通知。
service:接受來自client端的命令和請求,發送響應,指示和通知給client端。
例如:
client:電腦終端
service:溫度計
電腦終端啓動程序配置溫度計或者讀取溫度計的值。
溫度計提供其特性的信息,例如其溫度的服務和其他被允許的可寫的一些特性等。
用戶需求
1、可改變的配置
2、發現設備上的服務和特性
3、讀取一個特性值
4、寫入一個特性值
5、通知的特性值
6、指示的特性值
SMP
用於LE設備間的配對,認證和加密管理。
高端應用層
藍牙規範
基本藍牙規範
個例說明
1、GATT based中的HTP
2、BR/EDR Profiles中的A2DP
3、BR/EDR Protocols 中的AVDTP
Health Thermometer Profile (HTP)
Advanced Audio Distribution Profile (A2DP)
Audio/Video Distribution Transport Protocol(AVDTP)
linuxbluez體系結構
Bluetooth的Bt_io
Bluetoothd啓動過程
Bluetooth掃描設備過程