SigMesh学习笔记

														**

SIgMesh

1.Mesh简介
Bluetooth Low Engergy Mesh是基于低功耗蓝牙技术(Ble)的网状网络解决方案,现阶段主要使用泛洪网状网络(flooding-based mesh network)。
Ble的通信信道有两种:advertising channel和data channel,Mesh主要工作在广播信道上,通过passive scan和advertising,分别进行接收和发送,Data channel主要是为了兼容现有不支持advertising设备,可以通过 LE Link方式进行通信。
2.Mesh框架
Mesh分为bearer layer、network layer、low transport layer、upper transport layer、access layer、foundation model layer以及model layer。
2.1 Model layer(foundation )
定义了特定应用的一组状态和操作,通过Model ID标识,分为16位 model ID的 Sig model和32位Model ID 的Vendor Model两种,实现上,会对16位的Sig model ID进行编码,16位的Sig Model ID会被编码位32位的Model ID,例如 configuration server 和 client的Model ID为 0x0000 和 0x0001,但是实现上会编码为 0x0000FFFF 和 0x0001FFFF。
2.2 access layer
access layer 定义了上层应用消息格式,其中包括了Operation Codes,即access codes,所有的消息必须包含统一的opcode,Mesh定义了了一部分标准的opcode,也预留了厂商自定义的opcode,自定义opcode为3字节,第一个字节为厂商自定义的opcode(高两位为1,即厂商可自定义64个opcode),后两字节为Company ID,以淘宝为例:自定义opcode为 0xD0,Company ID为0x01A8,即0xD001A8。
access layer消息首先会被 transport layer使用APP Key加密,TransMIC校验长度支持4字节和8字节,如果使用了 4 Bytes TransMIC,access层消息最大长度为380 bytes,反之最长为376 bytes。
2.3 transport layer (upper & low )
transport layer负责应用层加密和解密,Friendship 维护,heartbeat 和 segmentation 和 reassembly。
transport layer 采用 4字节 TransMIC,消息长度小于等于11字节( 包含 opcode),且不注定要求使用SAR,则消息不会被分包发送,反之则会被分包处理,根据消息被一笔或者多笔 advertising packet发送,且会要求接收端回复 transport layer的 acknowledge。
2.4 network layer
负责网络层的加密、加扰 和 中继。
2.5 bearer layer
Bearer layer 分为 Loopback bearer 、advertising bearer 、gatt bearer 和 other bearer, Loopback bearer 即自发自收通道,用于Model之间的通信, other bearer是是其他接口,用于在 bearer 层拓展 Mesh网络,例如 gateway 可以通过 other bearer连接 Mesh 和 以太网,使得Mesh网络可以接入 internet
3.Mesh节点特性
SigMesh定义了4中特性:Relay feature 、Proxy feature 、 Friend feature 、Low Power feature 。
Mesh网路中的 LPN节点 需要与 Friend Node建立 Friend Ship,Friend Node 会帮助 LPN缓存消息。

4.Mesh地址
0x0000 未分配的地址
0x0001~0x7FFF unicast address 每个element会被分配一个单播地址,消息的原地址一定是单播地址
0x8000~0xBFFF 虚拟地址,由label uuid生成,数量多,可以不集中管理
0xC000~0xFFFF 组地址,0xC000-0xFEFF自由分配组地址,0xFF00-0xFFFF固定组地址
5.Device UUID
每个设备出厂是被分为一个唯一的16位UUID,称作为Device UUID,用于标识一个Mesh 设备,不用依赖蓝牙地址来标记设备,在建立 PB-ADV Link时,需要Device UUID字段来标记 Device,当Provision成功后,即可用unicast address来标记 Device。

你可能感兴趣的:(SIgMesh)