蓝牙Mesh网络一共有3种广播包,如下图所示
![](https://img-blog.csdnimg.cn/20210111175152449.png)
1、PB-ADV的包是用在Provisioning过程的,Provisioning是一个设备加入Mesh网络的过程。
2、Mesh Message,这个是在设备入网后,进行数据通信的时候大量使用的包。节点间通信就是使用这种包进行的。
3、Mesh Beacon包含两种类型:Unprovisioned Device beacon和Secure Network beacon,其中Unprovisioned Device Beacon是用来被Provisioner发现设备用的,也就是在Provisioning之前设备发送的包,这个包里会包含Manufacturer相关的Device UUID(128bits),这个Device UUID是用来区分设备的,因此需要保证唯一性。而Secure Network beacon则是设备入网后用来发送一些安全相关的包,比如IV index更新包。
因此一个正常流程是这样的:
1、设备(入网前)广播Unprovisioned Device beacon的广播包,这个包里包含Device UUID
2、Provisioner(比如蓝牙网关,手机等)通过扫描发现这个设备,并通过Device UUID和云端同步设备信息(比如厂家信息,产品功能等等),然后通过PB-ADV的包发起Provisioning过程
3、设备成功加入Mesh网络后,如果需要,可以通过Secure Network beacon更新IV index。当然大部分时间,设备是通过Mesh Message的信息和其他节点进行数据通信。
mesh 广播类型
-
MESH-ADV-BEACON
- Unprovisioned Device beacon
PB-ADV 发送的beacon 采用的是non-connectable and non-scannable undirected advertisement event传输。这种只能采用PB-ADV方式入网。
PB-GATT发送的beacon采用的是connectable adv,因为它的目的是让provisioner发现它,并与它建立LE link。这种一般可以采用手机进行配网。
![](https://img-blog.csdnimg.cn/20210111174443969.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzIzMzM4ODY1,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20210111174525333.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzIzMzM4ODY1,size_16,color_FFFFFF,t_70)
-
GATT-ADV-BEACON
- NETWORK -ID
如果一个设备支持Proxy feature并且使能了Proxy feature,则应该广播出Network ID。反之,如果不支持Proxy feature或者禁掉了Peoxy feature则不应该广播出Network ID。
Network ID包:为了支持Proxy特性,需要设置节点的Proxy Feature为Enable
![](https://img-blog.csdnimg.cn/20210111174542537.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzIzMzM4ODY1,size_16,color_FFFFFF,t_70)
Node Identity包:为了支持Proxy特性,且节点的Proxy Feature设置为Enable,节点还会在以下两种情况下广播Node Identity包:
1、节点通过PB-GATT入网后立即开始广播
2、节点在Configuration阶段设置Node Identity State是Enable的时候立即开始广播,广播时间限制在60秒以内。
Advertising with Node Identity 通过device的首元素的单播地址和Network Key来识别这个节点属于哪个网络。
当大量的数据经过节点需要这个节点来通过GATT 分发数据的时候,这个标识是很有用的。这个广播可以指示一个GATT连接。
![](https://img-blog.csdnimg.cn/20210111174636586.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzIzMzM4ODY1,size_16,color_FFFFFF,t_70)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)