BLE mesh model 汇总

Ble Mesh Model Summary

mesh model简介

Bluetooth Mesh 模型(Mesh Model)是 Bluetooth Mesh 网络中的一种抽象概念,用于定义设备的行为、功能和交互方式。在 Bluetooth Mesh 网络中,模型是节点(Node)上的一个软件组件,每个模型通常代表了某种特定的功能,比如开关、调光、传感器数据采集等。模型通过消息(Messages)进行通信,消息是模型之间相互作用的主要方式。

1. 模型的基本概念

  • 模型(Model): 一个模型是设备功能的抽象表示,定义了设备在网络中的行为和特性。每个模型由一组消息、状态和行为组成。
  • 状态(State): 状态是模型在给定时间点的具体值,比如灯光的亮度、电源的开/关状态等。状态通常是持久的,并通过消息传递在网络中共享。
  • 消息(Messages): 消息是模型之间通信的载体。模型使用消息来发送命令、请求状态或报告状态。
  • 操作(Operations): 模型的操作包括发送和接收消息,以及对消息的处理和响应。
  • 元素(Element): 元素是一个设备中的逻辑部分,每个元素可以包含多个模型。一个设备可以有多个元素,比如一个智能灯泡可能有两个元素,一个控制灯光的开/关,另一个控制亮度。

2. 模型的分类

Bluetooth Mesh 模型主要分为以下几类:

a. 基本模型(Foundation Models)

基础模型提供了网络的管理功能,通常用于配置和控制网络。例如:

  • Configuration Server: 管理节点的配置参数,如订阅组、TTL 值等。
  • Health Server: 监控节点的健康状态,如错误检测和报告。
b. 通用模型(Generic Models)

通用模型提供了基本的设备功能,适用于多种应用场景。例如:

  • Generic OnOff Server/Client: 控制设备的开关状态。
  • Generic Level Server/Client: 控制设备的级别状态,如亮度或音量。
  • Generic Power OnOff Server/Client: 控制设备的电源状态及恢复行为。
c. 灯光模型(Lighting Models)

灯光模型专为照明设备设计,支持复杂的灯光控制功能。例如:

  • Light Lightness Server: 控制灯光的亮度。
  • Light CTL Server: 控制灯光的色温和亮度。
d. 传感器模型(Sensor Models)

传感器模型用于管理和传递传感器数据,例如:

  • Sensor Server: 收集并报告环境数据,如温度、湿度、光强度等。
  • Sensor Client: 请求传感器数据并接收传感器状态。
e. 场景模型(Scene Models)

场景模型用于预定义设备的一组状态,并允许设备快速切换到这些预定义状态。例如:

  • Scene Server: 保存和恢复一组设备状态(场景)。
  • Scene Client: 调用和管理场景的保存和恢复。
f. 时间和调度模型(Time and Scheduler Models)

这些模型用于管理时间和基于时间的操作,例如:

  • Time Server: 提供和同步网络中的时间信息。
  • Scheduler Server: 管理和执行基于时间的任务调度。

3. 模型的作用和意义

  • 功能模块化: 模型将设备的功能模块化,使得设备可以通过组合不同的模型来实现多种功能。这种模块化设计增强了系统的灵活性和可扩展性。
  • 互操作性: 模型定义了标准的通信方式,使得不同厂商的设备可以互操作。例如,一个品牌的开关可以控制另一个品牌的灯。
  • 灵活的配置和控制: 通过使用配置模型,管理员可以远程配置和管理网络中的设备,而不需要物理访问设备。
  • 状态管理: 模型通过消息传递和状态管理,确保网络中设备的状态同步。例如,当一个设备的状态发生变化时,它可以通过模型将其新状态广播到网络中的其他设备。
  • 场景控制: 通过场景模型,可以一键设置多个设备的状态,非常适合智能家居应用场景。

4. 模型与消息的工作流程

模型通过消息进行通信,消息可以是单播、组播或广播。以下是一个典型的工作流程:

  1. 发送请求: 客户端模型(如 Generic OnOff Client)发送一个控制消息(如 On 命令)到服务器模型(如 Generic OnOff Server)。
  2. 接收处理: 服务器模型接收到消息后,处理消息并改变设备的状态(如将灯打开)。
  3. 状态更新: 服务器模型更新其内部状态,并通过状态消息向客户端报告新的状态。
  4. 反馈确认: 客户端接收到状态反馈消息,并根据需要执行进一步的操作。

5. 实例应用

  • 智能照明系统: 使用 Generic OnOffGeneric LevelLighting Models 来控制灯光的开关、亮度和色温。
  • 环境监测系统: 使用 Sensor Models 采集并报告环境数据,结合 Time and Scheduler Models 实现基于时间的自动化控制。
  • 安全监控系统: 使用 Generic Power OnOff 模型管理摄像头和传感器的电源状态,并通过 Scene Models 实现一键布防。

6. 模型的扩展与定制

Bluetooth Mesh 允许开发者创建自定义模型以满足特定需求。这意味着如果现有的标准模型不能完全满足应用需求,开发者可以定义新的模型并通过 Mesh 协议实现特定功能。

通过理解和正确使用 Bluetooth Mesh 模型,开发者可以创建功能丰富、灵活可扩展的无线网络解决方案,适用于从智能家居到工业自动化的各种应用场景。

7.和gatt对比

这张图展示了 Bluetooth Mesh 网络中的三个核心概念:Element(元素)Model(模型)Node(节点),并将其与经典的 BLE 服务和特性进行了对比。

Element(元素)
  • 图示: 左侧部分展示了一个 MCU(微控制器)连接了多个元素(Element A、B、C)。
  • 解释: 在 Bluetooth Mesh 网络中,一个节点(Node)可以包含多个元素,每个元素是设备的一部分,可以独立地与网络中的其他设备通信。每个元素通常对应一个物理设备的功能组件,比如一个智能灯泡可能有不同的元素控制亮度、颜色和电源状态。
Model(模型)
  • 图示: 中间部分展示了每个元素所包含的模型。例如,Primary Element A 包含了 Configuration Server ModelHealth Server ModelGeneric OnOff Server Model;而 Secondary Element B 和 C 也包含了类似的模型。
  • 解释: 模型是定义设备行为的基本构建块。每个模型处理特定的操作和状态,比如开关状态(Generic OnOff Server Model)或者设备健康状态(Health Server Model)。每个元素可以包含多个模型,通过模型来实现具体的功能。
Node(节点)
  • 图示: 右侧蓝色的框中表示整个节点,这个节点由多个元素和模型组成。
  • 解释: 一个节点是一个完整的 Bluetooth Mesh 设备。它包含一个或多个元素,而每个元素包含一个或多个模型。节点是网络中的基本单元,可以发送和接收消息,实现各种功能。
BLE Profile、Service、Characteristic 的对比
  • 图示: 底部的结构图展示了 BLE 的 ProfileServiceCharacteristic。Profile 是 BLE 中高层次的功能抽象,Service 是功能的集合,Characteristic 则是具体的数据项。
  • 解释: 图中用 BLE 的 ProfileService 对应 Bluetooth Mesh 中的 ElementModel。这显示了两者的相似性,即 BLE 的服务和特性类似于 Mesh 中的元素和模型,但 Mesh 提供了更高级别的模块化和功能扩展。
总结
  • Element 是节点中的功能组件,可以独立控制特定功能。
  • Model 是实现特定功能的逻辑模块,通过它们实现设备与网络的交互。
  • Node 是一个完整的设备,由一个或多个元素和模型构成。
  • BLE 的服务和特性结构与 Mesh 的元素和模型有一定的相似性,但 Mesh 更加灵活和模块化,适用于复杂的设备网络。

这张图帮助我们理解了 Bluetooth Mesh 中如何通过模型和元素构建复杂的网络功能,并将其与经典的 BLE 结构进行了对比。

Configuration Server Model

  • 模型是一个根模型,只存在于首要元素中并且每个节点中有且仅有一个
  • 该模型主要用于表示设备加入mesh网络之后的mesh网络配置
  • 表示mesh网络配置存放了节点的配置内容,如是否支持中继,是否支持朋友特性等等以及配置相对应的内容
  • 该模型是SIG的一个标准模型,其SIG Model ID为0x0000

模型状态

Configuration Server States Bound States
State Instance Model State Instance
Secure Network Beacon Primary - - -
Composition Data Primary - - -
Default TTL Primary - - -
GATT Proxy Primary Configuration Server Node Identity Primary
Friend Primary - - -
Relay Primary - - -
Model Publication Primary - - -
Subscription List Primary - - -
NetKey List Primary - - -
AppKey List Primary - - -
Model to AppKey List Primary - - -
Node Identity Primary - - -
Key Refresh Phase Primary - - -
Heartbeat Publish Primary - - -
Heartbeat Subscription Primary - - -
Network Transmit Primary - - -
Relay Retransmit Primary - -
  • mesh provisioning server

    当设备还没有入网前,mesh gatt server就叫mesh provisioning server;其主要是让provisioning client配置provisioning server,让其加入mesh网络

  • mesh proxy server

    当设备已经入网了,则为mesh proxy server;其主要作用是接收或者发送proxy pdus从或者到client

而这个GATT ProxyNode Identity的关系就是,如果proxy feature被支持且mesh proxy server被公开。在入网完成之后,就会将在广播包中携带有Node Identity这个域值。

既然Configuration Server Model存放的是节点的配置内容,那用户应该如何去获取这个内容呢?具体如下所示:

其他模型状态行为参考:MshPRT_v1.1 -4.4.1 Configuration Server model

模型操作行为

Element SIG Model ID States Messages Rx Tx
Primary 0x0000 Secure Network Beacon Config Beacon Get M
Config Beacon Set M
Config Beacon Status - M
Composition Data Config Composition Data Get M
Config Composition Data Status M
Default TTL Config Default TTL Get M
Config Default TTL Set M
Config Default TTL Status - M
GATT Proxy Config GATT Proxy Get M
Config GATT Proxy Set M
Config GATT Proxy Status - M
Friend Config Friend Get M
Config Friend Set M
Config Friend Status - M
Relay and Relay Retransmit Config Relay Get M
Config Relay Set M
Config Relay Status - M
Model Publication Config Model Publication Get M
Config Model Publication Set M
Config Model Publication Virtual Address Set M
Config Model Publication Status - M
Subscription List Config Model Subscription Add M
Config Model Subscription Virtual Address Add M
Config Model Subscription Delete M
Config Model Subscription Virtual Address Delete M
Config Model Subscription Virtual Address Overwrite M
Config Model Subscription Overwrite M
Config Model Subscription Delete All M
Config Model Subscription Status - M
Config SIG Model Subscription Get M
Config SIG Model Subscription List - M
Config Vendor Model Subscription Get M
Config Vendor Model Subscription List - M
NetKey List Config NetKey Add M
Config NetKey Update M
Config NetKey Delete M
Config NetKey Status - M
Config NetKey Get M
Config NetKey List - M
AppKey List Config AppKey Add M
Config AppKey Update M
Config AppKey Delete M
Config AppKey Status - M
Config AppKey Get M
Config AppKey List - M
Model to AppKey List Config Model App Bind M
Config Model App Unbind M
Config Model App Status - M
Config SIG Model App Get M
Config SIG Model App List - M
Config Vendor Model App Get M
Config Vendor Model App List - M
Node Identity Config Node Identity Get M
Config Node Identity Set M
Config Node Identity Status - M
N/A Config Node Reset M
Config Node Reset Status - M
Key Refresh Phase Config Key Refresh Phase Get M
Config Key Refresh Phase Set M
Config Key Refresh Phase Status - M
Heartbeat Publication Config Heartbeat Publication Get M
Config Heartbeat Publication Set M
Config Heartbeat Publication Status - M
Heartbeat Subscription Config Heartbeat Subscription Get M
Config Heartbeat Subscription Set M
Config Heartbeat Subscription Status - M
Network Transmit Config Network Transmit Get M
Config Network Transmit Set M
Config Network Transmit Status - M
从上表可以看到,一个State对应多个Message;那么,State与Message的关系就类似于 手机现在都支持BLE,那么就有打开BLE、关闭BLE以及查看当前BLE的状态的动作;其中,手机支持BLE就等同于State,而那些动作就是Message。所以,如果你想要获取或者配置相关的内容,就可以通过Message去实现。对于,RX和TX是相对于节点本身为参考体。这里举个例子,就Network Transmit状态而言,Config Network Transmit Get/Set表示该节点可以接收这些Messages;而节点在接收到这些消息之后,就会返回Config Network Transmit Status即发送回给源地址的设备;那么,紧接着我们继续解析每一个State以及其对应的Message的作用。
  • 操作码具体数值参考:Assigned_Numbers-4.2 Mesh Model Message Opcodes

Health Server Model

该模型跟Configuration Server Model是一样的,也是SIG强制要求必须要有的一个模型,也就是说每个节点都会有至少一个Health Server Model;其主要的特性如下所示:

  • 同样,该模型也是一个根模型

  • 跟其他普通的SIG模型一样,该模型也支持发布与订阅的功能

  • Configuration Server Model不同的是,其不但可以存在于首要元素中,也可以存在于次要元素中;同时,还可以在一个节点的不同元素中同时存在

  • 与该模型的通讯均采用AppKey加解密

  • 其SIG Model ID为0x0002

模型状态

其中Attention Timer用于provisioning入网的时候使用, 就是给予new device一个时间值, 然后做出任何可以引起周边事物注意的动作时长为attention time秒; 其中Spec对该状态作出了如下规定:
 - 如果一个设备不支持Attention Timerÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值