当前位置: 首页 > web >正文

蓝牙低功耗(BLE)的通信信道和包类型

目录

概述

1. 广播信道包(Advertising Channel PDU)

1.1  广播信道

1.2 广播类型

2. 数据信道包(Data Channel PDU)

2.1 数据包(LL Data PDU)

2.2 控制包(LL Control PDU)

3. 扫描与连接请求包

4. BLE 5.0+ 新增包类型

5. 包类型应用场景示例

总结


概述

本文主要介绍蓝牙低功耗(BLE)的通信信道和包类型。蓝牙低功耗(BLE)技术在2.4GHz ISM频段工作,使用40个物理信道,其中3个为广播信道,37个为数据信道。广播信道用于设备发现、连接建立和广播通信,分布在频段两端和中间以减少Wi-Fi干扰。广播包在3个信道上重复发送以提高可靠性。数据信道用于已连接设备间的数据通信,采用自适应跳频技术选择信道。BLE支持多种广播类型,如可连接的非定向广播、定向广播、不可连接广播等,适用于不同场景。数据包和控制包用于传输应用层数据和管理连接。BLE5.0引入了增强特性,如双倍速率和长距离模式,扩展了广播信道的使用。理解BLE包类型对于优化设备功耗、连接稳定性和数据传输效率至关重要。开发者应根据应用场景选择合适的广播类型,并通过控制包动态调整连接参数。

1. 广播信道包(Advertising Channel PDU)

BLE工作在2.4GHz ISM频段(2402-2480MHz),共使用40个物理信道,信道间隔为2MHz:

  • 3个广播信道:用于设备发现、连接建立和广播通信

  • 37个数据信道:用于已连接设备间的数据通信

1.1  广播信道

信道编号中心频率(MHz)主要用途
372402广播/扫描
382426广播/扫描
392480广播/扫描

特点

  • 专门用于无连接通信

  • 分布在频段两端和中间,减少Wi-Fi干扰(特别是避开Wi-Fi信道1,6,11)

  • 所有广播包都在这3个信道上重复发送,提高可靠性

信道参数

参数说明典型值
信道带宽每个信道占用带宽2MHz
调制方式物理层调制GFSK
数据速率传输速率1Mbps(4.2+支持2Mbps)
发射功率信号强度-20dBm到+10dBm

信道选择算法

BLE使用自适应跳频技术,通过以下算法选择数据信道:

  1. 信道映射:主从设备协商可用信道

  2. 跳频序列:基于连接句柄(Connection Handle)和跳频增量计算

  3. 跳频间隔:每个连接事件跳至新信道(默认间隔30ms)

跳频公式

next_channel = (last_channel + hop_increment) mod 37

其中hop_increment为5-16之间的随机值

1.2 广播类型

用于设备发现、连接建立和广播数据传输,工作于 3 个固定广播频道(37, 38, 39)

类型名称用途
ADV_IND可连接的非定向广播允许任何设备扫描并发起连接(如智能手环广播自身存在)。
ADV_DIRECT_IND定向广播仅向特定设备(已知 MAC 地址)发起快速连接,减少扫描时间。
ADV_NONCONN_IND不可连接广播仅广播数据,不接受连接(如 Beacon 设备持续发送位置信息)。
ADV_SCAN_IND可扫描广播允许扫描设备请求附加数据(扫描设备发送 SCAN_REQ 后回复 SCAN_RSP)。
ADV_EXT_IND (BLE 5+)扩展广播支持更长广播数据(最多 1650 字节)和多种 PHY(如 LE Coded PHY)。

广播包结构

| 前导码 (1B) | 访问地址 (4B) | PDU (2-257B) | CRC (3B) |

2. 数据信道包(Data Channel PDU)

在连接建立后使用,工作于 37 个自适应跳频数据频道,包含 数据包 和 控制包

2.1 数据包(LL Data PDU)

  • 用途:传输应用层数据(如传感器读数、ATT 协议读写操作)。
  • 类型
    • LL_DATA:普通数据负载(最大 251 字节)。
    • LL_ENC_DATA:加密数据(启用链路层加密后使用)。

2.2 控制包(LL Control PDU)

类型功能
LL_CONNECTION_UPDATE_REQ主设备请求更新连接参数(间隔、延迟、超时)。
LL_CHANNEL_MAP_REQ主设备更新信道映射表(避开干扰频段)。
LL_TERMINATE_IND通知对端设备终止连接。
LL_ENC_REQ / LL_ENC_RSP协商加密参数(启动链路层加密)。

数据包结构

| 前导码 (1B) | 访问地址 (4B) | LL Header (2B) | 载荷 (0-251B) | CRC (3B) | MIC (4B, 加密时添加) |

3. 扫描与连接请求包

类型方向用途
SCAN_REQ扫描设备 → 广播设备请求广播设备发送附加信息(触发 SCAN_RSP)。
SCAN_RSP广播设备 → 扫描设备回复扫描请求,携带额外广播数据(如设备名称、服务 UUID)。
CONNECT_REQ主设备 → 从设备发起连接请求,包含初始连接参数(间隔、信道映射、跳频算法等)。


4. BLE 5.0+ 新增包类型

类型功能
AUX_ADV_IND辅助广播包,用于扩展广播链式传输。
AUX_CHAIN_IND扩展广播数据的分片传输(支持大数据广播)。
AUX_SYNC_IND (Periodic)周期性广播同步包,用于时间同步场景(如室内定位)。

BLE 5.0增强特性

  • 2M PHY:双倍速率(2Mbps),使用相同信道

  • Coded PHY:长距离模式(125Kbps/500Kbps)

  • 广播信道扩展:可选使用全部40个信道广播

5. 包类型应用场景示例

  1. 智能家居

    • 灯泡通过 ADV_NONCONN_IND 广播状态,手机通过 SCAN_REQ 获取详情后发起连接。
    • 连接后使用 LL_DATA 包发送开关指令。
  2. 医疗设备

    • 心率带通过 ADV_IND 广播,手机连接后持续接收加密的 LL_ENC_DATA 包。
    • 主设备通过 LL_CONNECTION_UPDATE_REQ 优化传输间隔以降低功耗。
  3. Beacon 定位

    • 使用 ADV_EXT_IND 发送扩展广播数据(位置坐标、商户信息)。

总结

理解 BLE 包类型是优化蓝牙设备 功耗连接稳定性 和 数据传输效率 的关键。开发者需根据应用场景选择合适的广播类型(如非连接广播节省功耗),并通过控制包动态调整连接参数以适配环境变化。

http://www.xdnf.cn/news/8091.html

相关文章:

  • HarmonyOS 鸿蒙应用开发基础:父组件和子组件的通信方法总结
  • linux系统启动脚本(格式问题)
  • 分布式系统设计 - 性能优化
  • Spring Cloud Gateway高并发限流——基于Redis实现方案解析
  • 【LeetCode 热题 100】二分查找 系列
  • 多维应用场景的落地实践的智慧园区开源了
  • HarmonyOS优化应用文件上传下载慢问题性能优化二
  • MVC 与 MVT:Web 开发架构模式的异同与实践
  • spark-Catalyst 优化器和 Tungsten 执行引擎介绍
  • AI之光,点亮星途 :揭秘“智语心桥”,如何用科技为孤独症儿童架起沟通的桥梁
  • (第95天)OGG 微服务搭建 Oracle 19C 到 MySQL 8 双向同步
  • 可信计算是什么?可信逻辑:计算系统安全的形式化分析框架
  • 【brpc】安装与使用
  • AGI大模型(32):LangChain实现RAG
  • NSSCTF-[陇剑杯 2021]webshell(问6)
  • 关于如何在Springboot项目中通过excel批量导入数据
  • Flask vs. Django:如何选择最适合你的 Web 框架?
  • 基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战
  • 蓝桥杯 3. 涂色
  • OceanBase数据库全面指南(基础入门篇)
  • C# 实现轻量化数据库SQLite在工业中上的应用
  • TensorFlow深度学习实战(17)——主成分分析详解
  • 鞋服行业数据防泄露——企业解决方案
  • NFS服务器实验
  • 深入了解linux系统—— 文件系统
  • 物联网、云计算技术加持,助推楼宇自控系统实现智能高效管理
  • 机器学习与深度学习算法:从决策树到 GAN 的原理与 PyTorch 实现
  • 数智读书笔记系列033《软件设计的哲学(第2版)》:复杂性管理的艺术
  • Qt C++图书管理系统
  • 在Linux debian12系统上使用go语言以及excelize库处理excel数据