BLE蓝牙项目开发相关说明

1、蓝牙协议栈

蓝牙相关功能依靠底层协议栈处理监控、返回、处理事件回调函,创建自定义服务时,协议栈会分配服务句柄,依靠句柄确定事件回调对应的处理功能函数

BLE蓝牙项目开发相关说明

2、SDK配置文件

在SDK_config.h中配置,直接在configuration wizard中选中需要对应的功能即可

BLE蓝牙项目开发相关说明

3、GAP和GATT

GATT全称是:Generic Attribute profile 通用属性协议,作用是负责连接后的数据传输;GAP全称是:Generic Access profile 通用访问协议,作用是负责连接前数据广播,这两个部分直接调用协议栈配置

BLE蓝牙项目开发相关说明

4、profile

项目开发主要是profile这部分,根据项目需要,SIG已经发布很多实际中常用的标准profile,用户也可以根据需要自定义profile

profile定义为可能的应用,规定了蓝牙设备和其它设备通信的一般行为。通常profile定义了角色、规定了必须包含的服务、建议的广播参数和建立连接的过程

BLE蓝牙项目开发相关说明

5、服务和特征

服务时一组特征和通过它们所公开的行为的集合,一个服务可以包含多个特征,服务存在于设备中,每个服务代表设备的一个能力;特征包含三个部分:声明、数值和描述符,声明和数值必不可少,数值是最终要操作的数据。要建立一个特征,首先要进行声明,声明三个部分:特征性质、数值句柄、属性UUID。描述符可以是0个到多个,需要注意如果用了通知(notify)或者指示(indicate),必须要有客户端特征配置描述符CCCD。特征属性包括:Read读属性、Notify通知属性、Write写属性、WriteWithout Response写属性,从字面意思上看,只是写,不需要返回写的结果,这个属性的特点是不需要应用层返回,完全依靠协议层完成,速度快,但是写入速度超过协议处理速度的时候,会丢包

BLE蓝牙项目开发相关说明

6、UUID

UUID采用128位UUID基数+16位UUID的形式,使用时16位UUID会替换128位UUID基数数组中的第12和13个字节。

蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID、32 bit UUID、128 bit UUID:

16bit 和 32bit 的 UUID 与 128bit 的值之间转换关系:

128_bit_UUID = 16_bit_UUID * 2^96 + Bluetooth_Base_UUID

128_bit_UUID = 32_bit_UUID * 2^96 + Bluetooth_Base_UUID

其中 Bluetooth_Base_UUID 定义为 00000000-0000-1000-8000-00805F9B34FB 

BLE蓝牙项目开发相关说明

BLE蓝牙项目开发相关说明