文章目录
前言
蓝牙Mesh网络一共有3种广播包,如下图所示,我们接下来按照PDF章节顺序依次介绍。
另外厂商可以自定义ADV data来制造自己的Beacon广播,在一个或多个标准广播数据包中编码数据,传递信息。
但是编码原理可能有所差异,即帧格式不同。目前主流的三种帧格式分别为苹果公司的iBeacon,Radius Networks公司的AltBeacon以及谷歌公司的Eddystone。
- 当多个八位字节值被定义为以“大端”(也称为“网络字节顺序”)发送时,数据增长方向与内存增长方向相同。例如,值 0x123456 应作为 0x12、0x34 和 0x56(最重要的八位字节在前)传输。
- 当多个八位字节值被定义为以“小端”发送时,数据增长方向与内存增长方向相反。例如,值 0x123456 应作为 0x56、0x34 和 0x12(最低有效八位字节在前)传输。
Mesh Message
Mesh Message,这个是在设备入网后,进行数据通信的时候大量使用的包。节点间通信就是使用这种包进行的。
Advertising bearer
任何使用Mesh Message AD type的广播都应是不可连接和不可扫描的无向广播事件。如果节点在可连接广播或可扫描广播事件中接收到 Mesh Message AD type,则应忽略该消息。
注意:不可连接的广播被使用,因为不需要在广播数据包中包含Flag AD type,从而允许将两个额外的八位字节分配给Network PDU(参见后文)。为了降低所有广播通道上数据包冲突的概率,建议随机化广播事件中连续数据包之间的间隙。
仅支持广播承载的设备应以尽可能接近 100% 的占空比执行被动扫描,以避免丢失任何传入的网格消息或供应 PDU。所有设备都应支持 GAP Observer 角色和 GAP Broadcaster 角色。
Network PDU
网络层定义了网络 PDU 格式,允许承载层传输较低的传输 PDU。
它将在输入接口上接收到的传入消息解密和验证并将其转发到上层和/或输出接口,并加密和验证并转发传出消息,将它们传递到输出网络接口。
The mesh Network PDU 格式在表 3.7 中定义,并在下面的图 3.7 中说明:
使用从 NID 字段标识的a single network key 派生的密钥来保护Network PDU。