蓝牙Mesh学习总结二(Mesh框架)

        mesh框架分为bearer layer、network layer、lower transport layer、upper transport layer、access layer、foundation model layer以及model layer。具体可见下图

 1.1 Model层(Model Layer)

        Model层定义了典型的用户场景标准化操作的相关Models。例如消息,状态等等。

1.2 基础Model层(Foundation Model Layer)

        该层定义了特定应用的一组状态和操作,通过model id来标识。

        Element用于隔离相同的model,即使用了相同access layer opcode的model。重复的model会发送或接收相同的opcode,此时无法区分是哪一个model在发送或要接收这个opcode对应的access msg。而element会被分配不同的element address,这样可以通过msg的source address或者destination address来有效的区分modelmesh stack采用先创建element,再在制定element下注册model的方式。如果注册重复的model,需要为该model制定不同的element,stack会去检查一个element下的model是否冲突。

        mesh spec中强制要求的configuration server model不需要app注册,由stack负责处理。

        Health server model由用户自己创建并注册。只有primary element是spec强制要求的,其他element用户可根据需求自行创建并注册。

        element和model创建注册完毕后,就可以生成composition data page 0的内容,需要app提供具体的header信息,包含company id、product ID、version ID、重放保护表大小以及所支持的feature。

1.3  访问层(Access Layer)

        Access Layer定义了上层应用的消息格式,其中包含operation codes,即access opcode,所有应用消息必须包含统一的opcode。mesh spec定义了一部分opcode,也预留了空间让厂商自定义opcode。自定义opcode是3字节的,第一个字节的高两位为1,低6位为厂商自定义的opcode,后两个字节是company id。

        访问层主要负责:1.定义更高层的应用如何跟upper transport layer通讯。2.定义应用数据的格式。3.定义和控制upper transport layer应用数据的加密。4.在把应用数据扔到上层之前,会检查校验接收过来的应用数据是否合法。

1.4 上层传输层(Upper Transport Layer)

        上层传输层主要负责加密,解密和应用数据授权。定义一些节点间在这一层的一些会话,比如Friend功能,心跳包(HeartBeats)

1.5 底层传输层(Lower Transport Layer)

        这层做的事情很简单,就是拆拆拼拼。把太长的传输层的包拆成若干个分给网络层,把短的网络层的包再组成一个长的传输层的PDU(Protocol Data Unit)。

1.6 网络层(Newwork Layer)

      1.定义了如何将传输消息定位到一个或多个element。即定义多种mesh网络地址类型。(单播、组播、虚拟地址)

        2.定义了允许bearer layer传输Transport PDUs的网络数据格式。即打通传输层(transport layer)和承载层(Bearer layer)

        3.决定是中继/转发消息、接受消息以进行进一步处理,或是拒绝消息

        4.定义了如何加密和验证网络消息

1.7 承载层(Bearer Layer)

        Bearer Layer定义了mesh节点怎么传递网络消息。分为loopback bearer、advertising bearer、gatt bearer 和other bearer。        

        Loopback bearer,即自发自收通道,用于model间通信。

        other bearer是其他接口,用于在bearer层扩展mesh网络。例如Gateway可以通过other bearer连接mesh网络和以太网,使得mesh网络可以接入internet。

        Advertising Bearer 利用的是BLE GAP广播包的advertising 和scanning的功能来传递接收mesh的报文。

        The GATT Bearer 允许不支持Advertising Bearer的设备间接的与mesh节点进行通讯。怎么通讯呢?使用前面讲的代理(Proxy Protocol)。Proxy Protocol是封装在GATT里面,当然会用特别定义的GATT characteristics。支持Proxy Feature的Proxy Node也就是代理节点,因为可以同时支持两种Bearer Layer,所以可以作为mesh节点和非mesh节点的中间桥梁。

2.节点类型

2.1 中继节点(Relay)

        通过广播承载层接收并重新发送Mesh消息,以构建更大规模网络的能力。该节点帮忙转发收到的消息。因为有了relay,mesh网络就可以实现多跳(Hops)。

2.2 代理节点(Proxy)

        在GATT和广播承载层之间接收并重新发送mesh消息的能力。允许支持低功耗蓝牙但是不支持蓝牙Mesh的设备(例如现在的智能手机)连接至蓝牙Mesh网络。通过节点和代理设备的GATT接口实现交互。

2.3 友好节点(Friendship)

        为了支持低功耗设备,需要通过friendship方式,让friend node 帮助low power node缓存消息

        friendship会额外消耗内部NetKey空间。FN可以设置和建立最大friendship个数小于NetKey个数。LPB(低功耗节点)在每个NetKey上只能建立一个friendship,所以friendship个数小于等于总NetKwy个数的一般。

        存储发往LPN的消息,仅在LPN明确发出请求时才进行转发来帮助LPN接受消息

2.4 低功耗节点(Low Power Node,LPN)

        能够以明显较低的接收端占空比在mesh网络中运行。通过将无线电接收器启动时间最小化来实现节点功耗的降低,只有在绝对必要时才启动接收器。通过与friend节点建立友谊(friendship)关系来实现这一点

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值