蓝牙Mesh基础 Bearer Layer (承载层)
Bearer Layer
为了给不支持蓝牙mesh的设备提供进入网络的机会,在承载层设置了两种承载,以满足不同的需求。
Advertising bearer
广播承载向下对接ble协议的广播扫描功能,所以向外发送的PDU结构需要符合ble广播通道PDU的格式。下图是ble广播PDU格式图:
-
前导----前导码占一个字节,它有两个值分别为: 10101010b 和 01010101b。数据由硬件实现,当接入地址的最低位为 0 时, 那么前导码为10101010b, 如果是 1 时,前导码为 01010101b,目的是保证报文的前 9 个 bit 都是交替位
-
接入地址----占4个字节,对广播类型来说是一个固定值:0x8e89bed6,用于减少随机噪声造成伪报文接收的概率
-
报文类型----占用报头的低4位,共有7种报文类型。
-
发送地址----占1位,用于说明设备地址类型,为1时表示随机地址,0表示公共地址
-
接收地址----和发送地址一样
-
数据净荷长度----用于表示去除报头之外的有效数据净荷长度,4.0协议规定净荷最大长度为37字节,刨除去开头的6字节的设备地址,有效数据就剩了31字节
-
数据净荷----广播有效数据,数据净荷中还包括6字节的设备地址,上图中忘记画出来了
-
CRC----24位的循环冗余校验
-
广播数据结构----广播包中的数据部分都是由一系列广播数据结构组成,广播数据结构中包括广播数据结构的长度、AD Type、AD Data
-
Length----广播数据结构的长度
-
AD Type----广播数据结构的类型,比如广播自己蓝牙名字的类型(Local name)为0x08/0x09
-
AD Data----具体的数据,如果AD Type是Local name,那么数据就是蓝牙名字的字符
mesh中AD Type 为Mesh Message。在协议中没有找到Mesh Message对应的16进制数值,提供的链接也未发现对mesh Message的描述链接
AD Data区域存放的是Network PDU
GATT Bearer
为不具有广播承载层的设备提供加入网络的方式。两个设备之间在GATT连接下发送和接收PDU。
代理和配网(配网设备不支持广播承载时)会使用到GATT承载,在PDU转换时使用到的服务分别为Mesh Proxy Service、Mesh Provisioning Services。
本文地址:https://blog.csdn.net/jiandanyidianwd/article/details/107846209
上一篇: 记得那年打工回家