BLE 详细学习步骤(六):进阶与前沿——多连接、Mesh、LE Audio、定位测距与量产认证

目标 :掌握 BLE 高级特性与前沿技术,包括多连接/多角色、PHY 进阶、DLE/MTU 优化、BLE Mesh、LE Audio、Direction Finding、Channel Sounding,以及认证与量产流程,具备从"能开发"到"能产品化"的能力。

文章目录

    • [6.1 进阶阶段的能力地图](#6.1 进阶阶段的能力地图)
    • [6.2 多连接与多角色](#6.2 多连接与多角色)
      • [6.2.1 什么是多角色(Dual-Mode Topology)](#6.2.1 什么是多角色(Dual-Mode Topology))
      • [6.2.2 多连接的数量与约束](#6.2.2 多连接的数量与约束)
      • [6.2.3 多连接工程建议](#6.2.3 多连接工程建议)
    • [6.3 PHY 层进阶](#6.3 PHY 层进阶)
      • [6.3.1 三种 PHY 对比](#6.3.1 三种 PHY 对比)
      • [6.3.2 PHY 切换流程](#6.3.2 PHY 切换流程)
      • [6.3.3 PHY 选择决策](#6.3.3 PHY 选择决策)
    • [6.4 Data Length Extension 与 MTU 优化](#6.4 Data Length Extension 与 MTU 优化)
      • [6.4.1 MTU 与 DLE 的区别](#6.4.1 MTU 与 DLE 的区别)
      • [6.4.2 优化四步法](#6.4.2 优化四步法)
      • [6.4.3 吞吐量估算](#6.4.3 吞吐量估算)
      • [6.4.4 优化决策图](#6.4.4 优化决策图)
    • [6.5 BLE Mesh](#6.5 BLE Mesh)
      • [6.5.1 Mesh 核心概念速览](#6.5.1 Mesh 核心概念速览)
      • [6.5.2 节点角色](#6.5.2 节点角色)
      • [6.5.3 配网流程](#6.5.3 配网流程)
      • [6.5.4 Mesh 适用与不适用](#6.5.4 Mesh 适用与不适用)
    • [6.6 LE Audio(BLE 5.2+)](#6.6 LE Audio(BLE 5.2+))
      • [6.6.1 LE Audio 的核心变化](#6.6.1 LE Audio 的核心变化)
      • [6.6.2 CIS 与 BIS 对比](#6.6.2 CIS 与 BIS 对比)
      • [6.6.3 LE Audio 的优势](#6.6.3 LE Audio 的优势)
    • [6.7 Direction Finding(BLE 5.1+)](#6.7 Direction Finding(BLE 5.1+))
      • [6.7.1 AoA 与 AoD 原理](#6.7.1 AoA 与 AoD 原理)
      • [6.7.2 CTE(Constant Tone Extension)](#6.7.2 CTE(Constant Tone Extension))
      • [6.7.3 定位精度与应用](#6.7.3 定位精度与应用)
    • [6.8 Channel Sounding(BLE 6.0)](#6.8 Channel Sounding(BLE 6.0))
      • [6.8.1 Channel Sounding 是什么](#6.8.1 Channel Sounding 是什么)
      • [6.8.2 与 Direction Finding 的对比](#6.8.2 与 Direction Finding 的对比)
      • [6.8.3 典型应用](#6.8.3 典型应用)
    • [6.9 认证与量产](#6.9 认证与量产)
      • [6.9.1 认证体系总览](#6.9.1 认证体系总览)
      • [6.9.2 OTA DFU 设计](#6.9.2 OTA DFU 设计)
      • [6.9.3 产线测试](#6.9.3 产线测试)
      • [6.9.4 量产检查清单](#6.9.4 量产检查清单)
    • [6.10 阶段检查点](#6.10 阶段检查点)
    • [6.11 动手实验](#6.11 动手实验)
    • [6.12 开源项目学习参考](#6.12 开源项目学习参考)
    • [6.13 面试与工程高频问题](#6.13 面试与工程高频问题)
    • 阶段总结

6.1 进阶阶段的能力地图

前五阶段解决的是"能不能做出来",第六阶段解决的是"能不能做得好、做得对、做得合规"。
#mermaid-svg-V2jClJ2dE2ItsgTo{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-V2jClJ2dE2ItsgTo .error-icon{fill:#552222;}#mermaid-svg-V2jClJ2dE2ItsgTo .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-V2jClJ2dE2ItsgTo .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-V2jClJ2dE2ItsgTo .marker{fill:#333333;stroke:#333333;}#mermaid-svg-V2jClJ2dE2ItsgTo .marker.cross{stroke:#333333;}#mermaid-svg-V2jClJ2dE2ItsgTo svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-V2jClJ2dE2ItsgTo p{margin:0;}#mermaid-svg-V2jClJ2dE2ItsgTo .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo .cluster-label text{fill:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo .cluster-label span{color:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo .cluster-label span p{background-color:transparent;}#mermaid-svg-V2jClJ2dE2ItsgTo .label text,#mermaid-svg-V2jClJ2dE2ItsgTo span{fill:#333;color:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo .node rect,#mermaid-svg-V2jClJ2dE2ItsgTo .node circle,#mermaid-svg-V2jClJ2dE2ItsgTo .node ellipse,#mermaid-svg-V2jClJ2dE2ItsgTo .node polygon,#mermaid-svg-V2jClJ2dE2ItsgTo .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-V2jClJ2dE2ItsgTo .rough-node .label text,#mermaid-svg-V2jClJ2dE2ItsgTo .node .label text,#mermaid-svg-V2jClJ2dE2ItsgTo .image-shape .label,#mermaid-svg-V2jClJ2dE2ItsgTo .icon-shape .label{text-anchor:middle;}#mermaid-svg-V2jClJ2dE2ItsgTo .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-V2jClJ2dE2ItsgTo .rough-node .label,#mermaid-svg-V2jClJ2dE2ItsgTo .node .label,#mermaid-svg-V2jClJ2dE2ItsgTo .image-shape .label,#mermaid-svg-V2jClJ2dE2ItsgTo .icon-shape .label{text-align:center;}#mermaid-svg-V2jClJ2dE2ItsgTo .node.clickable{cursor:pointer;}#mermaid-svg-V2jClJ2dE2ItsgTo .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-V2jClJ2dE2ItsgTo .arrowheadPath{fill:#333333;}#mermaid-svg-V2jClJ2dE2ItsgTo .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-V2jClJ2dE2ItsgTo .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-V2jClJ2dE2ItsgTo .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-V2jClJ2dE2ItsgTo .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-V2jClJ2dE2ItsgTo .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-V2jClJ2dE2ItsgTo .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-V2jClJ2dE2ItsgTo .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-V2jClJ2dE2ItsgTo .cluster text{fill:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo .cluster span{color:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-V2jClJ2dE2ItsgTo .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-V2jClJ2dE2ItsgTo rect.text{fill:none;stroke-width:0;}#mermaid-svg-V2jClJ2dE2ItsgTo .icon-shape,#mermaid-svg-V2jClJ2dE2ItsgTo .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-V2jClJ2dE2ItsgTo .icon-shape p,#mermaid-svg-V2jClJ2dE2ItsgTo .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-V2jClJ2dE2ItsgTo .icon-shape .label rect,#mermaid-svg-V2jClJ2dE2ItsgTo .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-V2jClJ2dE2ItsgTo .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-V2jClJ2dE2ItsgTo .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-V2jClJ2dE2ItsgTo :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 产品化
Bluetooth SIG 认证
射频认证 FCC/CE/SRRC
OTA DFU 与量产测试
定位与测距
Direction Finding(AoA/AoD)
Channel Sounding(BLE 6.0)
组网与音频
BLE Mesh
LE Audio / Auracast
性能进阶
多连接/多角色
PHY 切换与 2M/Coded
DLE + MTU 吞吐优化

能力 验收标准
多连接 能实现一台设备同时连接多个 Central/Peripheral
PHY 进阶 能动态切换 1M/2M/Coded 并实测覆盖与吞吐
吞吐优化 能把吞吐优化到理论值的 70% 以上
Mesh 能搭建并调试小型 Mesh 网络
LE Audio 能说清 CIS/BIS 区别与 LC3 优势
定位 能说清 AoA/AoD 原理与 Channel Sounding 差异
产品化 能制定认证与量产测试计划

6.2 多连接与多角色

6.2.1 什么是多角色(Dual-Mode Topology)

BLE 4.1 引入 Dual-Mode Topology ,允许设备同时扮演 Central 和 Peripheral。
#mermaid-svg-GVARVzWW7nVgm5Sy{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GVARVzWW7nVgm5Sy .error-icon{fill:#552222;}#mermaid-svg-GVARVzWW7nVgm5Sy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GVARVzWW7nVgm5Sy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GVARVzWW7nVgm5Sy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GVARVzWW7nVgm5Sy .marker.cross{stroke:#333333;}#mermaid-svg-GVARVzWW7nVgm5Sy svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GVARVzWW7nVgm5Sy p{margin:0;}#mermaid-svg-GVARVzWW7nVgm5Sy .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy .cluster-label text{fill:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy .cluster-label span{color:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy .cluster-label span p{background-color:transparent;}#mermaid-svg-GVARVzWW7nVgm5Sy .label text,#mermaid-svg-GVARVzWW7nVgm5Sy span{fill:#333;color:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy .node rect,#mermaid-svg-GVARVzWW7nVgm5Sy .node circle,#mermaid-svg-GVARVzWW7nVgm5Sy .node ellipse,#mermaid-svg-GVARVzWW7nVgm5Sy .node polygon,#mermaid-svg-GVARVzWW7nVgm5Sy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-GVARVzWW7nVgm5Sy .rough-node .label text,#mermaid-svg-GVARVzWW7nVgm5Sy .node .label text,#mermaid-svg-GVARVzWW7nVgm5Sy .image-shape .label,#mermaid-svg-GVARVzWW7nVgm5Sy .icon-shape .label{text-anchor:middle;}#mermaid-svg-GVARVzWW7nVgm5Sy .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-GVARVzWW7nVgm5Sy .rough-node .label,#mermaid-svg-GVARVzWW7nVgm5Sy .node .label,#mermaid-svg-GVARVzWW7nVgm5Sy .image-shape .label,#mermaid-svg-GVARVzWW7nVgm5Sy .icon-shape .label{text-align:center;}#mermaid-svg-GVARVzWW7nVgm5Sy .node.clickable{cursor:pointer;}#mermaid-svg-GVARVzWW7nVgm5Sy .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-GVARVzWW7nVgm5Sy .arrowheadPath{fill:#333333;}#mermaid-svg-GVARVzWW7nVgm5Sy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-GVARVzWW7nVgm5Sy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-GVARVzWW7nVgm5Sy .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GVARVzWW7nVgm5Sy .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-GVARVzWW7nVgm5Sy .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GVARVzWW7nVgm5Sy .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-GVARVzWW7nVgm5Sy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-GVARVzWW7nVgm5Sy .cluster text{fill:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy .cluster span{color:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-GVARVzWW7nVgm5Sy .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-GVARVzWW7nVgm5Sy rect.text{fill:none;stroke-width:0;}#mermaid-svg-GVARVzWW7nVgm5Sy .icon-shape,#mermaid-svg-GVARVzWW7nVgm5Sy .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-GVARVzWW7nVgm5Sy .icon-shape p,#mermaid-svg-GVARVzWW7nVgm5Sy .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-GVARVzWW7nVgm5Sy .icon-shape .label rect,#mermaid-svg-GVARVzWW7nVgm5Sy .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-GVARVzWW7nVgm5Sy .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-GVARVzWW7nVgm5Sy .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-GVARVzWW7nVgm5Sy :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 传感器
网关设备(Dual-Mode)
手机(Central)
Central
Peripheral 角色

(对手机)
Central 角色

(对传感器)
Peripheral 1
Peripheral 2
Peripheral 3

角色组合 说明 典型场景
Central + Central 同时连接多个外设 多传感器采集盒
Peripheral + Peripheral 同时被多个主机连接 共享设备
Central + Peripheral 同时连接和被连接 网关、Hub、桥接器
Broadcaster + Observer 只广播/只扫描 信标、扫描枪

6.2.2 多连接的数量与约束

约束 说明
芯片连接数上限 通常 4--20 个,取决于芯片(Nordic nRF52 约 20,ESP32 约 9)
连接间隔时隙冲突 多个连接的事件不能重叠
最小连接间隔经验公式 ≥ 12.5 + 5 × n ms(n 为当前连接数)
RAM 消耗 每增加一个连接约 1--2 KB
射频调度 连接越多,单连接可用时隙越少,吞吐下降

多连接时隙示意:

text 复制代码
连接 1:|---事件1---|           |---事件1---|
连接 2:      |---事件2---|           |---事件2---|
连接 3:            |---事件3---|           |---事件3---|
时间轴 ──────────────────────────────────────────►
         ↑ 事件不能重叠,否则丢包

6.2.3 多连接工程建议

建议 说明
合理设置连接间隔 连接越多,间隔应越大
避免同时高频通知 多连接下通知会抢占时隙
使用连接参数协商 让 Central 接受更合理的参数
监控丢包率 多连接下丢包率上升是时隙冲突信号
分时调度 关键连接优先,非关键连接拉长间隔

6.3 PHY 层进阶

6.3.1 三种 PHY 对比

PHY 类型 速率 引入版本 特点 典型用途
LE 1M 1 Mbps 4.0 默认 PHY,覆盖最优 通用场景
LE 2M 2 Mbps 5.0 速率翻倍,传输时间减半 高吞吐、省电
LE Coded S=2 125 Kbps 5.0 编码增益,覆盖约 2 倍 远距离
LE Coded S=8 125 Kbps 5.0 编码增益,覆盖约 4 倍 超远距离

6.3.2 PHY 切换流程

Peripheral Central Peripheral Central #mermaid-svg-1jb4Yr0BgDg3XiAA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-1jb4Yr0BgDg3XiAA .error-icon{fill:#552222;}#mermaid-svg-1jb4Yr0BgDg3XiAA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-1jb4Yr0BgDg3XiAA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-1jb4Yr0BgDg3XiAA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-1jb4Yr0BgDg3XiAA .marker.cross{stroke:#333333;}#mermaid-svg-1jb4Yr0BgDg3XiAA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-1jb4Yr0BgDg3XiAA p{margin:0;}#mermaid-svg-1jb4Yr0BgDg3XiAA .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-1jb4Yr0BgDg3XiAA text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-1jb4Yr0BgDg3XiAA .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-1jb4Yr0BgDg3XiAA .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-1jb4Yr0BgDg3XiAA #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-1jb4Yr0BgDg3XiAA .sequenceNumber{fill:white;}#mermaid-svg-1jb4Yr0BgDg3XiAA #sequencenumber{fill:#333;}#mermaid-svg-1jb4Yr0BgDg3XiAA #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-1jb4Yr0BgDg3XiAA .messageText{fill:#333;stroke:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-1jb4Yr0BgDg3XiAA .labelText,#mermaid-svg-1jb4Yr0BgDg3XiAA .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .loopText,#mermaid-svg-1jb4Yr0BgDg3XiAA .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-1jb4Yr0BgDg3XiAA .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-1jb4Yr0BgDg3XiAA .noteText,#mermaid-svg-1jb4Yr0BgDg3XiAA .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-1jb4Yr0BgDg3XiAA .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-1jb4Yr0BgDg3XiAA .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-1jb4Yr0BgDg3XiAA .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-1jb4Yr0BgDg3XiAA .actorPopupMenu{position:absolute;}#mermaid-svg-1jb4Yr0BgDg3XiAA .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-1jb4Yr0BgDg3XiAA .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-1jb4Yr0BgDg3XiAA .actor-man circle,#mermaid-svg-1jb4Yr0BgDg3XiAA line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-1jb4Yr0BgDg3XiAA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 双方切换到 2M PHY LL_PHY_REQ(请求 2M) 1 LL_PHY_RSP(接受 2M) 2 LL_PHY_UPDATE_IND 3 🔵 2M PHY 数据 4

步骤 说明
1 任意一方发送 LL_PHY_REQ
2 对方回复 LL_PHY_RSP
3 Central 发送 LL_PHY_UPDATE_IND 指定生效时机
4 双方在指定连接事件切换到新 PHY

6.3.3 PHY 选择决策

#mermaid-svg-OHZEQY2APM7EPBCi{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-OHZEQY2APM7EPBCi .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-OHZEQY2APM7EPBCi .error-icon{fill:#552222;}#mermaid-svg-OHZEQY2APM7EPBCi .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OHZEQY2APM7EPBCi .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OHZEQY2APM7EPBCi .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OHZEQY2APM7EPBCi .marker.cross{stroke:#333333;}#mermaid-svg-OHZEQY2APM7EPBCi svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OHZEQY2APM7EPBCi p{margin:0;}#mermaid-svg-OHZEQY2APM7EPBCi .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OHZEQY2APM7EPBCi .cluster-label text{fill:#333;}#mermaid-svg-OHZEQY2APM7EPBCi .cluster-label span{color:#333;}#mermaid-svg-OHZEQY2APM7EPBCi .cluster-label span p{background-color:transparent;}#mermaid-svg-OHZEQY2APM7EPBCi .label text,#mermaid-svg-OHZEQY2APM7EPBCi span{fill:#333;color:#333;}#mermaid-svg-OHZEQY2APM7EPBCi .node rect,#mermaid-svg-OHZEQY2APM7EPBCi .node circle,#mermaid-svg-OHZEQY2APM7EPBCi .node ellipse,#mermaid-svg-OHZEQY2APM7EPBCi .node polygon,#mermaid-svg-OHZEQY2APM7EPBCi .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OHZEQY2APM7EPBCi .rough-node .label text,#mermaid-svg-OHZEQY2APM7EPBCi .node .label text,#mermaid-svg-OHZEQY2APM7EPBCi .image-shape .label,#mermaid-svg-OHZEQY2APM7EPBCi .icon-shape .label{text-anchor:middle;}#mermaid-svg-OHZEQY2APM7EPBCi .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-OHZEQY2APM7EPBCi .rough-node .label,#mermaid-svg-OHZEQY2APM7EPBCi .node .label,#mermaid-svg-OHZEQY2APM7EPBCi .image-shape .label,#mermaid-svg-OHZEQY2APM7EPBCi .icon-shape .label{text-align:center;}#mermaid-svg-OHZEQY2APM7EPBCi .node.clickable{cursor:pointer;}#mermaid-svg-OHZEQY2APM7EPBCi .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-OHZEQY2APM7EPBCi .arrowheadPath{fill:#333333;}#mermaid-svg-OHZEQY2APM7EPBCi .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OHZEQY2APM7EPBCi .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OHZEQY2APM7EPBCi .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OHZEQY2APM7EPBCi .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-OHZEQY2APM7EPBCi .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OHZEQY2APM7EPBCi .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-OHZEQY2APM7EPBCi .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OHZEQY2APM7EPBCi .cluster text{fill:#333;}#mermaid-svg-OHZEQY2APM7EPBCi .cluster span{color:#333;}#mermaid-svg-OHZEQY2APM7EPBCi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OHZEQY2APM7EPBCi .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-OHZEQY2APM7EPBCi rect.text{fill:none;stroke-width:0;}#mermaid-svg-OHZEQY2APM7EPBCi .icon-shape,#mermaid-svg-OHZEQY2APM7EPBCi .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OHZEQY2APM7EPBCi .icon-shape p,#mermaid-svg-OHZEQY2APM7EPBCi .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-OHZEQY2APM7EPBCi .icon-shape .label rect,#mermaid-svg-OHZEQY2APM7EPBCi .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OHZEQY2APM7EPBCi .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-OHZEQY2APM7EPBCi .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-OHZEQY2APM7EPBCi :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是
否
是
否
选择 PHY
需要远距离?
✅ LE Coded S=8
需要高吞吐/省电?
✅ LE 2M
✅ LE 1M(默认)

场景 推荐 PHY 理由
普通手环 1M 兼容性最好
固件升级(OTA) 2M 传输时间减半,省电
室内定位信标 1M 覆盖与功耗平衡
室外远距离传感器 Coded S=8 覆盖优先
音频 2M 吞吐需求高

6.4 Data Length Extension 与 MTU 优化

6.4.1 MTU 与 DLE 的区别

项目 ATT MTU LL Data Length (DLE)
所在层 ATT 层 Link Layer
默认值 23 字节 27 字节
最大值 517 字节 251 字节
作用 单次 ATT PDU 最大长度 单个 LL PDU 承载的数据量
协商方式 ATT Exchange MTU LL_LENGTH_REQ/RSP

6.4.2 优化四步法

步骤 操作 效果
1 协商 MTU 到 247 或 517 减少 ATT 层分段
2 协商 DLE 到 251 字节 单个 LL PDU 承载更多数据
3 启用 2M PHY 传输时间减半
4 优化 Connection Interval 每个连接事件传更多包

6.4.3 吞吐量估算

text 复制代码
理论吞吐 ≈ (ATT MTU - 3) × 8 / Connection Interval

示例:MTU=247, CI=7.5ms
     ≈ (247 - 3) × 8 / 0.0075 ≈ 260 Kbps

优化后(2M PHY + DLE)实际可达理论值 70%--80%
优化项 对吞吐的影响
MTU 23 → 247 显著提升
DLE 27 → 251 显著提升
1M → 2M PHY 约翻倍
CI 减小 提升但功耗上升

6.4.4 优化决策图

#mermaid-svg-rpPx8ikK3FloGWKn{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-rpPx8ikK3FloGWKn .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-rpPx8ikK3FloGWKn .error-icon{fill:#552222;}#mermaid-svg-rpPx8ikK3FloGWKn .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-rpPx8ikK3FloGWKn .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-rpPx8ikK3FloGWKn .marker{fill:#333333;stroke:#333333;}#mermaid-svg-rpPx8ikK3FloGWKn .marker.cross{stroke:#333333;}#mermaid-svg-rpPx8ikK3FloGWKn svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-rpPx8ikK3FloGWKn p{margin:0;}#mermaid-svg-rpPx8ikK3FloGWKn .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-rpPx8ikK3FloGWKn .cluster-label text{fill:#333;}#mermaid-svg-rpPx8ikK3FloGWKn .cluster-label span{color:#333;}#mermaid-svg-rpPx8ikK3FloGWKn .cluster-label span p{background-color:transparent;}#mermaid-svg-rpPx8ikK3FloGWKn .label text,#mermaid-svg-rpPx8ikK3FloGWKn span{fill:#333;color:#333;}#mermaid-svg-rpPx8ikK3FloGWKn .node rect,#mermaid-svg-rpPx8ikK3FloGWKn .node circle,#mermaid-svg-rpPx8ikK3FloGWKn .node ellipse,#mermaid-svg-rpPx8ikK3FloGWKn .node polygon,#mermaid-svg-rpPx8ikK3FloGWKn .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-rpPx8ikK3FloGWKn .rough-node .label text,#mermaid-svg-rpPx8ikK3FloGWKn .node .label text,#mermaid-svg-rpPx8ikK3FloGWKn .image-shape .label,#mermaid-svg-rpPx8ikK3FloGWKn .icon-shape .label{text-anchor:middle;}#mermaid-svg-rpPx8ikK3FloGWKn .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-rpPx8ikK3FloGWKn .rough-node .label,#mermaid-svg-rpPx8ikK3FloGWKn .node .label,#mermaid-svg-rpPx8ikK3FloGWKn .image-shape .label,#mermaid-svg-rpPx8ikK3FloGWKn .icon-shape .label{text-align:center;}#mermaid-svg-rpPx8ikK3FloGWKn .node.clickable{cursor:pointer;}#mermaid-svg-rpPx8ikK3FloGWKn .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-rpPx8ikK3FloGWKn .arrowheadPath{fill:#333333;}#mermaid-svg-rpPx8ikK3FloGWKn .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-rpPx8ikK3FloGWKn .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-rpPx8ikK3FloGWKn .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-rpPx8ikK3FloGWKn .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-rpPx8ikK3FloGWKn .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-rpPx8ikK3FloGWKn .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-rpPx8ikK3FloGWKn .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-rpPx8ikK3FloGWKn .cluster text{fill:#333;}#mermaid-svg-rpPx8ikK3FloGWKn .cluster span{color:#333;}#mermaid-svg-rpPx8ikK3FloGWKn div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-rpPx8ikK3FloGWKn .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-rpPx8ikK3FloGWKn rect.text{fill:none;stroke-width:0;}#mermaid-svg-rpPx8ikK3FloGWKn .icon-shape,#mermaid-svg-rpPx8ikK3FloGWKn .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-rpPx8ikK3FloGWKn .icon-shape p,#mermaid-svg-rpPx8ikK3FloGWKn .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-rpPx8ikK3FloGWKn .icon-shape .label rect,#mermaid-svg-rpPx8ikK3FloGWKn .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-rpPx8ikK3FloGWKn .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-rpPx8ikK3FloGWKn .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-rpPx8ikK3FloGWKn :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 否
是
否
是
是
否
吞吐不足
MTU 是否已协商?
协商 MTU 247/517
DLE 是否已协商?
协商 DLE 251
是否支持 2M PHY?
切换到 2M PHY
优化 Connection Interval
实测吞吐


6.5 BLE Mesh

6.5.1 Mesh 核心概念速览

BLE Mesh 是在 BLE 广播之上构建的组网协议,核心是广播承载 + 多跳泛洪 + 发布/订阅 + 三层密钥。
#mermaid-svg-x0soBfbkfqHiRMwD{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-x0soBfbkfqHiRMwD .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-x0soBfbkfqHiRMwD .error-icon{fill:#552222;}#mermaid-svg-x0soBfbkfqHiRMwD .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-x0soBfbkfqHiRMwD .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-x0soBfbkfqHiRMwD .marker{fill:#333333;stroke:#333333;}#mermaid-svg-x0soBfbkfqHiRMwD .marker.cross{stroke:#333333;}#mermaid-svg-x0soBfbkfqHiRMwD svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-x0soBfbkfqHiRMwD p{margin:0;}#mermaid-svg-x0soBfbkfqHiRMwD .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-x0soBfbkfqHiRMwD .cluster-label text{fill:#333;}#mermaid-svg-x0soBfbkfqHiRMwD .cluster-label span{color:#333;}#mermaid-svg-x0soBfbkfqHiRMwD .cluster-label span p{background-color:transparent;}#mermaid-svg-x0soBfbkfqHiRMwD .label text,#mermaid-svg-x0soBfbkfqHiRMwD span{fill:#333;color:#333;}#mermaid-svg-x0soBfbkfqHiRMwD .node rect,#mermaid-svg-x0soBfbkfqHiRMwD .node circle,#mermaid-svg-x0soBfbkfqHiRMwD .node ellipse,#mermaid-svg-x0soBfbkfqHiRMwD .node polygon,#mermaid-svg-x0soBfbkfqHiRMwD .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-x0soBfbkfqHiRMwD .rough-node .label text,#mermaid-svg-x0soBfbkfqHiRMwD .node .label text,#mermaid-svg-x0soBfbkfqHiRMwD .image-shape .label,#mermaid-svg-x0soBfbkfqHiRMwD .icon-shape .label{text-anchor:middle;}#mermaid-svg-x0soBfbkfqHiRMwD .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-x0soBfbkfqHiRMwD .rough-node .label,#mermaid-svg-x0soBfbkfqHiRMwD .node .label,#mermaid-svg-x0soBfbkfqHiRMwD .image-shape .label,#mermaid-svg-x0soBfbkfqHiRMwD .icon-shape .label{text-align:center;}#mermaid-svg-x0soBfbkfqHiRMwD .node.clickable{cursor:pointer;}#mermaid-svg-x0soBfbkfqHiRMwD .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-x0soBfbkfqHiRMwD .arrowheadPath{fill:#333333;}#mermaid-svg-x0soBfbkfqHiRMwD .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-x0soBfbkfqHiRMwD .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-x0soBfbkfqHiRMwD .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-x0soBfbkfqHiRMwD .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-x0soBfbkfqHiRMwD .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-x0soBfbkfqHiRMwD .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-x0soBfbkfqHiRMwD .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-x0soBfbkfqHiRMwD .cluster text{fill:#333;}#mermaid-svg-x0soBfbkfqHiRMwD .cluster span{color:#333;}#mermaid-svg-x0soBfbkfqHiRMwD div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-x0soBfbkfqHiRMwD .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-x0soBfbkfqHiRMwD rect.text{fill:none;stroke-width:0;}#mermaid-svg-x0soBfbkfqHiRMwD .icon-shape,#mermaid-svg-x0soBfbkfqHiRMwD .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-x0soBfbkfqHiRMwD .icon-shape p,#mermaid-svg-x0soBfbkfqHiRMwD .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-x0soBfbkfqHiRMwD .icon-shape .label rect,#mermaid-svg-x0soBfbkfqHiRMwD .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-x0soBfbkfqHiRMwD .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-x0soBfbkfqHiRMwD .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-x0soBfbkfqHiRMwD :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} BLE Mesh 协议栈
Model Layer
Access Layer
Upper Transport
Lower Transport
Network Layer
Bearer Layer
Advertising Bearer
GATT Bearer

关键概念 说明
Node / Element / Model 设备 / 功能单元 / 行为定义
Relay 中继转发,扩展覆盖
Proxy 通过 GATT 让手机接入
Friend / LPN 为低功耗节点缓存消息
NetKey / AppKey / DevKey 三层安全密钥
Managed Flooding 受控泛洪,无路由表

6.5.2 节点角色

#mermaid-svg-ADmQrWz1FQjzuqbO{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ADmQrWz1FQjzuqbO .error-icon{fill:#552222;}#mermaid-svg-ADmQrWz1FQjzuqbO .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ADmQrWz1FQjzuqbO .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ADmQrWz1FQjzuqbO .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ADmQrWz1FQjzuqbO .marker.cross{stroke:#333333;}#mermaid-svg-ADmQrWz1FQjzuqbO svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ADmQrWz1FQjzuqbO p{margin:0;}#mermaid-svg-ADmQrWz1FQjzuqbO .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO .cluster-label text{fill:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO .cluster-label span{color:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO .cluster-label span p{background-color:transparent;}#mermaid-svg-ADmQrWz1FQjzuqbO .label text,#mermaid-svg-ADmQrWz1FQjzuqbO span{fill:#333;color:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO .node rect,#mermaid-svg-ADmQrWz1FQjzuqbO .node circle,#mermaid-svg-ADmQrWz1FQjzuqbO .node ellipse,#mermaid-svg-ADmQrWz1FQjzuqbO .node polygon,#mermaid-svg-ADmQrWz1FQjzuqbO .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ADmQrWz1FQjzuqbO .rough-node .label text,#mermaid-svg-ADmQrWz1FQjzuqbO .node .label text,#mermaid-svg-ADmQrWz1FQjzuqbO .image-shape .label,#mermaid-svg-ADmQrWz1FQjzuqbO .icon-shape .label{text-anchor:middle;}#mermaid-svg-ADmQrWz1FQjzuqbO .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ADmQrWz1FQjzuqbO .rough-node .label,#mermaid-svg-ADmQrWz1FQjzuqbO .node .label,#mermaid-svg-ADmQrWz1FQjzuqbO .image-shape .label,#mermaid-svg-ADmQrWz1FQjzuqbO .icon-shape .label{text-align:center;}#mermaid-svg-ADmQrWz1FQjzuqbO .node.clickable{cursor:pointer;}#mermaid-svg-ADmQrWz1FQjzuqbO .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ADmQrWz1FQjzuqbO .arrowheadPath{fill:#333333;}#mermaid-svg-ADmQrWz1FQjzuqbO .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ADmQrWz1FQjzuqbO .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ADmQrWz1FQjzuqbO .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ADmQrWz1FQjzuqbO .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ADmQrWz1FQjzuqbO .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ADmQrWz1FQjzuqbO .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ADmQrWz1FQjzuqbO .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ADmQrWz1FQjzuqbO .cluster text{fill:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO .cluster span{color:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ADmQrWz1FQjzuqbO .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ADmQrWz1FQjzuqbO rect.text{fill:none;stroke-width:0;}#mermaid-svg-ADmQrWz1FQjzuqbO .icon-shape,#mermaid-svg-ADmQrWz1FQjzuqbO .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ADmQrWz1FQjzuqbO .icon-shape p,#mermaid-svg-ADmQrWz1FQjzuqbO .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ADmQrWz1FQjzuqbO .icon-shape .label rect,#mermaid-svg-ADmQrWz1FQjzuqbO .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ADmQrWz1FQjzuqbO .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ADmQrWz1FQjzuqbO .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ADmQrWz1FQjzuqbO :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Provisioner

(手机/网关)
普通节点
Relay 节点
普通节点
LPN

(低功耗)
Friend 节点

角色 职责 功耗
普通节点 收发自己的消息 中
Relay 转发其他节点消息 较高
Proxy 让 GATT 设备接入 较高
Friend 为 LPN 缓存消息 较高
LPN 休眠 + 周期轮询 极低

6.5.3 配网流程

未配网设备 Provisioner 未配网设备 Provisioner #mermaid-svg-Yq5qd14MBII54u2h{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Yq5qd14MBII54u2h .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Yq5qd14MBII54u2h .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Yq5qd14MBII54u2h .error-icon{fill:#552222;}#mermaid-svg-Yq5qd14MBII54u2h .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Yq5qd14MBII54u2h .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Yq5qd14MBII54u2h .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Yq5qd14MBII54u2h .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Yq5qd14MBII54u2h .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Yq5qd14MBII54u2h .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Yq5qd14MBII54u2h .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Yq5qd14MBII54u2h .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Yq5qd14MBII54u2h .marker.cross{stroke:#333333;}#mermaid-svg-Yq5qd14MBII54u2h svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Yq5qd14MBII54u2h p{margin:0;}#mermaid-svg-Yq5qd14MBII54u2h .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-Yq5qd14MBII54u2h text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-Yq5qd14MBII54u2h .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-Yq5qd14MBII54u2h .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-Yq5qd14MBII54u2h .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-Yq5qd14MBII54u2h .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-Yq5qd14MBII54u2h #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-Yq5qd14MBII54u2h .sequenceNumber{fill:white;}#mermaid-svg-Yq5qd14MBII54u2h #sequencenumber{fill:#333;}#mermaid-svg-Yq5qd14MBII54u2h #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-Yq5qd14MBII54u2h .messageText{fill:#333;stroke:none;}#mermaid-svg-Yq5qd14MBII54u2h .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-Yq5qd14MBII54u2h .labelText,#mermaid-svg-Yq5qd14MBII54u2h .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-Yq5qd14MBII54u2h .loopText,#mermaid-svg-Yq5qd14MBII54u2h .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-Yq5qd14MBII54u2h .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-Yq5qd14MBII54u2h .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-Yq5qd14MBII54u2h .noteText,#mermaid-svg-Yq5qd14MBII54u2h .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-Yq5qd14MBII54u2h .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-Yq5qd14MBII54u2h .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-Yq5qd14MBII54u2h .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-Yq5qd14MBII54u2h .actorPopupMenu{position:absolute;}#mermaid-svg-Yq5qd14MBII54u2h .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-Yq5qd14MBII54u2h .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-Yq5qd14MBII54u2h .actor-man circle,#mermaid-svg-Yq5qd14MBII54u2h line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-Yq5qd14MBII54u2h :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} ECDH P-256 Mesh Beacon 1 Invite / Capabilities 2 Start 3 Public Key 4 Public Key 5 认证(Blink/Input/Output/OOB) 6 分发 NetKey + 单播地址 + IV Index 7 Provisioning Complete 8

6.5.4 Mesh 适用与不适用

适用 不适用
大规模灯控 大文件传输
楼宇自动化 高实时控制
工业传感网络 高吞吐场景
资产追踪 低延迟音视频

详细内容 可参考我此前撰写的《低功耗蓝牙 Mesh 详解》专题文章,涵盖架构、协议栈、安全、配网、开发实践与排障。

低功耗蓝牙 Mesh 详解:架构、协议栈、安全与开发实践


6.6 LE Audio(BLE 5.2+)

6.6.1 LE Audio 的核心变化

LE Audio 不是"BLE 传音频"这么简单,它引入了全新的音频架构 ,用 LC3 编码 + 等时信道(Isochronous Channels) 替代经典蓝牙的 A2DP/HFP。
#mermaid-svg-fPxMkTWFz0pKHhnX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-fPxMkTWFz0pKHhnX .error-icon{fill:#552222;}#mermaid-svg-fPxMkTWFz0pKHhnX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fPxMkTWFz0pKHhnX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fPxMkTWFz0pKHhnX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fPxMkTWFz0pKHhnX .marker.cross{stroke:#333333;}#mermaid-svg-fPxMkTWFz0pKHhnX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fPxMkTWFz0pKHhnX p{margin:0;}#mermaid-svg-fPxMkTWFz0pKHhnX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX .cluster-label text{fill:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX .cluster-label span{color:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX .cluster-label span p{background-color:transparent;}#mermaid-svg-fPxMkTWFz0pKHhnX .label text,#mermaid-svg-fPxMkTWFz0pKHhnX span{fill:#333;color:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX .node rect,#mermaid-svg-fPxMkTWFz0pKHhnX .node circle,#mermaid-svg-fPxMkTWFz0pKHhnX .node ellipse,#mermaid-svg-fPxMkTWFz0pKHhnX .node polygon,#mermaid-svg-fPxMkTWFz0pKHhnX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-fPxMkTWFz0pKHhnX .rough-node .label text,#mermaid-svg-fPxMkTWFz0pKHhnX .node .label text,#mermaid-svg-fPxMkTWFz0pKHhnX .image-shape .label,#mermaid-svg-fPxMkTWFz0pKHhnX .icon-shape .label{text-anchor:middle;}#mermaid-svg-fPxMkTWFz0pKHhnX .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-fPxMkTWFz0pKHhnX .rough-node .label,#mermaid-svg-fPxMkTWFz0pKHhnX .node .label,#mermaid-svg-fPxMkTWFz0pKHhnX .image-shape .label,#mermaid-svg-fPxMkTWFz0pKHhnX .icon-shape .label{text-align:center;}#mermaid-svg-fPxMkTWFz0pKHhnX .node.clickable{cursor:pointer;}#mermaid-svg-fPxMkTWFz0pKHhnX .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-fPxMkTWFz0pKHhnX .arrowheadPath{fill:#333333;}#mermaid-svg-fPxMkTWFz0pKHhnX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-fPxMkTWFz0pKHhnX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-fPxMkTWFz0pKHhnX .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fPxMkTWFz0pKHhnX .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-fPxMkTWFz0pKHhnX .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fPxMkTWFz0pKHhnX .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-fPxMkTWFz0pKHhnX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-fPxMkTWFz0pKHhnX .cluster text{fill:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX .cluster span{color:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-fPxMkTWFz0pKHhnX .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-fPxMkTWFz0pKHhnX rect.text{fill:none;stroke-width:0;}#mermaid-svg-fPxMkTWFz0pKHhnX .icon-shape,#mermaid-svg-fPxMkTWFz0pKHhnX .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-fPxMkTWFz0pKHhnX .icon-shape p,#mermaid-svg-fPxMkTWFz0pKHhnX .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-fPxMkTWFz0pKHhnX .icon-shape .label rect,#mermaid-svg-fPxMkTWFz0pKHhnX .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-fPxMkTWFz0pKHhnX .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-fPxMkTWFz0pKHhnX .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-fPxMkTWFz0pKHhnX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} LE Audio
LC3 编码
CIS 单播音频
BIS 广播音频
Auracast 广播
经典蓝牙音频
A2DP(SBC/AAC)
HFP(通话)
SCO/eSCO 链路

特性 说明
LC3 低复杂度通信编码,低码率高质量
CIS Connected Isochronous Stream,点对点同步音频
BIS Broadcast Isochronous Stream,一对多广播音频
Auracast 基于 BIS 的广播音频分享
TMAP/HAP/BAP 标准音频 Profile

6.6.2 CIS 与 BIS 对比

维度 CIS BIS
连接方式 面向连接 无连接广播
拓扑 点对点 / 点对多 一对多
可靠性 有确认/重传 无确认
典型场景 真无线耳机、助听器 Auracast 广播、多语言导览
延迟 低 低

6.6.3 LE Audio 的优势

优势 说明
更低功耗 LC3 比 SBC 更高效
更低延迟 等时信道保证时序
支持助听器 标准化助听器支持
多流音频 左右耳独立流
广播音频 Auracast 一对多分享

6.7 Direction Finding(BLE 5.1+)

6.7.1 AoA 与 AoD 原理

Direction Finding 通过天线阵列测量信号到达/离开角度,实现亚米级定位。
#mermaid-svg-xl1GAQBRLmNtW2Ul{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-xl1GAQBRLmNtW2Ul .error-icon{fill:#552222;}#mermaid-svg-xl1GAQBRLmNtW2Ul .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-xl1GAQBRLmNtW2Ul .marker{fill:#333333;stroke:#333333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .marker.cross{stroke:#333333;}#mermaid-svg-xl1GAQBRLmNtW2Ul svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-xl1GAQBRLmNtW2Ul p{margin:0;}#mermaid-svg-xl1GAQBRLmNtW2Ul .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .cluster-label text{fill:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .cluster-label span{color:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .cluster-label span p{background-color:transparent;}#mermaid-svg-xl1GAQBRLmNtW2Ul .label text,#mermaid-svg-xl1GAQBRLmNtW2Ul span{fill:#333;color:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .node rect,#mermaid-svg-xl1GAQBRLmNtW2Ul .node circle,#mermaid-svg-xl1GAQBRLmNtW2Ul .node ellipse,#mermaid-svg-xl1GAQBRLmNtW2Ul .node polygon,#mermaid-svg-xl1GAQBRLmNtW2Ul .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .rough-node .label text,#mermaid-svg-xl1GAQBRLmNtW2Ul .node .label text,#mermaid-svg-xl1GAQBRLmNtW2Ul .image-shape .label,#mermaid-svg-xl1GAQBRLmNtW2Ul .icon-shape .label{text-anchor:middle;}#mermaid-svg-xl1GAQBRLmNtW2Ul .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .rough-node .label,#mermaid-svg-xl1GAQBRLmNtW2Ul .node .label,#mermaid-svg-xl1GAQBRLmNtW2Ul .image-shape .label,#mermaid-svg-xl1GAQBRLmNtW2Ul .icon-shape .label{text-align:center;}#mermaid-svg-xl1GAQBRLmNtW2Ul .node.clickable{cursor:pointer;}#mermaid-svg-xl1GAQBRLmNtW2Ul .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .arrowheadPath{fill:#333333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xl1GAQBRLmNtW2Ul .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-xl1GAQBRLmNtW2Ul .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xl1GAQBRLmNtW2Ul .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-xl1GAQBRLmNtW2Ul .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .cluster text{fill:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul .cluster span{color:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-xl1GAQBRLmNtW2Ul .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-xl1GAQBRLmNtW2Ul rect.text{fill:none;stroke-width:0;}#mermaid-svg-xl1GAQBRLmNtW2Ul .icon-shape,#mermaid-svg-xl1GAQBRLmNtW2Ul .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-xl1GAQBRLmNtW2Ul .icon-shape p,#mermaid-svg-xl1GAQBRLmNtW2Ul .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-xl1GAQBRLmNtW2Ul .icon-shape .label rect,#mermaid-svg-xl1GAQBRLmNtW2Ul .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-xl1GAQBRLmNtW2Ul .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-xl1GAQBRLmNtW2Ul .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-xl1GAQBRLmNtW2Ul :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} AoD(离开角)
发射端

天线阵列
接收端

单天线
测量离开角度
AoA(到达角)
发射端

单天线
接收端

天线阵列
测量到达角度

方式 发射端 接收端 计算方
AoA 单天线 天线阵列 接收端测到达角
AoD 天线阵列 单天线 接收端测离开角

6.7.2 CTE(Constant Tone Extension)

要点 说明
作用 在数据包尾部附加恒定频率段,用于相位测量
长度 16--160 μs
类型 AoA CTE / AoD CTE(1μs/2μs 时隙)
前提 双方都支持 Direction Finding

6.7.3 定位精度与应用

指标 典型值
精度 亚米级(0.1--1 m)
前提 天线阵列校准、多基站融合
典型应用 室内定位、资产追踪、无钥匙进入

6.8 Channel Sounding(BLE 6.0)

6.8.1 Channel Sounding 是什么

Channel Sounding 是 BLE 6.0(2024)引入的精确测距 技术,基于信道频率响应(ToF/相位) ,精度可达厘米级 ,并具备抗距离欺骗能力。
#mermaid-svg-vCJEOefTdgo0VsBa{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-vCJEOefTdgo0VsBa .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-vCJEOefTdgo0VsBa .error-icon{fill:#552222;}#mermaid-svg-vCJEOefTdgo0VsBa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-vCJEOefTdgo0VsBa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-vCJEOefTdgo0VsBa .marker{fill:#333333;stroke:#333333;}#mermaid-svg-vCJEOefTdgo0VsBa .marker.cross{stroke:#333333;}#mermaid-svg-vCJEOefTdgo0VsBa svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-vCJEOefTdgo0VsBa p{margin:0;}#mermaid-svg-vCJEOefTdgo0VsBa .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-vCJEOefTdgo0VsBa .cluster-label text{fill:#333;}#mermaid-svg-vCJEOefTdgo0VsBa .cluster-label span{color:#333;}#mermaid-svg-vCJEOefTdgo0VsBa .cluster-label span p{background-color:transparent;}#mermaid-svg-vCJEOefTdgo0VsBa .label text,#mermaid-svg-vCJEOefTdgo0VsBa span{fill:#333;color:#333;}#mermaid-svg-vCJEOefTdgo0VsBa .node rect,#mermaid-svg-vCJEOefTdgo0VsBa .node circle,#mermaid-svg-vCJEOefTdgo0VsBa .node ellipse,#mermaid-svg-vCJEOefTdgo0VsBa .node polygon,#mermaid-svg-vCJEOefTdgo0VsBa .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-vCJEOefTdgo0VsBa .rough-node .label text,#mermaid-svg-vCJEOefTdgo0VsBa .node .label text,#mermaid-svg-vCJEOefTdgo0VsBa .image-shape .label,#mermaid-svg-vCJEOefTdgo0VsBa .icon-shape .label{text-anchor:middle;}#mermaid-svg-vCJEOefTdgo0VsBa .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-vCJEOefTdgo0VsBa .rough-node .label,#mermaid-svg-vCJEOefTdgo0VsBa .node .label,#mermaid-svg-vCJEOefTdgo0VsBa .image-shape .label,#mermaid-svg-vCJEOefTdgo0VsBa .icon-shape .label{text-align:center;}#mermaid-svg-vCJEOefTdgo0VsBa .node.clickable{cursor:pointer;}#mermaid-svg-vCJEOefTdgo0VsBa .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-vCJEOefTdgo0VsBa .arrowheadPath{fill:#333333;}#mermaid-svg-vCJEOefTdgo0VsBa .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-vCJEOefTdgo0VsBa .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-vCJEOefTdgo0VsBa .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-vCJEOefTdgo0VsBa .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-vCJEOefTdgo0VsBa .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-vCJEOefTdgo0VsBa .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-vCJEOefTdgo0VsBa .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-vCJEOefTdgo0VsBa .cluster text{fill:#333;}#mermaid-svg-vCJEOefTdgo0VsBa .cluster span{color:#333;}#mermaid-svg-vCJEOefTdgo0VsBa div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-vCJEOefTdgo0VsBa .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-vCJEOefTdgo0VsBa rect.text{fill:none;stroke-width:0;}#mermaid-svg-vCJEOefTdgo0VsBa .icon-shape,#mermaid-svg-vCJEOefTdgo0VsBa .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-vCJEOefTdgo0VsBa .icon-shape p,#mermaid-svg-vCJEOefTdgo0VsBa .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-vCJEOefTdgo0VsBa .icon-shape .label rect,#mermaid-svg-vCJEOefTdgo0VsBa .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-vCJEOefTdgo0VsBa .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-vCJEOefTdgo0VsBa .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-vCJEOefTdgo0VsBa :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 多信道测量

ToF + 相位
设备 A
设备 B
计算距离

厘米级
安全测距

抗欺骗

6.8.2 与 Direction Finding 的对比

维度 Direction Finding Channel Sounding
引入版本 BLE 5.1 BLE 6.0
测量对象 角度(AoA/AoD) 距离(ToF/相位)
精度 亚米级 厘米级
抗欺骗 较弱 强
典型应用 室内定位 数字车钥匙、安全门禁

6.8.3 典型应用

应用 说明
数字车钥匙 CCC/FiRa 替代方案,防中继攻击
安全门禁 精确距离判断
资产追踪 厘米级定位
防丢器 精确距离提示

6.9 认证与量产

6.9.1 认证体系总览

#mermaid-svg-wbi2w7ZdqnhEbDsx{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-wbi2w7ZdqnhEbDsx .error-icon{fill:#552222;}#mermaid-svg-wbi2w7ZdqnhEbDsx .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-wbi2w7ZdqnhEbDsx .marker{fill:#333333;stroke:#333333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .marker.cross{stroke:#333333;}#mermaid-svg-wbi2w7ZdqnhEbDsx svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-wbi2w7ZdqnhEbDsx p{margin:0;}#mermaid-svg-wbi2w7ZdqnhEbDsx .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .cluster-label text{fill:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .cluster-label span{color:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .cluster-label span p{background-color:transparent;}#mermaid-svg-wbi2w7ZdqnhEbDsx .label text,#mermaid-svg-wbi2w7ZdqnhEbDsx span{fill:#333;color:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .node rect,#mermaid-svg-wbi2w7ZdqnhEbDsx .node circle,#mermaid-svg-wbi2w7ZdqnhEbDsx .node ellipse,#mermaid-svg-wbi2w7ZdqnhEbDsx .node polygon,#mermaid-svg-wbi2w7ZdqnhEbDsx .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .rough-node .label text,#mermaid-svg-wbi2w7ZdqnhEbDsx .node .label text,#mermaid-svg-wbi2w7ZdqnhEbDsx .image-shape .label,#mermaid-svg-wbi2w7ZdqnhEbDsx .icon-shape .label{text-anchor:middle;}#mermaid-svg-wbi2w7ZdqnhEbDsx .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .rough-node .label,#mermaid-svg-wbi2w7ZdqnhEbDsx .node .label,#mermaid-svg-wbi2w7ZdqnhEbDsx .image-shape .label,#mermaid-svg-wbi2w7ZdqnhEbDsx .icon-shape .label{text-align:center;}#mermaid-svg-wbi2w7ZdqnhEbDsx .node.clickable{cursor:pointer;}#mermaid-svg-wbi2w7ZdqnhEbDsx .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .arrowheadPath{fill:#333333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-wbi2w7ZdqnhEbDsx .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-wbi2w7ZdqnhEbDsx .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-wbi2w7ZdqnhEbDsx .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-wbi2w7ZdqnhEbDsx .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .cluster text{fill:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx .cluster span{color:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-wbi2w7ZdqnhEbDsx .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-wbi2w7ZdqnhEbDsx rect.text{fill:none;stroke-width:0;}#mermaid-svg-wbi2w7ZdqnhEbDsx .icon-shape,#mermaid-svg-wbi2w7ZdqnhEbDsx .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-wbi2w7ZdqnhEbDsx .icon-shape p,#mermaid-svg-wbi2w7ZdqnhEbDsx .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-wbi2w7ZdqnhEbDsx .icon-shape .label rect,#mermaid-svg-wbi2w7ZdqnhEbDsx .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-wbi2w7ZdqnhEbDsx .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-wbi2w7ZdqnhEbDsx .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-wbi2w7ZdqnhEbDsx :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} BLE 产品认证
Bluetooth SIG 认证
射频认证
安全认证(可选)
QDID / Declaration
FCC(美)
CE(欧)
SRRC(中)
金融/医疗行业认证

认证 作用 关键产出
Bluetooth SIG 证明符合蓝牙规范 QDID、Declaration ID
FCC 美国射频合规 FCC ID
CE 欧盟合规 CE 标志
SRRC 中国无线电合规 SRRC 型号核准

6.9.2 OTA DFU 设计

要点 说明
传输方式 BLE OTA(GATT 或 Mesh)
分区设计 A/B 双分区,支持回滚
断点续传 支持中断后续传
校验 CRC/签名校验
安全 固件签名,防刷入恶意固件
版本管理 版本号、兼容性检查

6.9.3 产线测试

测试项 内容
RF 校准 发射功率、频偏校准
连接测试 与测试机连接/读写
功耗验证 待机/广播/连接电流
OTA 验证 固件升级流程
互操作性 与主流手机兼容矩阵

6.9.4 量产检查清单

  • SIG 认证 QDID 已获取
  • FCC/CE/SRRC 测试通过
  • OTA DFU 支持回滚
  • 产线 RF 校准流程就绪
  • 功耗指标达标
  • 与 iOS/Android 兼容性测试通过
  • 绑定/解绑流程完整
  • 异常恢复机制(看门狗、断连重连)

6.10 阶段检查点

  • 能实现 Dual-Mode Topology(同时做 Central 和 Peripheral)
  • 能解释多连接时隙冲突及最小连接间隔约束
  • 能动态切换 1M/2M/Coded PHY 并说明适用场景
  • 能把 BLE 吞吐优化到理论值的 70% 以上
  • 能搭建并调试小型 Mesh 网络
  • 能说清 LE Audio 的 CIS/BIS 区别与 LC3 优势
  • 能说清 AoA/AoD 原理与 Channel Sounding 的差异
  • 能制定 BLE 产品的认证与量产测试计划
  • 能设计支持回滚的 OTA DFU 方案

6.11 动手实验

实验 工具 预期收获
实现 Central + Peripheral 双角色 nRF52 / ESP32 理解 Dual-Mode Topology
同时连接 3 个外设并观察丢包 开发板 + 手机 理解时隙冲突
动态切换 1M ↔ 2M PHY 开发板 + Sniffer 看到 PHY Update 流程
实测 Coded PHY 穿墙能力 开发板 + 手机 理解覆盖增益
MTU/DLE/2M 组合吞吐测试 开发板 + 手机 验证优化效果
搭建 3 节点 Mesh 并组控 nRF Mesh App 理解配网与发布/订阅
用 Sniffer 抓 Mesh 消息 Wireshark 看到 NetKey 加密
设计 OTA DFU 流程 开发板 理解 A/B 分区与回滚
查阅 SIG 认证流程 官方文档 理解 QDID 获取

推荐实验顺序

#mermaid-svg-PYZubjfSOLt81n4c{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-PYZubjfSOLt81n4c .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-PYZubjfSOLt81n4c .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-PYZubjfSOLt81n4c .error-icon{fill:#552222;}#mermaid-svg-PYZubjfSOLt81n4c .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-PYZubjfSOLt81n4c .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-PYZubjfSOLt81n4c .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-PYZubjfSOLt81n4c .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-PYZubjfSOLt81n4c .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-PYZubjfSOLt81n4c .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-PYZubjfSOLt81n4c .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-PYZubjfSOLt81n4c .marker{fill:#333333;stroke:#333333;}#mermaid-svg-PYZubjfSOLt81n4c .marker.cross{stroke:#333333;}#mermaid-svg-PYZubjfSOLt81n4c svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-PYZubjfSOLt81n4c p{margin:0;}#mermaid-svg-PYZubjfSOLt81n4c .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-PYZubjfSOLt81n4c .cluster-label text{fill:#333;}#mermaid-svg-PYZubjfSOLt81n4c .cluster-label span{color:#333;}#mermaid-svg-PYZubjfSOLt81n4c .cluster-label span p{background-color:transparent;}#mermaid-svg-PYZubjfSOLt81n4c .label text,#mermaid-svg-PYZubjfSOLt81n4c span{fill:#333;color:#333;}#mermaid-svg-PYZubjfSOLt81n4c .node rect,#mermaid-svg-PYZubjfSOLt81n4c .node circle,#mermaid-svg-PYZubjfSOLt81n4c .node ellipse,#mermaid-svg-PYZubjfSOLt81n4c .node polygon,#mermaid-svg-PYZubjfSOLt81n4c .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-PYZubjfSOLt81n4c .rough-node .label text,#mermaid-svg-PYZubjfSOLt81n4c .node .label text,#mermaid-svg-PYZubjfSOLt81n4c .image-shape .label,#mermaid-svg-PYZubjfSOLt81n4c .icon-shape .label{text-anchor:middle;}#mermaid-svg-PYZubjfSOLt81n4c .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-PYZubjfSOLt81n4c .rough-node .label,#mermaid-svg-PYZubjfSOLt81n4c .node .label,#mermaid-svg-PYZubjfSOLt81n4c .image-shape .label,#mermaid-svg-PYZubjfSOLt81n4c .icon-shape .label{text-align:center;}#mermaid-svg-PYZubjfSOLt81n4c .node.clickable{cursor:pointer;}#mermaid-svg-PYZubjfSOLt81n4c .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-PYZubjfSOLt81n4c .arrowheadPath{fill:#333333;}#mermaid-svg-PYZubjfSOLt81n4c .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-PYZubjfSOLt81n4c .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-PYZubjfSOLt81n4c .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-PYZubjfSOLt81n4c .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-PYZubjfSOLt81n4c .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-PYZubjfSOLt81n4c .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-PYZubjfSOLt81n4c .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-PYZubjfSOLt81n4c .cluster text{fill:#333;}#mermaid-svg-PYZubjfSOLt81n4c .cluster span{color:#333;}#mermaid-svg-PYZubjfSOLt81n4c div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-PYZubjfSOLt81n4c .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-PYZubjfSOLt81n4c rect.text{fill:none;stroke-width:0;}#mermaid-svg-PYZubjfSOLt81n4c .icon-shape,#mermaid-svg-PYZubjfSOLt81n4c .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-PYZubjfSOLt81n4c .icon-shape p,#mermaid-svg-PYZubjfSOLt81n4c .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-PYZubjfSOLt81n4c .icon-shape .label rect,#mermaid-svg-PYZubjfSOLt81n4c .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-PYZubjfSOLt81n4c .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-PYZubjfSOLt81n4c .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-PYZubjfSOLt81n4c :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 双角色
多连接
PHY 切换
Coded 覆盖
吞吐优化
Mesh 组网
Mesh 抓包
OTA DFU
认证流程


6.12 开源项目学习参考

项目 语言 学习价值
Zephyr RTOS BLE Samples C Nordic SDK 底层,GATT/Mesh 实现参考
ESP-IDF BLE Examples C ESP32 BLE 开发标准示例
BlueZ C Linux BLE 协议栈,Host 层实现
NimBLE C 轻量 BLE Host 栈,适合嵌入式移植
Android BLE Scanner Sample Java/Kotlin Android BLE API 标准用法
nRF Connect SDK Mesh Samples C Mesh 灯控/配网示例
Apache Mynewt NimBLE C 开源 BLE 协议栈

6.13 面试与工程高频问题

问题 回答要点
多连接时为什么最小连接间隔会变大? 时隙不能重叠,连接越多需要越大间隔
2M PHY 为什么省电? 传输时间减半,射频开启时间短
Coded PHY 为什么覆盖远? 编码增益提升灵敏度
MTU 和 DLE 有什么区别? MTU 在 ATT 层,DLE 在 LL 层
如何把吞吐优化到理论值 70%? MTU+DLE+2M+合理 CI
Mesh 为什么用泛洪不用路由? 实现简单、无路由表、适合小控制消息
NetKey 和 AppKey 区别? NetKey 网络层加密/中继,AppKey 应用隔离
Friend 和 LPN 怎么配合? Friend 缓存,LPN 轮询取消息
LE Audio 的 CIS 和 BIS 区别? CIS 面向连接,BIS 广播
AoA 和 AoD 区别? 到达角 vs 离开角,天线阵列位置不同
Channel Sounding 为什么抗欺骗? 基于 ToF/相位测距,难被中继伪造
OTA 为什么要 A/B 分区? 支持回滚,防止升级失败变砖
SIG 认证需要准备什么? 规范符合性测试、QDID 申请
多连接下丢包怎么排查? 看时隙冲突、连接间隔、抓包看丢包

阶段总结

第六阶段的核心:从"能开发"走向"能产品化"。

三条主线:

  1. 性能线:多连接、PHY、DLE/MTU → 把吞吐和覆盖做到位
  2. 组网与音频线:Mesh、LE Audio → 扩展应用场景
  3. 产品化线:认证、OTA、产线测试 → 把产品做合规、可量产

最容易卡住的三个点:多连接时隙调度、Mesh 的 Model 绑定/订阅配置、OTA 回滚设计。

建议交付物:一个多连接 Demo + 一份吞吐优化对比数据 + 一个 Mesh 组网 Demo + 一份认证/量产检查清单。这四样做完,第六阶段就算真正过关。


相关推荐
你怎么知道我是队长1 天前
BLE 开发实战详解:Peripheral 与 Central 全流程介绍、GATT 设计、抓包调试与功耗优化
bluetooth
你怎么知道我是队长2 天前
BLE 安全机制详解:配对、绑定、密钥体系与隐私保护
bluetooth
K成长日志6 天前
BLE Host层L2CAP -- 配置参数选项
物联网·网络协议·嵌入式·蓝牙·iot·ble·bluetooth
你怎么知道我是队长7 天前
BLE 协议栈深入:从物理层到应用层的系统性拆解
bluetooth
你怎么知道我是队长17 天前
经典蓝牙 - 中间人攻击(MIMT) - Method Confusion Attack(2021)
bluetooth
你怎么知道我是队长20 天前
经典蓝牙 - 安全机制 - Numeric Comparison和justwork的差异是什么?
bluetooth
你怎么知道我是队长1 个月前
经典蓝牙(BR/EDR)核心流程详解:设备发现、连接建立、配对绑定与服务发现
bluetooth
rls_v2 个月前
jieli:I2S外设是如何工作的?
bluetooth
rls_v2 个月前
什么是蓝牙的信令测试
bluetooth