mesh(网状网)在很多无线通信中都很经常看到,最早是在Zigbee中看到,后来渐渐地,Wifi和蓝牙都开始提出mesh的概念。主要是智能家居的逐渐普及带来的技术更新。
mesh网络通过下面一张图来了解什么是mesh:
上面每个圆代表一个设备,每个设备相互连接,形成一张网。所以mesh网络就是网状网的意思。通过形成这样一张网络,就可以使通信距离更远。
基本概念- 节点
蓝牙mesh网络的设备叫做节点(node)。把未配网的设备变成节点的过程叫做 “配网” (provisioning)。
- 元素
一个节点可以由多个部分组成,每个部分都可以独立进行控制,这些部分被称为元素。
- 地址
蓝牙mesh定义了三种类型的地址:
1. 单播地址 (unicast address): 在配网的时候分配给设备, 单播地址仅可识别单一元素。
2. 组播地址(group address): 一个及以上元素的广播地址,组播地址可以由蓝牙SIG来定义,也可以动态分配。目前SIG定义了4个组播地址,分别是“All-proxies”, “All-friends”,“All-relays” and “All-nodes”。
3. 虚拟地址(virtual address): 厂家自定义的地址类型, 它采用128位UUID值的形式。
- 发布和订阅
有使用过MQTT协议的,应该对这两个名词很熟吧。这里的意思和MQTT中的是一样的。
发送消息的行为称为发布,订阅就是希望接收哪些消息。
- 模型(Models)
模型(Model) 定义了一个节点的基本功能。一个节点可以包含多个Model。
mesh定义了三种模型:
- Server model: 定义状态、状态转换、状态绑定、和模型的元素可能发送或接收的消息,它还定义了与消息、状态和状态转换有关的行为。
- Control model:具备client model的功能与其他的server model进行交互,同时也可以有server model功能与其他client model进行交互。
- Client model: 没有定义任何的状态States,但是它定义了要收发哪些消息。定义这些消息是为了GET,SET或者获取在Server models里面定义的状态。
下图展示的是Device C(server model)带有状态,支持R S T X Y Z消息,Device A(client model)支持 X Y Z消息,Device B(client model)支持 R S T Z消息。
下图中 Device C(control model)可以作为client model与server model(device A与device B)进行通讯(分别支持X Y Z 和R S T Z消息),也可以作为server model与client model(device D)进行通讯(支持 A B C消息)。
参考文档:《Mesh Profile v1.0.1》
喜欢这篇文章,欢迎点赞,分享,关注!
更多精彩文章,欢迎关注微信公众号"嵌入式软件开发交流"
,