BLE基础学习


GAP (Generic Access Profile)

通用访问协议:主要负责设备的连接、广播和角色定义。

ATT (Attribute Protocol)

配置属性协议:用于发现、读取和写入对端设备上的属性。

GATT (Generic Attribute Profile)

通用属性协议:定义了BLE设备之间的具体通信方式,通过Services和Characteristics实现数据的传输和交换。

iBeacon

iBeacon是苹果公司推出的一种基于BLE技术的定位和传感应用。它使用了BLE广播包来发送特定格式的数据,这些数据包包含了设备的唯一标识符(UUID)、主要(Major)、次要(Minor)标识符以及设备的信号强度(RSSI)。通过检测和解析这些广播包,可以实现基于位置的服务,如室内导航、位置推送、附近场所提醒等。

广播报文格式

前导 接入地址 PDU(协议数据单元) 校验
报头 长度 数据
1 byte 4 byte 1 byte 1 byte 0~37 byte 3 byte

广播类型

ADType Value 描述 备注
Flags 0x01 标注蓝牙特性
Service UUIDs 0x02 标注服务UUID 非完整的16 bit UUID列表
Service UUIDs 0x03 标注服务UUID 完整的16 bit UUID列表
Service UUIDs 0x04 标注服务UUID 非完整的32 bit UUID列表
Service UUIDs 0x05 标注服务UUID 完整的32 bit UUID列表
Service UUIDs 0x06 标注服务UUID 非完整的128 bit UUID列表
Service UUIDs 0x07 标注服务UUID 完整的128 bit UUID列表
Local Name 0x08 标注名称 设备简称
Local Name 0x09 标注名称 设备全名
TX Power Level 0x0A 标注射频发射功率 表示设备发送广播包的信号强度
Simple Pairing Option OOB Tags 0x0D 标注安全管理带我外标签 设备类别
Simple Pairing Option OOB Tags 0x0E 标注安全管理带我外标签 设备配对的Hash值
Simple Pairing Option OOB Tags 0x0F 标注安全管理带我外标签 设备配对的随机值
Security Manager TK Value 0x10 标注 带外方式配对绑定时的TK TK安全管理
Security Manager Out of Band 0x11 标注带外特性标志 带外安全管理
Slave Connection Interval Range 0x12 标注连接参数范围 外设(Slave)连接间隔范围
List of 16-bit Service Solicitation UUIDs 0x14 标注主机特定服务 服务搜寻16 bit UUID列表
List of 128-bit Service Solicitation UUIDs 0x15 标注主机特定服务 服务搜寻128 bit UUID列表
Service Data 0x16 服务数据 16 bit UUID Service,前两个字节是UUID,后面是Service的数据
Public Target Address 0x17 公开目标地址,表示希望这个广播包被指定的目标设备处理,此设备绑定了公开地址
Random Target Address 0x18 随机目标地址,表示希望这个广播包被指定的目标设备处理,此设备绑定了随机地址
Appearance 0x19 表示设备的外观
Advertising Interval 0x1A 广播区间
LE Bluetooth Device Address 0x1B LE设备地址
LE Role 0x1C LE设备角色
Simple Pairing Hash C-256 0x1D 256位设备配对的Hash值
Simple Pairing Randomizer R-256 0x1E 256位设备配对的随机值
Service Data - 32-bit UUID 0x20 32 bit UUID Service,前4个字节是UUID,后面是Service的数据
Service Data - 128-bit UUID 0x21 128 bit UUID Service,前16个字节是UUID,后面是Service的数据
3D Information Data 0x3D 3D信息数据
Manufacturer Specific Data 0xFF 厂商信息 厂商自定义数据,厂商自定义的数据中,前两个字节表示厂商ID,剩下的是厂商自己按照需求添加,里面的数据内容自己定义。

UUID

在Bluetooth Low Energy(BLE)中,UUID(Universally Unique Identifier,通用唯一标识符)用于唯一标识BLE设备的服务、特征值和描述符等。

  • UUID通常有以下两种类型:
  1. 16位UUID:这是最常见的UUID格式。它可以是128位UUID的缩写,前12位是固定的预定义UUID,后面4位是由厂商自己定义的。例如,0x1800表示通用访问服务(Generic Access Service)。

  2. 128位UUID:这种UUID的唯一性更高,可以完全自定义。一般情况下,它是一个32位十六进制数字串,例如,00001800-0000-1000-8000-00805F9B34FB,其中前面32位是通用UUID,用于标识服务、特征值或描述符的类型,后面96位是具体的UUID,用于标识具体的服务、特征值或描述符。

蓝牙中常见的一些服务名称及其对应的UUID列表如下所示:

服务 名称 UUID
通用访问服务 Generic Access Service 0x1800
通用属性服务 Generic Attribute Service 0x1801
设备信息服务 Device Information Service 0x180A
环境传感器服务 Environmental Sensing Service 0x181A
心率测量服务 Heart Rate Service 0x180D
体温测量服务 Health Thermometer Service 0x1809
蓝牙 Mesh 网络服务 Bluetooth Mesh Networking Service 0x1828

更多查看(Bluetooth-SIG)

自定义服务:除了上述标准服务外,厂商或开发者还可以定义自己的服务,并为其分配自定义的UUID。

posted @ 2024-03-29 10:43  D·Kingson.Mo  阅读(118)  评论(0编辑  收藏  举报