Linvis Blog

BLE-MESH-Architecture

2019-07-13

架构

整体基于BLE,搭建一套上层体系。

  • Model layer
    定义一个model,标准化一些操作或用户场景,例如灯和传感器
  • Foundation Model layer
    定义状态,消息和配置及管理整个mesh网络
  • Access layer
    应用层和较底层的交互接口。定义和控制加密等一些东西
  • Upper transport layer
    加密,解密,认证。
  • Lower transport layer
    数据的分段和重组
  • Network layer
    控制消息的接受和转发
  • Bearer layer
    控制消息如何在节点间传递,两个bearer,advertising和GATT。其实就是广播和连接两种方式。

特点

  • 一对一或一对多
  • 允许消息转发,拓展距离
  • 消息加密
  • 与已有BLE兼容
  • 消息发送及时
  • 一个或多个节点丢失后仍可以正常工作

组成

  • 地址
    确认消息的起点和终点
  • Network key
    在Network layer层加密和认证信息
  • application key
    在Access layer层加密和认证信息
  • IV index
    拓展网络的lifetime,避免重复消息的发生

一个网络可以有多个子网(比如酒店可以有多个房间),一个设备可以属于多个子网(通过拥有多个Network key)。
这里有一个primary NetKey的概念,在primary里,节点可以参与IV update procedure。其他子网则只能传播。
Network resource通常由model server来管理(一般是手机)。

Architectural concepts

几个概念

  • States
    设备的状态信息
  • Bound states
    绑定的状态信息。几个状态信息绑定在一起,一个发生改变,另一个也随之改变
  • Messages
    操作states的信息
  • Elements
    一个节点可以有多个elements
  • Models
    models定义一个节点的一些通用的信息。
    • Server model
      一个server model由一个或多个节点的一个或多个element组成
    • Client model
      client不含state,client通常去请求,改变,消费server的states。
    • Control model
      一个control大概含有client去与其他server或其他server的client交流。
      一个device可以有server,client和control。
  • Publish-subscribe和message change
    消息订阅机制
    一个消息可以从推送消息到单播,组播或者虚拟地址上。其他节点如果对这些消息有兴趣,就可以订阅这些消息。
  • Friendship
    Friendship用于低功耗节点。通常低功耗节点不能持续监听mesh消息,所以低功耗节点可以和附近正常节点建立Friendship关系,由附近节点接收并缓存低功耗节点的mesh消息到队列中,灯带低功耗节点唤醒后,在推送这些消息过去。
    一个低功耗节点只能有一个friend节点。
  • Feature
    一个节点有四种features:
    • Relay feature
    • Proxy feature
      支持GATT
    • Low Power feature
    • Friend feature

扫描二维码,分享此文章