搜索
查看: 500|回复: 0

[分享] 蓝牙Mesh协议基础研究

[复制链接]

118

主题

119

帖子

485

积分

中级会员

Rank: 3Rank: 3

积分
485
发表于 2024-1-11 10:47:20 | 显示全部楼层 |阅读模式
广播和洪泛
蓝牙Mesh技术是基于BLE的广播报文来实现的,是一种洪泛的消息传输机制,Mesh网络的节点间通过3个广播信道进行通信。当蓝牙Mesh网络中的节点收到消息后会转发这条消息,大大增加了网络的覆盖范围;但也会引起网络消息泛滥从而造成通信延迟,蓝牙Mesh采用了消息缓存队列和TTL的优化方案来避免消息的无限制转发。
消息缓存 Message cache:设备都会缓存收到消息的关键信息,以确定是否已经转发过此消息,如果是就忽略此消息。Message cache至少需要能缓存两条消息。
Time to Live(TTL):每个消息都会包含一个Time to Live(TTL)的值,来限制中继的次数,最大可以中继126次。消息每转发一次TTL的值就减1,TTL值为1就不再转发。


广播链路
Mesh节点在网络内发送数据不会像普通BLE广播需要等一个固定的广播间隔,而是延迟一小段随机时间后发送,所以为了数据不丢失,节点会启用100%占空比来扫描广播信道,也就是扫描窗口时间=扫描间隔


节点与设备
未配网设备(Unprovisioned Device):尚未加入Mesh网络的设备叫做未配网设备
配网(Provisioning):未配网的设备成为节点的过程
配网器(Provisioner):对未配网设备进行配网从而成为网络节点
节点(Node):加入到Mesh网络之后的设备,成为蓝牙Mesh网络的一份子


网络和子网
一个蓝牙mesh网络中有4种资源被整个网络共享,分为节点的网络地址(Network Address)、网络密钥(Network Key)、应用密钥(Application Key)和 IV Index。在这个基础上,可以划分出多个子网络(Subnet)


元素和地址
·节点由元素(Element)组成,节点至少包含一个主元素,每个元素都有自己的地址,例如一个两插孔的插座节点,每个插孔就是一个元素
·Mesh网络节点地址分成4类。占用两个字节
单播地址:分配给节点中的元素地址,地址范围0x0001~0x7FFF,
未分配地址:即无效地址,固定为0x0000,地址的初始值,常用于屏蔽一个设备
组播地址:用于表示一个或多个节点的多个元素,地址范围0xC000~0xFFFF,其中包含256个固定组播地址
虚拟地址:用于表示一个或多个节点的多个元素,每一个虚拟地址逻辑上对应一个128-bit的Label UUID,通过对该Label UUID作哈希运算得出虚拟地址的低14位数值,虚拟地址的范围为0x8000~0xBFFF


模型
模型(Model)定义了节点基本功能的最小单位模型,包含实现这个功能所必需的状态和操作状态的消息及其他一些行为,如台灯设备的开关 灯光亮度调节模型包含了三个部分
状态:表明节点中元素处某一个特定状态,即台灯中包含开关和亮度的状态值
消息:SET/GET/STATUS三种类型,分别用来设置请求发送状态值
行为:定义了模型在接收到消息后所作的动作行为, 比如开关模型定义的行为就是在收到了SET的消息后,On/Off的状态就要变为SET消息里给定的值,如果收到了GET消息那么就把On/Off的状态通过STATUS消息传给询问方.

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /2 下一条

Archiver|手机版|小黑屋|RF技术社区

GMT+8, 2024-4-28 02:43 , Processed in 0.081738 second(s), 9 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表