Mesh学习笔记-入门篇

本文详细介绍了蓝牙Mesh网络的关键概念,包括设备与节点、元素、消息、地址、发布与订阅、状态与属性、模型、场景、配置过程及安全特性。蓝牙Mesh网络采用多层结构,确保消息的可靠传输和网络安全性,适用于大规模物联网设备的互联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考资料:
https://zhuanlan.zhihu.com/bluetooth-mesh
https://blog.youkuaiyun.com/weixin_40204595/article/details/81672523 一、Mesh关键术语
(1)设备和节点
一个Mesh设备,在未配入Mesh网络时,叫“设备”,当被配置加入一个Mesh网络后,叫“节点”。 比如,去超市买了个蓝牙mesh的灯,用之前就是个设备。等到把它连上建立的Mesh网络,可以和开关什么联动的时候,它才是一个节点。

(2)元素
定义:是在设备中可以寻址访问的实体。比如一个灯,其中有三个子灯,那么这一整个灯,就叫一个节点(当然指的是在入网后),这三个子灯就叫这个节点的元素,每个子灯都可以独立被控制。如下:
在这里插入图片描述
每个节点至少拥有一个元素,称为主元素(Primary Element),同时还可能包含其他多个元素(图3)。元素由定义节点功能和元素条件的实体组成。例如,一个灯泡内有一个元素, 并具有两种功能:

  • 节点 = 灯泡*
  • 一个元素 = 主元素
    • 节点功能
  •   		- 开/关                    
    
  •   		- 亮度
    
    • 元素条件/状态
  •   		- “开”或“关”                    
    
  •   		- 0 – 10 (亮度等级)
    

在这里插入图片描述
图 3 –节点必须至少有一个元素,也可能包含多个元素
节点中的每个元素都有一个唯一的地址,称为单播地址(unicast address),使每个元素都有址可寻。我们将在后续的解密蓝牙mesh系列文章中进一步解释“寻址”。

(3)消息
消息是蓝牙Mesh里的一个重要概念。当一个节点需要查询别的节点的状态(Status)或者控制别的节点的时候,就需要发一个对应类型的消息。当一个节点向其他节点报告状态改变的时候,它也需要发出一个消息。在蓝牙Mesh里面定义了很多种类型的消息,每种消息都有对应的操作码(opcode)。消息可以按照有应答(acknowledged)和没应答(unacknowledged)来分类。 和大多数的通讯系统一样,有应答的消息需要接收节点给个响应

(4)地址
要发消息,我应该发给谁呢?那一定会从一个地址发给另一个地址。在蓝牙mesh里面定义了四种类型的地址:
单播地址(unicast address)
组播地址(group address)
虚拟地址(virtual address)
未分配地址(Unassigned Address):未经配置的元素或未被指定地址的元素拥有的就是未分配地址。鉴于这些元素没有唯一的地址,它们不会用于消息的传送。

单播地址可以唯一性的识别出一个元素。这个地址是在配网的时候分配给设备的。一个mesh网络可以有32767个单播地址。在“启动配置”(provisioning)期间,启动配置设备(provisioner)会在网络节点的生命周期内为节点中的每个元素分配一个单播地址。单播地址可能出现在消息的源地址字段或目的地址字段中。发送到单播地址的消息只能由一个元素进行处理。

组播地址是一个表示一个及以上元素的广播地址。
组播地址可以由蓝牙SIG来定义(SIG Fixed Group Addresses), 也可以动态分配。目前SIG定义了4个组播地址,分别是“All-proxies”, “All-friends”,“All-relays” and “All-nodes”。
动态分配的组播地址是设计成在用户配置的时候,可以分配代表一些实际的场所,比如可以定义几个组播地址代表几个不同的房间。一共可以有16384个组播地址,其中SIG保留了256个,其他16128个都是动态分配的。
组播地址是蓝牙mesh网络中的另一种多播地址(multicast address),它通常代表一个或多个节点中的多个元素,包含两种类型:

  • 动态分配的地址(Dynamically Assigned) -> 0xC000-0xFEFF
  • 固定地址(Fixed Address) – 由蓝牙技术联盟分配,分为五段:
  • 保留供将来使用 (RFU) –> 0xFF00-0xFFFB
  • All-proxies -> 0xFFFC - 发送到启用代理(proxy)功能的所有节点
  • All-friends -> 0xFFFD - 发送到启用friend功能的所有节点
  • All-relays -> 0xFFFE - 发送到启用中继(relay)功能的所有节点
  • All-nodes -> 0xFFFF - 发送到所有节点
    发送到固定节点的所有消息都由节点的主元素(primary element)进行处理
    虚拟地址是个挺有意思的概念。虚拟地址是与特定的UUID标签相关联的一组元素;这些地址可能会被发布或订阅。UUID标签是与多个来
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值