WLT8016:BLE蓝牙的一些基本概念
Posted 旧年不在cd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WLT8016:BLE蓝牙的一些基本概念相关的知识,希望对你有一定的参考价值。
WLT8016:BLE蓝牙的一些基本概念
一、什么是BLE
- BLE全称Bluetooth Low Energy,即蓝牙低功耗。蓝牙4.0才支持BLE,蓝牙4.0向下兼容,包括传统蓝牙技术、高速技术和低耗能技术三种规格。主要用于手机与周边设备进行通信,当然也可以用于所有BLE设备之间的通信。使用BLE可以实现android与ios之间的蓝牙通信,而普通蓝牙却不可以。
二、基本术语
- Profile
Profile其实是蓝牙对应于每一个具体的应用场景以及每一种应用的不同的协议栈,也就是说它其实是实现某种功能对应的自下而上的协议的组合。类似于对于横向协议的纵向组合。Profile定义了设备如何实现一种连接或者应用,你可以把Profile理解为连接层或者应用层,也可以将其理解为“应用场景、功能、使用方式” 。每个profile中会包含多个service,每个service代表从机的一种能力。
- Service
service可以理解为一个服务,在ble从机中,通过有多个服务,例如电量信息服务、系统信息服务等,每个service中又包含多个characteristic特征值。每个具体的characteristic特征值才是ble通信的主题。比如当前的电量是80%,所以会通过电量的characteristic特征值存在从机的profile里,这样主机就可以通过这个characteristic来读取80%这个数据。
- Characteristic
characteristic特征值,ble主从机的通信均是通过characteristic来实现,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。
- UUID
UUID,统一识别码,我们刚才提到的service和characteristic,都需要一个唯一的uuid来标识。
- MTU
MTU:最大传输单元,指在一个PDU (Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数据)能够传输的最大数据量(多少字节可以一次性传输到对方)。
三、ATT协议
ATT(Attribute Protocol) ,属性协议,定义了属性attribute的格式,众多的attributes组合成了一个数据库,蓝牙设备通过这个数据库对外提供服务。
由此可以看出一个attribute是由以下几部分组成:
- Attribute Handle:访问该attribute的句柄。
- Attribute Type:该attribute的类型,由UUID标识。
- Attribute Value:属性值。
- Attribute Permissions:访问该attribute的权限。
该attribute代表什么含义由*GATT(Generic Attribute Profile)*定义。
四、BLE通信协议——GATT
- GATT协议结构
BLE技术是基于GATT进行通信的,*GATT(Generic Attribute Profile)*是一种属性传输协议,简单的讲可以认为是一种属性传输的应用层协议。它的结构非常简单:
1、Service
- 在GATT里,Service是由service definition来定义的。一个service definition必须包含一个service declaration,可以包含一些include definitions和characteristic definitions。service declaration的attribute格式定义如下:
Attribute Type可以是Primary Service或Secondary Service,其Attribute Value就是该Service 的 UUID。
2、Characteristic
- 一个characteristic definition必须包含一个characteristic declaration和一个Characteristic Value declaration,可以包含多个characteristic descriptor declaration。
2.1、Characteristic declaration
- 其attribute格式定义如下:
- 各字段的大小如下:
- Characteristic Properties为该Characteristic的属性,常用的由Write, Read, Notify,可能的值如下:
2.2、Characteristic Value declaration
- 其attribute格式定义如下:
Attribute Type为该Characteristic的UUID。
2.3、Characteristic descriptor declarations
-
Characteristic Value declaration目前一共有6种:
-
Characteristic Extended Properties
-
Characteristic User Description
-
Client Characteristic Configuration
-
Server Characteristic Configuration
-
Characteristic Presentation Format
-
Characteristic Aggregate Format
其中常用的为Client Characteristic Configuration,attribute的格式定义如下:
- Attribute Type固定为0x2902,
- Attribute Value为配置Characteristic的位数据,定义如下:
其中第0 位为Notification的配置位,第1位为Indication的配置位。若想要Server通知该Characteristic,将该描述符的第0位置1 即可。
- GATT基础知识
- GATT通信的双方是C/S关系。外设作为GATT服务端*(Server),它维持了ATT(Attribute Protocol)协议的查找表以及service和characteristic的定义。中心设备是GATT客户端(Client),它向Server*发起请求。需要注意的是,所有的通信事件,都是由客户端(也叫主设备,Master)发起,并且接收服务端(也叫从设备,Slave)的响应。
- GATT连接是独占的。也就是一个BLE外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见了。当设备断开,它又开始广播。
- Service、Characteristic和Descriptor均有一个唯一的UUID标识,UUID既有16位的也有128位的。16位的UUID是经过蓝牙组织认证的,是需要购买的,而128位的UUID则可以自定义,当然也有许多通用的UUID。
以上是关于WLT8016:BLE蓝牙的一些基本概念的主要内容,如果未能解决你的问题,请参考以下文章