【蓝牙精品系列文档】【03_blemesh架构】04_配网流程详解
配网流程详解核心概念配网(Provisioning)是将未配网设备加入 Mesh 网络的过程。Provisioner(配网器)通过一系列步骤为设备分配地址、密钥和网络参数。配网角色角色说明Provisioner配网器,通常是手机 App 或专用设备Provisionee待配网设备,即未配网的 Mesh 节点Unprovisioned Device Beacon 详解(配网发现)完整空口封装未配网设备通过0x2B Mesh Beacon广播自己,让 Provisioner 发现。完整三层封装:空口 ADV_NONCONN_IND(不可连接广播): ┌─────────────────────────────────────────────────────────┐ │ AD Structure │ │ ┌──────────┬──────────┬─────────────────────────────┐ │ │ │ Length │ AD Type │ Mesh Beacon PDU │ │ │ │ 1B │ 0x2B │ (见下方) │ │ │ └──────────┴──────────┴─────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ Mesh Beacon PDU 内部: ┌──────────┬──────────────────┬────────────┬───────────────┐ │BeaconType│ Device UUID:16B │ OOB Info:2B│ URI Hash:4B │ │ 0x00 │ (设备唯一标识) │(带外信息) │(URI 哈希,可选)│ │ 1B │ 16B │ 2B │ 0 或 4B │ └──────────┴──────────────────┴────────────┴───────────────┘ ↑ BeaconType=0x00 标识这是 Unprovisioned Device Beacon空口示例假设设备 UUID =00112233445566778899AABBCCDDEEFF,无 URI Hash:空口字节: 14 2B 00 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 00 │ │ │ └─────────── Device UUID 16B ───────────────┘└ OOB ┘ │ │ └─ BeaconType=0x00 (Unprovisioned) │ └─ AD Type=0x2B (Mesh Beacon) └─ Length=20(BeaconType(1) + UUID(16) + OOB(2) + AD Type(1) = 20) 如果有 URI Hash:Length=24,多 4 字节BeaconType 类型(只有两种)源码beacon.c:#defineBEACON_TYPE_UNPROVISIONED0x00#defineBEACON_TYPE_SECURE0x01BeaconType名称谁发作用链路层 PDU0x00Unprovisioned Device Beacon未配网设备让 Provisioner 发现自己ADV_NONCONN_IND0x01Secure Network Beacon已配网节点同步 IV Index/KR,维持网络ADV_NONCONN_IND没有其他类型,Mesh Profile Spec 只定义了这两种。两种 Beacon 的完整格式对比BeaconType=0x00 Unprovisioned Device Beacon (19 或 23 字节): ┌──────────┬──────────────────┬────────────┬───────────────┐ │BeaconType│ Device UUID │ OOB Info │ URI Hash │ │ 0x00 │ 16B │ 2B │ 0 或 4B │ └──────────┴──────────────────┴────────────┴───────────────┘ BeaconType=0x01 Secure Network Beacon (22 字节): ┌──────────┬───────┬────────────┬────────────┬──────────┐ │BeaconType│ Flags │ Network ID │ IV Index │ Auth Val │ │ 0x01 │ 1B │ 8B │ 4B │ 8B │ └──────────┴───────┴────────────┴────────────┴──────────┘OOB Info 字段(16 bit 位图)OOB Info (2 字节,大端): ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │bit15│bit14│bit13│bit12│bit11│bit10│bit9 │bit8 │bit7 │bit6 │bit5 │bit4 │bit3 │bit2 │bit1 │bit0 │ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ OnDev InMan OnPpr InBox OnBox Other RFU RFU RFU Str Num NFC Bar 2D URI Other bit0 = Other bit5 = Number bit11 = On Box bit1 = URI bit6 = String bit12 = In Box bit2 = 2D Code bit7-10 = RFU bit13 = On Paper bit3 = Bar Code bit4 = NFC bit14 = In Manual bit15 = On Dev bit1=URI 时带 URI HashPB-ADV vs PB-GATT 配网方式选择两种配网承载方式方式承载链路层Provisioner 要求设备要求PB-ADVADV Bearer(广播)ADV_NONCONN_IND有 ADV 收发能力BLE_MESH_PB_ADVPB-GATTGATT Bearer(连接)ADV_IND + GATT有 BLE GATT 能力BLE_MESH_PB_GATT设备端:通过编译开关决定支持哪种源码shell.c:#ifMYNEWT_VAL(BLE_MESH_PB_ADV)staticintcmd_pb_adv(intargc,char*argv[]){returncmd_pb(BT_MESH_PROV_ADV,argc,argv);/* PB-ADV */}#endif#ifMYNEWT_VAL(BLE_MESH_PB_GATT)staticintcmd_pb_gatt(intargc,char*argv[]){returncmd_pb(BT_MESH_PROV_GATT,argc,argv);/* PB-GATT */}#endif设备编译开关发什么广播支持的配网方式BLE_MESH_PB_ADV0x2B Unprovisioned Beacon(ADV_NONCONN_IND)PB-ADVBLE_MESH_PB_GATT0x1827 可连接广播(ADV_IND)PB-GATT两个都开两种广播都发(分时复用空口)两种都支持Provisioner 端:根据自己能力选择Provisioner 类型能力选择手机只有 GATT,没有 ADV Bearer 收发只能 PB-GATT专业网关/Provisioner有完整 Mesh 协议栈优先 PB-ADV(更快)两者都支持都有优先 PB-ADV判断流程Provisioner 扫描发现设备: │ ├─ 扫到 0x2B Unprovisioned Beacon (ADV_NONCONN_IND) │ → 设备支持 PB-ADV │ → Provisioner 自己支持 PB-ADV 吗? │ ├─ 是 → 用 PB-ADV 配网(发 0x29 Link Open) │ └─ 否 → 继续等 0x1827 可连接广播 │ ├─ 扫到 0x1827 可连接广播 (ADV_IND) │ → 设备支持 PB-GATT │ → GATT 连接 → 用 PB-GATT 配网 │ └─ 两个都扫到 → Provisioner 优先用 PB-ADV(更快,不需要建立连接)两种方式的空口对比PB-ADV(通过广播交互配网数据): Provisioner Device │ 0x2B Unprovisioned Beacon │ │ ───────────────────────────── │ 设备广播发现 │ │ │ 0x29 Link Open (UUID) │ │ ───────────────────────────── │ 建立配网链路 │ 0x29 Link Ack │ │ ───────────────────────────── │ │ │ │ 0x29 Provisioning PDU │ 配网协议交互 │ ───────────────────────────── │ (Invite/Caps/Start/...) │ 0x29 Provisioning PDU │ │ ───────────────────────────── │ │ ... │ │ 0x29 Link Close │ │ ───────────────────────────── │ 关闭配网链路 PB-GATT(通过 GATT 连接交互配网数据): Provisioner Device │ 0x1827 可连接广播 │ │ ───────────────────────────── │ 设备广播发现 │ │ │ GATT Connect │ │ ───────────────────────────── │ 建立 BLE 连接 │

相关新闻

【蓝牙精品系列文档】【03_blemesh架构】05_Mesh_ADV格式

【蓝牙精品系列文档】【03_blemesh架构】05_Mesh_ADV格式

Mesh ADV 承载格式(0x2A / 0x2B / 0x29) 概述 BLE Mesh 在 ADV Bearer(广播承载层)上通过 AD Structure 传输 Mesh 数据,使用三个 Mesh 专用 AD Type: AD Type 名称 承载内容 链路层 PDU 谁发 0x29 Mesh Provisioning PDU 配网协议数据 ADV_NONCONN_IND 未配网设备 + P…

2026/7/14 19:40:59阅读更多 →
2026年技术团队项目管理工具选型指南:ZenTao/GitLab/Jira/国产替代全方位对比

2026年技术团队项目管理工具选型指南:ZenTao/GitLab/Jira/国产替代全方位对比

2026 年了,如果你还在为"选什么项目管理工具"纠结——不是你在挑工具,是工具在挑你的命。一句话回答核心问题: 没有最好的项目管理工具,只有最适合你团队的方案。20-50 人团队优先选 GitLab Issue ZenTao 组合&#xf…

2026/7/14 19:35:59阅读更多 →
从零到精通:收藏这份AI学习路线,小白程序员也能抓住大模型红利!

从零到精通:收藏这份AI学习路线,小白程序员也能抓住大模型红利!

本文指出许多人在学习AI时因缺乏系统规划、理论与实践脱节、学用结合困难等原因而半途而废。文章提出了一套从AI基础到算法、CV、NLP、Agent、强化学习、多模态与大模型的完整学习路线,包含7大模块和3大实战篇,旨在帮助学员构建系统知识体系,…

2026/7/14 19:35:58阅读更多 →
2026年GEO监测平台怎么选?——免费工具从监测到优化一站式落地指南

2026年GEO监测平台怎么选?——免费工具从监测到优化一站式落地指南

2026年,AI搜索正以不可逆的态势重构信息分发格局。QuestMobile数据显示,豆包、千问、DeepSeek和元宝四强合计月活超过7.1亿。埃森哲《2026年消费者脉搏研究》调查显示,74%的消费者愿意使用AI智能体处理议价谈判、投诉维权、商品复购等日常重复…

2026/7/14 23:36:28阅读更多 →
AI时代,品牌的护城河不是流量,是信任

AI时代,品牌的护城河不是流量,是信任

最近GEO市场热得发烫。据易观Analysys数据,2025年GEO市场规模仅2.5亿元,2026年已飙升至约30亿元,预计2027年将达到约90亿元。中国信通院数据显示,2026年国内GEO市场规模预计突破286亿元,年增速达125%。超68%的中大型企…

2026/7/14 23:36:28阅读更多 →
工业负载控制方案:TPD2017FN与PIC32MZ的智能应用

工业负载控制方案:TPD2017FN与PIC32MZ的智能应用

1. 工业负载控制的核心挑战与方案选型在工业自动化现场,电感和电阻负载的控制一直是工程师们面临的棘手问题。去年我在一个包装产线改造项目中,就遇到过电磁阀频繁烧毁的故障——这正是由于感性负载的反电动势没有得到有效抑制。TPD2017FN智能高侧开关与…

2026/7/14 23:36:28阅读更多 →
NAU8224与PIC18F65K40音频系统设计与优化

NAU8224与PIC18F65K40音频系统设计与优化

1. 为什么选择NAU8224与PIC18F65K40组合在音频系统设计中,芯片选型往往决定了最终产品的音质表现和功能上限。NAU8224作为一款高性能Class-D音频放大器,与PIC18F65K40微控制器的组合,能够为各类音频设备提供专业级的解决方案。NAU8224的核心优…

2026/7/14 23:36:28阅读更多 →
数据科学新手实战路径:pandas→numpy→matplotlib→seaborn→scikit-learn五库协同指南

数据科学新手实战路径:pandas→numpy→matplotlib→seaborn→scikit-learn五库协同指南

1. 这不是“学Python就能做数据科学”的速成幻觉,而是一份踩过27个坑后写给新手的生存指南“Data Science Libraries For Beginners: Gentle Introduction”——这个标题听起来温和、友好、毫无攻击性,像一杯温热的蜂蜜水。但现实是,92%的新手…

2026/7/14 23:36:28阅读更多 →
转移瘤模型:从构建策略到转化应用的关键路径

转移瘤模型:从构建策略到转化应用的关键路径

转移瘤模型的建立及其在肿瘤研究中的核心地位。肿瘤转移是导致癌症患者死亡的首要原因,绝大多数恶性肿瘤患者的死亡并非源于原发灶的局部生长,而是由于肿瘤细胞扩散至远处器官并形成转移性病灶。这一临床现实决定了肿瘤转移动物模型在基础研究和药物开发…

2026/7/14 23:31:28阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/14 4:56:14阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/14 2:55:05阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/14 6:17:41阅读更多 →
【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

【Cursor数据库安全红线】:自动执行SQL前必须校验的6项权限策略,金融级项目已强制落地

更多请点击: https://intelliparadigm.com 第一章:Cursor数据库安全红线概览 Cursor 作为一款基于 AI 的智能编程助手,其本地数据库(SQLite 存储)承载着用户代码片段、会话历史、自定义规则及敏感上下文信息。理解其安…

2026/7/14 0:03:18阅读更多 →
【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

【Notion AI写作避坑白皮书】:基于127份真实用户失败案例,总结6大致命误用陷阱

更多请点击: https://codechina.net 第一章:Notion AI写作辅助的底层能力边界认知 Notion AI 并非通用大语言模型的直接封装,而是基于 Llama 系列与自研微调模型构建的轻量化推理服务,其输入上下文窗口严格限制在 8192 token&…

2026/7/14 0:03:18阅读更多 →
AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

AI Agent数据越界行为如何被精准溯源?——基于GDPR/CCPA双合规的5层审计框架实战指南

更多请点击: https://kaifayun.com 第一章:AI Agent数据越界行为的合规性挑战与溯源必要性 AI Agent在自主执行任务过程中,可能因提示注入、上下文污染或权限配置缺陷,无意或有意访问、缓存、传输受保护数据(如PII、G…

2026/7/14 0:03:18阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/14 15:07:30阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/14 4:45:36阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/14 2:42:17阅读更多 →