蓝牙基础知识探索

蓝牙初识

蓝牙模块可以通过串口(SPI、IIC)和MCU控制设备进行数据传输。蓝牙模块可以做为主机和从机。主机就是能够搜索别的蓝牙模块并主动建立连接,从机则不能主动建立连接,只能等别人连接自己。
BR/EDR:基础率/增强数据率(version:2.0/2.1)
特点是:支持持续无线连接,以点对点(P2P)网络拓扑结构建立一对一(1:1)设备通信。

LE:低耗能(version:4.0/4.1/4.2)
特点是:支持短时间无线连接,使用多个网络拓扑结构,包括点对点、广播(一对多)和网格(多对多)

蓝牙技术特点

在这里插入图片描述

蓝牙协议栈层次

1.物理层(PHY):射频传输。

2.链路层(LL):控制射频状态,包括等待、广告、扫描、初始化、连接。

3.主机控制接口层(HCI):主机和控制器通信接口。

4.逻辑链路控制及适配协议层(L2CAP):提供数据封装服务,允许逻辑上点对点通信。

5.安全管理层(SM):加解密,为安全连接和数据交换提供服务。

6.属性协议层(ATT):允许设备(服务器)向另一个设备(客户端)展示特定的数据(属性)。

7.通用属性配置文件层(GATT):定义了使用ATT的服务框架,两个建立连接的设备之间的所有数据通信都是通过GATT子程序处理。

8.通用访问配置文件层(GAP):对所有蓝牙设备提供共同的功能,如传输模式和访问程序、协议和应用描述。GAP服务包含设备发现、连接模式、安全、认证、联合模型和服务发现。

http://5b0988e595225.cdn.sohucs.com/images/20171024/af210b839b174e0ea05acfc418852486.png

蓝牙传输过程 主从机建立过程

http://5b0988e595225.cdn.sohucs.com/images/20171024/612b6427b7e14946bcf9976d56af59fa.jpeg

http://note.youdao.com/noteshare?id=773685f048610f54aa15043a7f9e0678&sub=F47C207D48AA4DCAA45D2E82E687E7FF

状态(state)和角色(role)的定义

http://www.wowotech.net/content/uploadfile/201603/0b4e534c15ee5ffb7cb0d24c67fa1a0f20160312143237.gif

Standby状态是初始状态,即不发送数据,也不接收数据。根据上层实体的命令(如位于host软件中GAP),可由其它任何一种状态进入,也可以切换到除Connection状态外的任意一种状态。

Advertising状态是可以通过广播通道发送数据的状态,由Standby状态进入。它广播的数据可以由处于Scanning或者Initiating状态的实体接收。上层实体可通过命令将Advertising状态切换回Standby状态。另外,连接成功后,也可切换为Connection状态。

Scanning状态是可以通过广播通道接收数据的状态,由Standby状态进入。根据Advertiser所广播的数据的类型,有些Scanner还可以主动向Advertiser请求一些额外数据。上层实体可通过命令将Scanning状态切换回Standby状态。

Initiating状态和Scanning状态类似,不过是一种特殊的接收状态,由Standby状态进入,只能接收Advertiser广播的connectable的数据,并在接收到数据后,发送连接请求,以便和Advertiser建立连接。当连接成功后,Initiater和对应的Advertiser都会切换到Connection状态。

Connection状态是和某个实体建立了单独通道的状态,在通道建立之后,由Initiating或者Advertising自动切换而来。通道断开后,会重新回到Standby状态。

名词解释

(1) GAAT : Generic Attribute Profile , GATT配置文件是一个通用规范,用于在BLE链路上发送和接收被称为“属性”的数据块。目前所有的BLE应用都基于GATT。 蓝牙SIG规定了许多低功耗设备的配置文件。配置文件是设备如何在特定的应用程序中工作的规格说明。注意一个设备可以实现多个配置文件。例如,一个设备可能包括心率监测仪和电量检测。

(2) Characteristic 一个characteristic包括一个单一变量和0-n个用来描述characteristic变量的descriptor,characteristic可以被认为是一个类型,类 似于类。

(3)Descriptor Descriptor用来描述characteristic变量的属性。例如,一个descriptor可以规定一个可读的描述,或者一个characteristic变量可接受的范围,或者一个characteristic变量特定的测量单位。 Service service是characteristic的集合。例如,你可能有一个叫“Heart Rate Monitor(心率监测仪)”的service,它包括了很多characteristics,如“heart rate measurement(心率测量)”等。你可以在bluetooth.org 找到一个目前支持的基于GATT的配置文件和服务列表。

猜你喜欢

转载自blog.csdn.net/walter247443819/article/details/91958279
今日推荐