蓝牙Mesh基础(9)设备配网

设备配网(启动配置)

    • 设备配网过程
    • 配网PDU
      • 配网PDU如何传输呢

设备配网过程

蓝牙Mesh基础(9)设备配网_第1张图片

  • 首先,需要配网的设备先进行未配网广播,这个广播不同于普通的ble广播,广播数据结构类型(AD Type)为mesh Beacon,专门用于mesh未配网广播和网络安全广播,数值为0x00时表示未配网广播(Unprovisioned Device beacon);0x01时表示网络安全广播(Secure Network beacon)。

    当数值为0x00时,广播数组包含字段如下图所示:

蓝牙Mesh基础(9)设备配网_第2张图片
在这里插入图片描述
在这里插入图片描述
       device UUID是每个设备特有的128位UUID;OOB information 用于给启动配置设备表明自己支持OOB类型,每一位表示 一 种类型,如下表所示:
蓝牙Mesh基础(9)设备配网_第3张图片      URI Hash:没整明白,,,,,望知道的评论区回复一下》》

  • 邀请------ 启动配置设备(手机、平板或者其他的配网节点)收到设备的未配网广播后会发出一个邀请入网类型的PDU,设备收到后回复一个Provisioning Capabilities类型的消息,表明设备的功能(元素数量、支持的算法(FIPS P-256 Elliptic Curve)、PublicKey格式、OOB形式)

  • 交换公共密钥------启动配置设备在收到设备的Provisioning Capabilities PDU后,会判断自己能否给设备配网,当有能力时会对设备发送Provisioning Start PDU,消息字段如下表所示,用于表明自己按设备的能力已经配置了加密方式OOB方式等
    蓝牙Mesh基础(9)设备配网_第4张图片
          根据设备public key支持的格式,分为两种交换方式,
          ①public key字段值为0–No OOB Public Key is used,使用下图所示方式直接交换公共密钥
    蓝牙Mesh基础(9)设备配网_第5张图片
          ②public key字段值为1–OOB Public Key is used,使用下图所示方式在OOB信道中交换公共密钥
    蓝牙Mesh基础(9)设备配网_第6张图片

  • 认证------认证需要根据设备的OOB能力(output OOB、input OOB、static OOB)选择不同的方式,可能是闪几下灯,输个数啥的
    天猫精灵的开发者平台阿里精灵采用的static OOB方式,Authentication value计算公式:
                 AuthValue = SHA256(Product ID,MAC,Secret)。

    即:将ProductID,MAC,Secret三元组通过字符串用英文逗号连接,然后进行SHA256摘要计算,取前16字节。注:这里用于计算SHA256的英文字母全部为小写。
    蓝牙Mesh基础(9)设备配网_第7张图片

  • 分配数据------认证完之后,启动配置设备就可以给待入网设备发送加入网络相关的信息了(前奏那么长,重点终于来到了)。认证成功完成后,会通过两台设备的私有密钥和交换的对等公共密钥生成会话密钥。会话密钥用于加密分配数据,包括称网络密钥(NetKey)、单播地址等。分配的数据如下表所示,
    蓝牙Mesh基础(9)设备配网_第8张图片
    完事之后待入网设备给启动配置设备发送一条Provisioning Complete PDU结束整个配网过程。
    蓝牙Mesh基础(9)设备配网_第9张图片

配网PDU

蓝牙Mesh基础(9)设备配网_第10张图片
在整个配网过程中有统一的PDU格式,有三个字段,各个字段的大小和解释如下表所示:
蓝牙Mesh基础(9)设备配网_第11张图片
Type表示具体的PDU类型,共有10中类型,如下表所示:
蓝牙Mesh基础(9)设备配网_第12张图片

配网PDU如何传输呢

字节序:大端
由于启动配置设备可能不支持Mesh(手机),为了解决这个问题,协议在配网中设置了两个承载:PB-ADV、PB-GATT,对于不支持Mesh的启动配置设备,待入网的设备通过PB-GATT承载传输配网信息。

蓝牙Mesh基础(9)设备配网_第13张图片

你可能感兴趣的:(BLE,Mesh)