蓝牙Sig Mesh 概念入门③——分层结构Layered architecture


在这里插入图片描述
在这里插入图片描述

一、Model layer

model 定义了一个节点支持的功能特性,每一个 model 都定义了自己的 op codestatus

  • 比如 generic onoff model,定义了 Generic ON/OFF/GET/STATUS
  • 比如……

Provisioner 在组网的时候

  • 会通过 get composition data命令去获取节点支持的所有model id
  • 然后Provisioner 就能知道节点具体支持什么功能了
  • 然后Provisioner 才知道应该给该节点发送什么op code

Model 又分为 server model 和 client model。

  • server model:是一个被控制的角色,有自己的状态,可以被别的节点改变和获取
    • 比如一个Led设备,具备onoff server model
    • 可以接收 onoff set/get命令(App下发的控制开关命令)
    • 可以回复 onoff status命令(App查询Led状态的命令)
    • 但是LED不能自己对外发送 onoff set/get 命令onoff status命令
  • client model:是一个控制 server 节点的角色,没有自己的状态
    • 比如一个蓝牙遥控器,具备onoff client model
    • 可以发送 onoff set/get命令(遥控LED或者其他设备)
    • 可以发送 onoff status命令(查询LED或者其他设备的状态)
    • 但是不能回复收到的 onoff status命令,也不会处理收到的 onoff set/get命令

二、Foundation Model layer

Foundation Model 的模式和 model 基本一样,是基础 model,包含 Configuration Server modelConfiguration Client modelHealth Server modelHealth Client model

  • 被配网节点都必须包含Configuration Server model
  • provisioner 节点必须包含Configuration Client model

这两个 model 包含的常用 op code 是 subscription add/delete(即组号添加/删除)等,并且这两个 model 的 access layer 层的加密都使用 device key,所以一般来说只有 provisioner 节点才能发送 configuration model 的 set/get 命令。

三、Access layer

简单的来说,一句话

把 op code 和 parameter 按规定的格式组合在一起。

四、Transport layer

使用 app key 或者 device key(configuration model 使用)进行加解密。判断并确认是否需要执行分包和组包协议。

目前为了兼容 BLE4.2 等不支持长广播包的设备,所以都统一设定 adv 的最大 payload 为31byte。

五、Network layer

对于发送流程

  1. 对数据包添加 sequence number,等
  2. 并使用 network key,iv index 对数据进行加密
  3. 发送完成后 sequence number 会执行“加 1”的操作

对于接收流程

  1. 使用 network key,iv index 对数据进行解密
  2. 解密后判断sequence number 是否有效(即是否大于已经接收过的值)
  3. 如果无效则直接丢弃

六、Bearer layer

把已经执行过加密的数据包通过typeLL_TYPE_ADV_NONCONN_IND(0x02)的广播包发送到mesh网络中。

觉得好,就一键三连呗(点赞+收藏+关注)

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小康师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值