Ble Mesh技术(八)之Bearer Layer

承载层将网络层的数据通过ADV或者GATT的方式广播出去,并把各个接口接收到的数据送至网络层。

1. Advertising Bearer

通过广播进行数据收发。
发送数据的广播类型为不可连接,不可扫描,不可定向广播类型。
mesh在Bearer层的数据格式如下:
bearerpdu

FiledSize(octs)Notes
Length1表示当前数据包的总长度
AD Type1表示当前数据包为Mesh数据包
NetworkPDU18-29Network层的PDU

mesh数据的接收则通过广播承载层,开启尽可能全窗的扫描事件。

2. GATT Bearer

有的设备不支持广播承载层,(比如手机的蓝牙限制了广播的参数设置等??),导致不能通过广播的方式进行mesh消息的发送,要想加入mesh网络可以通过建立GATT连接的方式,将mesh的数据包转化为proxyPDU的形式进行通信。

3. Proxy protocol

3.1. Proxy PDU

proxypdu

FieldSize(bits)Notes
SAR20b00:表示消息是一个完整的消息
0b01:表示分段消息的第一个分段
0b10:表示分段消息的中间某一段
0b11:表示分段消息的最后一分段
Message Type60x00:Network PDU
0x01:Mesh Beacon
0x02:Proxy Configuration
0x03:Provisioning PDU
0x04-0x3F:RFU
Datavariablemessage
3.2. Proxy filtering

每个代理过来的消息,接收端收到都要进行dst地址的检查,为了避免无效地址的消息,在代理端增加过滤机制。配置黑白名单,通过Message Type=0x02的Proxy PDU来配置,其Data域的数据格式如下:
proxyfilter

FieldSize(octs)Notes
Opcode10x00:设置过滤表类型
0x01:添加地址到过滤表
0x02:删除过滤表中的地址
0x03:当前过滤表的状态
0x04-0xFF:RFU
ParametersVariable消息参数

每个Opcode对应的Parameters对应的格式如下:

OpcodeParameters
Size(octs)Notes
0x0010x00:白名单
0x01:黑名单
0x02-0xFF:Prohibited
0x012*N需要添加的地址列表,每个地址2字节
0x022*N需要删除的地址列表,每个地址2字节
0x033
FieldSize(octs)Notes
Filter Type10x00:白名单
0x01:黑名单
ListSize2当前过滤表中地址的数量
3.3. Proxy Server/Client

Client:只能使用GATT连接,不能使用ADV进行mesh通信的节点。
Server:能在ADV Bearer和GATT Bearer之间转换的节点。
proxymsg
① client连接server
② server端初始化过滤名单为空的白名单
③ 连接成功后,server端发送Secure Network Beacon给client端。
④ client设置过滤表类型,server响应过滤表状态。更改过滤表类型后,新的过滤表为空。
⑤ client修改黑白名单内容,两者之间根据过滤表进行通信。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值