架构层 | 说明 |
---|---|
PHY | 1. 物理层 2. 控制射频的发送和接收 |
LL | 1. 链路层 2. 定义通信结构体包括设备状态和射频控制 3. 提供Link Layer-level加密 |
HCI | 1. 主机控制器接口 2. 用于主机和控制器的通信 3. 控制器:PHY、Link Layer 4. 主机:L2CAP、ATT、GATT、GAP、SM |
L2CAP | 1. 逻辑链路控制及适配协议 2. 充当协议复用器并处理数据包的分段和重组 3. 提供一个或多个复用的逻辑信道 |
ATT | 1. 属性协议 2. 提供了低功耗蓝牙设备之间数据传输的方法 3. 依赖于低功耗蓝牙的connection,基于connection它提供了读取、写入、指示、通知属性值的过程 |
GATT | 1. 通用属性协议 2. 为逻辑服务进行属性分组,例如心率服务 它公开了心率传感器的操作除实际数据外 3. 提供了属性的相关信息,及如何访问它们以及需要什么安全级别 4. 定义属性类型 |
GAP | 1. 通用访问规范 2. 为低功耗蓝牙设备和其它设备提供了设备广播、设备发现、打开和连接管理及数据广播 |
SM | 1. 安全管理 2. 提供绑定设备、加密和解密以及启用设备隐私的方法 |
针对射频控制及bit数据流的发送和接收,BLE链路层提供第一级的控制和数据结构定义
链路层操作包括:广播、扫描、建立连接
参数 | 值 | 描述 |
---|---|---|
广播间隔 | 20ms-10240ms | 1. 定义广播事件之间的间隔,每个广播事件根据配置的不同包含1至3个广播数据包 2. 一个0-10ms的随机值被链路层添加到每个广播间隔以帮助避免数据包冲突 |
广播信道 | 37、38、39 | 1. 这些物理无线信道用于发送广播数据包 2. 使用所有的信道是最可靠的操作,但以牺牲可靠性为代价减少广播信道数量可以降低设备功耗 |
发现模式 | 1. 不可发现 2. 普通可发现 3. 有限发现 4. 广播 | 1. 定义了广播者对其它设备的可见方式 |
连接模式 | 1. 不可连接 2. 定向连接 3. 不定向连接 | 1. 定义广播帧是否能够被连接 |
负载 | 1. 主要广播(0-31Byte) 2. BLE5辅助广播(0-255Byte) | 1. 在主要广播数据包中包含0-31字节数据 2. 在BT5辅助广播数据包中可以包含0-255字节数据 |
参数 | 值 | 描述 |
---|---|---|
扫描间隔 | 2.5ms-10240ms | 1. 扫描间隔是从一个扫描事件开始到下一个扫描事件开始的ms数 2. 扫描间隔一定要大于或等于扫描窗口 |
扫描窗口 | 2.5ms-10240ms | 1. 扫描窗口定义了扫描事件中的监听(RX)窗口周期 |
扫描类型 | 1. 有限 2. 普通 3. 观察 | 1. 定义扫描者可应答的广播者类型 |
扫描模式 | 1. 主动 2. 被动 | 1. 定义执行主动扫描还是被动扫描 |
连接模式 | 1. 不可连接 2. 定向连接 3. 不定向连接 | 1. 定义广播者是否可连接 |
1. 连接允许应用层数据以一种可靠、稳健的方式传输。
2. BLE使用CRC校验、应答、重传以确保数据的正确交互。
3. BLE连接使用自适应跳频(AFH)来检测和适应周围的环境,并提供一个可靠的物理层。
4. 连接支持数据的加密和解密以确保它的安全性
扫描者当收到一个可连接的广播者发送的广播数据帧后发起BLE连接。下图示例BLE连接过程
应用程序通常可以控制以下广播参数
参数 | 值 | 描述 |
---|---|---|
最小连接间隔 | 7.5ms | 1. 最小允许的连接间隔 |
最大连接间隔 | 4000ms | 1. 最大允许的连接间隔 |
连接(外设)延迟 | 0-500(连接间隔) | 1. 定义扫描者可应答的广播者类型 |
监督超时 | 100ms-32000ms | 1. 定义通信可中断多长时间在连接被丢弃并向用户告知错误之前 |
在一个连接的生命周期中连接参数可以通过”连接更新消息”被修改和更新
1. 当主设备在定义的连接间隔内向从设备发送一包数据帧则连接事件开始(如图4.5)。
2. 从设备在收到来自主设备的数据包150us后可以进行应答。
3. 如果从设备没有数据要发送,它可以跳过在“连接(外设)延迟”中定义的一定数量的连接事件(如图4.6)。
4. 如果主设备或从设备在规定的“监督超时”时间内没有收到数据包,则连接终止
1. 如果从设备要发送的数据超过了单包数据的容量,则连接事件会自动扩展。
2. 从设备可以发送尽可能多的数据包在下一个连接间隔开始前。
3. 这中操作只能与不需要应答的属性协议一起使用
网络拓扑:在BLE中定义的设备角色