和菜鸟一起学linux之bluez学习记录1

来源:互联网 发布:2016年度网络广告公司 编辑:程序博客网 时间:2024/05/22 04:49

 

关于蓝牙协议栈体系结构

 


底层硬件模块

 

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扫描设备过程