蓝牙mesh基本概念
蓝牙mesh基本概念
1.蓝牙MESH基本概念
网状网(mesh)
Mesh网络,就是一个多对多网络(Many to Many)。 每个设备节点都可以和别的节点自由通讯。在这种拓扑中,因为很多节点可以中继(relay)收到的消息(Message), 所以端对端的通信可以比原来单点之间的通讯距离要远很多。就好像小组讨论自由发言,如果做的太远听不见的话,别人也可以代为传话。
设备和节点(Devices and Nodes)
如果一个设备成为了蓝牙mesh网络的一部分,我们就把它叫做节点(node)。 反之,我们就把它叫做“未配网的设备”(unprovisioned devices)。把未配网的设备变成节点的过程我们把它叫做 “配网” (provisioning)。
元素(element)
如下图,三个子灯组成一大灯,每个子灯都可以通过寻址访问,子灯就称之为元素(element),大灯称之为节点(node)。
消息(Messages)
消息也是蓝牙mesh里的一个重要概念。当一个节点需要查询别的节点的状态(Status)或者控制别的节点的时候,就需要发一个对应类型的消息。当一个节点向别人报告状态改变的时候,他也需要发出一个消息。在蓝牙mesh里面定义了很多种类型的消息,每种消息都有对应的操作码(opcode)。消息可以按照有应答(acknowledged)和没应答(unacknowledged)来分类。 和大多数的通讯系统一样,有应答的消息需要接收节点给个响应。“发给你了” “收到两条了”。这样做有两个目的:一是告诉你我收到了。二是可以返回一些需要的值。如果发现没有收到应答,发送端可以再次发送。当然,如果是不用应答的消息,接收端收到就算了,不会告诉发送端的。
地址(Addresses)
在蓝牙mesh里面定义了三种类型的地址:单播地址(unicast address),组播地址(group address)和虚拟地址(virtual address)。
唯一性的单播地址可以识别出一个元素。这个地址是在配网的时候分配给设备的。一个mesh网络可以有32767个单播地址。
组播地址是一个表示一个及以上元素的广播地址。组播地址可以由蓝牙SIG来定义(SIG Fixed Group Addresses), 也可以动态分配。目前SIG定义了4个组播地址,分别是“All-proxies”, “All-friends”,“All-relays” and “All-nodes”。 动态分配的组播地址是设计成在用户配置的时候,可以分配代表一些实际的场所,比如可以定义几个组播地址代表几个不同的房间。一共可以有16384个组播地址,其中SIG保留了256个,其他16128个都是动态分配的。
虚拟地址基本可以认为是组播地址的一个扩展,厂家自定义的地址类型。
————————————————
版权声明:本文为CSDN博主「Jim_天河」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JaLLs/java/article/details/88864829