ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

ESP-BLE-MESH 功能全景解析:ESP-IDF 中的蓝牙 Mesh 协议特性清单与源码印证

ESP-BLE-MESH 功能全景解析:ESP-IDF 中的蓝牙 Mesh 协议特性清单与源码印证 ESP-BLE-MESH 功能全景解析ESP-IDF 中的蓝牙 Mesh 协议特性清单与源码印证【免费下载链接】esp-idfEspressif IoT Development Framework. Official development framework for Espressif SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-idfESP-BLE-MESH 是乐鑫Espressif在 ESP-IDF 中提供的蓝牙 Mesh 协议实现本文以其官方功能清单ble-mesh-feature-list.rst为骨架逐一梳理 Mesh Core 核心协议能力、Foundation 与各类标准 Model 的客户端/服务端支持情况并结合 esp_ble_mesh 组件源码与 examples/bluetooth/esp_ble_mesh 示例进行印证。读完本文你将掌握 ESP-BLE-MESH 已实现与预览中的全部特性知道每个功能模块对应哪些源码文件、配置项与可运行示例为选型与开发提供依据。Mesh Core协议栈核心能力Mesh Core 是蓝牙 Mesh 协议栈的底层能力集合ESP-BLE-MESH 的对应实现集中在 components/bt/esp_ble_mesh/core 目录下。官方功能清单将其划分为 Provisioning、Networking、多 Client 并发与 NVS 存储四部分。Provisioning设备入网流程Provisioning配置入网是未配网设备Unprovisioned Device被 Provisioner 安全纳入 Mesh 网络的过程。ESP-BLE-MESH 支持以下能力PB-ADV、PB-GATT 与 PB-Remote三种 Provisioning Bearer。PB-ADV 走广播信道PB-GATT 走 GATT 连接Proxy 场景PB-Remote 则是 Mesh v1.1 引入的远程入网承载允许 Provisioner 借助已入网节点Remote Provisioning Server为远处设备配网。OOB Authentication带外认证入网时可选择 No OOB、Static OOB 或 Output/Input OOB用于防止中间人攻击。Certificate-based Provisioning基于证书的入网认证为需要强身份验证的场景提供支持。Remote Provisioning远程入网对应 Mesh v1.1 的 Remote Provisioning Server/Client Model可参考 remote_provisioning 示例。Enhanced Provisioning Authentication增强型入网认证Mesh v1.1 特性。从源码结构看Provisioning 逻辑分散在 prov_node.c节点侧、prov_pvnr.cProvisioner 侧与 prov_common.c公共部分中pvnr_mgmt.c则负责 Provisioner 管理。Networking组网与消息转发Networking 是 Mesh 网络的骨架能力ESP-BLE-MESH 支持Relay中继转发让消息多跳跨越设备间的无线覆盖范围net.c、transport.c。Segmentation and ReassemblySAR消息分段与重组用于传输超过单包 MTU 的长消息。Key Refresh Procedure密钥刷新流程用于网络被入侵后更新 Network Key。IV Update ProcedureIV Index 更新流程保证网络长期运行的唯一性。Friend好友节点为低功耗节点缓存消息friend.c。Low Power低功耗节点LPN周期性休眠并通过 Friend 收发消息lpn.c。Proxy Server / Proxy Client代理服务端与客户端让不支持 Mesh 广播的 BLE 设备通过 GATT 接入 Mesh 网络proxy_server.c、proxy_client.c。Directed Forwarding定向转发Mesh v1.1仅路径上的节点转发定向消息其他节点不参与可参考 directed_forwarding 示例。Private Beacon私有信标Mesh v1.1通过随机化信标内容增强隐私。Subnet Bridge子网桥接Mesh v1.1允许跨子网转发消息。Minor Enhancements规范中的其他小型增强项。Device Firmware Update (Preview)设备固件升级预览特性详见下文 DFU 部分。多 Client Model 并发运行ESP-BLE-MESH 支持多个 Client Model 同时运行支持多个 Client Model 同时向不同节点发送数据包Client Model 与 Server Model 之间互不阻塞。这意味着一个 Provisioner 可以同时管理多个远程节点而不会因为等待某个节点的响应而阻塞其他操作。从源码结构看Client 侧模型位于 components/bt/esp_ble_mesh/models/clientServer 侧位于 components/bt/esp_ble_mesh/models/server两者按目录隔离、通过事件回调机制解耦为实现非阻塞并发提供了基础。NVS 存储ESP-BLE-MESH 支持将节点的配网信息与配置信息存入 NVSNon-Volatile Storage使设备重启后无需重新配网即可恢复为已入网节点。该机制使 ESP-BLE-MESH 节点具备掉电持久化能力相关实现位于 core/storage 目录。Foundation Models基础模型Foundation Models 是蓝牙 Mesh 规范定义的系统级模型用于网络管理与设备配置。ESP-BLE-MESH 在 core 目录中实现了完整的 Foundation 模型集模型类型说明Configuration Server / ClientServer / Client配置服务端与客户端cfg_srv.c/cfg_cli.c负责模型订阅/发布、AppKey/NetKey 管理等Health Server / ClientServer / Client健康状态上报与查询health_srv.c/health_cli.cRemote Provisioning Server / ClientServer / Client远程入网Mesh v1.1对应prov_common.c中的 PB-RemoteDirected Forwarding Configuration Server / ClientServer / Client定向转发配置Mesh v1.1Bridge Configuration Server / ClientServer / Client子网桥接配置Mesh v1.1Mesh Private Beacon Server / ClientServer / Client私有信标配置Mesh v1.1On-Demand Private Proxy Server / ClientServer / Client按需私有代理Mesh v1.1SAR Configuration Server / ClientServer / Client分段重组参数配置Mesh v1.1Solicitation PDU RPL Configuration Server / ClientServer / Client请求 PDU 重放保护列表配置Mesh v1.1Opcodes Aggregator Server / ClientServer / Client操作码聚合Mesh v1.1批量发送多个操作码Large Composition Data Server / ClientServer / Client大容量 Composition Data 分段传输Mesh v1.1其中 Configuration Server 模型仅使用 DevKey 加密上层传输层的消息因此配网完成后无需为其绑定 AppKey详见 ble-mesh-index.rst 中 4.4 Configuration 一节的说明。标准模型Client 侧支持ESP-BLE-MESH 的 Client 模型实现位于 components/bt/esp_ble_mesh/models/client按功能域划分为五个源文件generic_client.c、lighting_client.c、sensor_client.c、time_scene_client.c与client_common.c。Generic通用Client 模型Generic OnOff ClientGeneric Level ClientGeneric Default Transition Time ClientGeneric Power OnOff ClientGeneric Power Level ClientGeneric Battery ClientGeneric Location ClientGeneric Property ClientSensor Client 模型Sensor ClientTime and Scenes Client 模型Time ClientScene ClientScheduler ClientLighting Client 模型Light Lightness ClientLight CTL ClientLight HSL ClientLight xyL ClientLight LC Client标准模型Server 侧支持Server 模型实现位于 components/bt/esp_ble_mesh/models/server除各域对应的*_server.c外还提供state_binding.c状态绑定例如 Light Lightness 与 Generic Level 联动与state_transition.c状态迁移实现过渡时间内的平滑变化。Generic通用Server 模型Generic OnOff ServerGeneric Level ServerGeneric Default Transition Time ServerGeneric Power OnOff Server / Generic Power OnOff Setup ServerGeneric Power Level Server / Generic Power Level Setup ServerGeneric Battery ServerGeneric Location Server / Generic Location Setup ServerGeneric User Property ServerGeneric Admin Property ServerGeneric Manufacturer Property ServerGeneric Client Property ServerSensor Server 模型Sensor ServerSensor Setup ServerTime and Scenes Server 模型Time Server / Time Setup ServerScene Server / Scene Setup ServerScheduler Server / Scheduler Setup ServerLighting Server 模型Light Lightness Server / Light Lightness Setup ServerLight CTL Server / Light CTL Temperature Server / Light CTL Setup ServerLight HSL Server / Light HSL Hue Server / Light HSL Saturation Server / Light HSL Setup ServerLight xyL Server / Light xyL Setup ServerLight LC Server / Light LC Setup ServerDevice Firmware Update固件升级模型预览ESP-BLE-MESH 对 Mesh v1.1 的 OTA 能力提供预览Preview支持对应源码位于 components/bt/esp_ble_mesh/v1.1/dfuFirmware Update Client / Server固件更新客户端与服务端dfu_cli.c/dfu_srv.c、dfu_metadata.c、dfu_slot.c。Firmware Distribution Client / Server固件分发客户端与服务端dfd_cli.c/dfd_srv.c支持经多个节点接力分发固件。注意功能清单中明确标注这些为预览特性实际使用时需关注 ESP-IDF 版本说明与后续更新。Mesh 示例与配套文档功能清单给出了四类官方示例路线全部可在 examples/bluetooth/esp_ble_mesh 中找到对应代码ESP-BLE-MESH Node节点onoff_models 示例包含onoff_client与onoff_server其中 onoff_server 演示了 Configuration Server 与 Generic OnOff Server 的组合使用控制 RGB LED 的红/绿/蓝三色配套教程见 BLE_Mesh_Node_OnOff_Server_Example_Walkthrough.md 与 BLE_Mesh_Node_OnOff_Client_Example_Walkthrough.md。ESP-BLE-MESH Provisioner配置者provisioner 示例演示设备作为 Provisioner 配网其他设备内含 Configuration Client 与 Generic OnOff Client配套教程见 BLE_Mesh_Provisioner_Example_Walkthrough.md。ESP-BLE-MESH Fast Provisioning快速配网fast_provisioning 示例包含fast_prov_client与fast_prov_server配合 BLE_Mesh_Fast_Prov_Client_Example_Walkthrough.md 与 BLE_Mesh_Fast_Prov_Server_Example_Walkthrough.md。该特性支持在 60 秒内完成多达 100 台设备的配网。ESP-BLE-MESH 与 Wi-Fi 共存wifi_coexist 示例演示 Wi-Fi 与 ESP-BLE-MESH 的共存能力配套教程见 BLE_Mesh_WiFi_Coexist_Example_Walkthrough.md。此外ble-mesh-index.rst 还列出了 sensor_modelsSensor Client/Server、vendor_models厂商模型与 remote_provisioning远程配网与定向转发rpr_client / rpr_server / unprov_dev等更多示例。补充说明与延伸阅读功能清单为 ESP-BLE-MESH 的能力索引更深入的内容可参考同目录下的 ble-mesh-architecture.rst架构实现、ble-mesh-faq.rst常见问题与 ble-mesh-terminology.rst术语表。ESP-BLE-MESH 基于 Zephyr Bluetooth Mesh 协议栈构建支持节点配网与控制并实现了 Proxy、Relay、Low Power 与 Friend 等节点特性见 ble-mesh-index.rst。如果你寻找的是基于 Wi-Fi 的 Mesh 方案可关注乐鑫的另一产品 ESP-WIFI-MESH。各功能域的 API 参考详见 ESP-IDF 文档中的 ESP-BLE-MESH API Reference源码层面的函数定义可分别在 core、models/client、models/server 与 v1.1 中查阅。总体而言ESP-BLE-MESH 的功能覆盖度已经非常完整既有从 Mesh 1.0.1 继承的基础配网、中继、Friend/LPN、Proxy 与全量标准模型又前瞻性地加入了 Mesh v1.1 的远程配网、定向转发、私有信标、子网桥接、操作码聚合、大容量 Composition Data 以及预览中的固件升级能力配合官方示例与教程可以直接支撑从原型验证到量产部署的完整开发流程。【免费下载链接】esp-idfEspressif IoT Development Framework. Official development framework for Espressif SoCs.项目地址: https://gitcode.com/GitHub_Trending/es/esp-idf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表