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

2023-05-16

设备配网(启动配置)

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

设备配网过程

在这里插入图片描述

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

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

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

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

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

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

    即:将ProductID,MAC,Secret三元组通过字符串用英文逗号连接,然后进行SHA256摘要计算,取前16字节。注:这里用于计算SHA256的英文字母全部为小写。
    在这里插入图片描述

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

配网PDU

在这里插入图片描述
在整个配网过程中有统一的PDU格式,有三个字段,各个字段的大小和解释如下表所示:
在这里插入图片描述
Type表示具体的PDU类型,共有10中类型,如下表所示:
在这里插入图片描述

配网PDU如何传输呢

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

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝牙Mesh基础(9)设备配网 的相关文章

  • BLE Mesh(二)BLE Mesh 基础

    Bluetooth Mesh Basics 1 Mesh vs Point to Point2 Devices and Nodes3 Elements4 Messages5 Addresses6 Publish Subscribe7 Sta
  • nRF52 Mesh开发 (3) MESH Sensor Server/Client Models详解与实现

    MESH Sensor Model 实现 MESH Spec规定的 Sensor Model 标准传感器状态传感器描述传感器参数设置传感器cadence传感器数据 传感器可发送和接收的消息Sensor Server Client Model
  • 计算机网络笔记(五):传输层

    文章目录 前言 多路复用和多路分用 UDP User Datagram Protocol RFC 768 可靠数据传输原理 流水线机制与滑动窗口协议 Go Back N GBN 协议 Selective Repeat SR 协议 TCP 协
  • Istio Java SDK API - 资源访问-VirtualService/Gateway/DestinationRule/ServiceEntry

    环境 参考上一篇文章 Java如何连接Istio 参考上一篇文章 访问Isito资源 VirtualService Gateway DestinationRule ServiceEntry 项目源码 package com you micr
  • BLE MESH组网(五)配置BLE MESH

    BLE MESH 五 配置BLE MESH 前言 概述 配置协议 供应程序 信标 邀请 交换公钥 前言 2017 年 5 月 全球最臭名昭著的勒索软件 WannaCry 在全球范围内积极攻击计算机 劫持用户数据索要赎金 这次攻击影响了 15
  • 智能家居之设备配网(理论篇)

    前言 记录杭州疫情 独自在杭州跨年了 不过也可以抽出点时间来写写博客分享一下 在这也要祝大家虎年大吉 本篇目标 介绍当前智能家居产品中 关于设备配网中用到的一些技术 配网的作用 现在家庭生活中 智能设备越来越多 大到手机 电脑 小到插座 灯
  • 按顺时针/逆时针顺序对一组 3D 点进行排序

    在 3 D 空间中 我有一组无序的点 例如 6 个点 像这样的东西 A C E F B D 这些点形成 3D 轮廓 但它们是无序的 对于无序我的意思是它们存储在 unorderedList A B C D E F 我只想从任意位置 比如说
  • 如何在 Matplotlib (Numpy) 中生成 MATLAB 图(插值)?

    我正在尝试遵循网格网格 插值的 MATLAB 示例 示例代码已找到HERE 在该网站上 我正在查看以下示例 示例 在表面上显示不均匀数据 Now I would like to produce a similar plot in Pytho
  • 在javafx中将纹理应用于网格

    我在使用 JavaFX 和 FXyz 0 1 1 将纹理应用到网格时遇到问题 I found 这个问题即使有详细的答案也无法弄清楚 我从头开始 准确地复制答案中的代码 场景是黑色的 没有可见的二十面体 我使用的是 Java 8 提供的图像是
  • Matplotlib 类似于 matlab trisurf

    长话短说 我想用 python 绘制一个通用的 3D 三角形网格 Matplotlib 似乎是理想的候选者 但我会选择任何可以实现我将要描述的功能的 3D 渲染 假设我有一个由 X Y 和 Z 定义的三角形网格 点云的 3D 坐标 每个长度
  • 物理实体的 Gmsh 问题

    我有一个 geo我用 python 脚本编写的文件 这个的主要用途 geo文件的作用是构造并保存三角网格 在 gmsh 中 您可以使用物理命令标记感兴趣的实体 例如Physical Point Physical Line etc 来了 ge
  • MATLAB 中的网格生成

    有没有子程序 在MATLAB http en wikipedia org wiki MATLAB 它接受一个点列表 然后返回一个好的网格 我可以用它来向我的同事展示 比如这样 实际上 我需要的只是一个简单的 2D 网格生成器 它接收一系列
  • 无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点

    我正在尝试跟踪面部表情 例如扬眉 微笑 眨眼等 在 ARKit 中 我可以使用 blendShapes https developer apple com documentation arkit arfaceanchor 2928251 b
  • 表面网格到体积网格

    我有一个使用 Meshlab 从点云生成的封闭表面网格 我需要为此获得一个体积网格 这样它就不是一个空心物体 我想不通 我需要获取 stl 文件进行打印 谁能帮我获得体积网格 我更喜欢简单的解决方案而不是复杂的算法 给定一个定向的水密表面网
  • LibGDX 网格高度图法线和灯光

    我正在尝试让网格法线和灯光在 LibGDX 项目中工作 我已经有了从高度图纹理像素生成的纹理网格 问题是我无法正确点亮法线 另外 我不能 100 确定我在 TerrainChunk 类中正确设置了法线顶点 这是主类代码 package co
  • 如何计算具有三角形面的网格的质心?

    我想根据以下描述计算网格的新质心 但我不想使用 Blender 的内置函数来计算质心 如所解释的here https blender stackexchange com questions 14294 how to recenter an
  • MATLAB:在子图中绘制/保存网格函数的 X-Y 视图

    正如标题所示 我试图将网格函数的 2 变量切片 例如 作为 jpg 保存为子图 我想使用 m 文件来执行此操作 因为我有很多要生成的图 我已经弄清楚如何在他们自己的图形上绘制视图 但我无法让它们正确地绘制为图形中的子图 为了说明我的意思 以
  • Unity:将网格物体轻轻包裹在其他网格物体周围?

    给定一个网格 如左侧的立方体对象 和另一个自定义的球状网格 右侧 如果更容易的话 它可以是另一种形状 Unity 和 C 中的一个在运行时如何将第二个网格轻轻包裹在第一个网格周围 谢谢 下面的方法 借助 VirtualMethodStudi
  • 在 Three.js 中使用多种材质来合并几何体

    我想使用 2 个网格创建一棵松树 其中 1 个用于树干 另一个用于灌木 这就是我所做的 var pine geometry new THREE Geometry var pine texture 1 THREE ImageUtils loa
  • 2d 图像点和 3d 网格之间的交点

    Given 网格 源相机 我有内在和外在参数 图像坐标 2d Output 3D 点 是从相机中心发出的光线穿过图像平面上的 2d 点与网格的交点 我试图找到网格上的 3d 点 This is the process From Multip

随机推荐

  • System.console().readPassword() java.lang.NullPointerException

    java核心技术 卷I 书籍中有关 java io Console 类的1个示例 System console readLine 与 System console readPassword 在 idea 中运行出现 java lang Nu
  • Linux man中文手册的安装与使用

    概要 xff1a 在 ubuntu 20 04 中下载 安装使用 man 中文手册 文章目录 linux shell命令学习法宝 man 手册man中文手册的下载 安装及环境变量的配置下载安装环境变量配置及 cman 命令使用 man 中文
  • X window selection --- xclip

    原文 英文 url xff1a https encyclopedia thefreedictionary com X 43 Window 43 selection 本文为笔者的翻译 xff0c 红色部分为笔者增加的批注 文章目录 Activ
  • linux安装xclip实现终端与剪贴板之间的通道

    概要 xff1a ubuntu 20 04 通过安装 xclip 来实现终端与剪贴板之间的数据通道 xff1a xclip 类似 dos 中的 clip命令 xff0c xclip 可将命令执行的结果保存到剪贴板 xff0c 还允许将文件的
  • java中GBK与UTF-8编码的转换

    文章目录 java源文件中中文字符的编码的问题UTF 8和GBK格式的文件相互转换java实现文件编码的转换 java不同编码的字节数组的转换Java判断文件编码格式对于UTF 8格式文件的判断 xff1a 利用cpdetector开源库确
  • GBK编码表

    全国信息技术标准化技术委员会 汉字内码扩展规范 GBK Chinese Internal Code Specification 1 0 版 xff08 按编码顺序排列 xff09 其编码范围 xff1a 8140 xff0d FEFE xf
  • dll文件下载网址

    https cn dll files com
  • windows中dos命令汇总及获取管理员权限

    文章目录 windows 获取管理员权限的2种方式runas 用法 windows dos 命令行语法项windows dos命令总述 windows dos命令详细介绍 win7及以前 微软官网 windows dos命令详细介绍 win
  • windows比cmd更强大的 WMIC命令使用详解

    文章目录 什么是wmic WMIC能做什么 WMIC命令使用帮助文档WMIC命令使用实例wmic的运行方式可以有两种法1 显示进程的详细信息2 停止 暂停和运行服务功能3 显示出BIOS信息4 停止进程的操作5 连接远程电脑6 BIOS 基
  • 编程意识——宏定义封装多个函数参数

    作者 釜薪君 公众号 嵌入式杂牌军 文章目录 前言一 这种意识的来源二 实现源码分析1 函数调用2 宏定义部分3 函数实现4 宏替换后的函数调用 总结 前言 今天带小伙伴们分析一段不错的代码 xff0c 学习一下关于宏封装的一种意识 xff
  • DSP28335的SCI的FIFO中断使用心得

    自学了一段时间的DSP28335的串口设置 xff0c 写下来帮助更多的新手 xff0c 遇到了很多问题也记录一些解决办法 以下全都是我个人的理解 xff0c 可能说的不对 xff0c 大家讨论 1 关于为什么必须用FIFO 一般的DSP系
  • 51单片机堆栈深入剖析

    用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势 Keil公司的C51编译器支持经典8051和8051派生产品的版本 xff0c 通称为Cx51 应该说 xff0c Cx51是C语言在MCS51单片机上的扩展 xff0c
  • 基于ros_arduino_bridge的智能小车----上位机篇

    基于ros arduino bridge的智能小车 上位机篇 基于ros arduino bridge的智能小车 硬件篇 基于ros arduino bridge的智能小车 下位机篇 ros arduino bridge文件系统 xff08
  • 基于ros_arduino_bridge的智能小车----下位机篇

    基于ros arduino bridge的智能小车 下位机篇 参考文章 xff1a 基于ros arduino bridge的智能小车 上位机篇 基于ros arduino bridge的智能小车 硬件篇 下位机部分实际上可以视作完全独立的
  • 【命令】Python执行命令超时控制【原创】

    目录 参考 概要 方案 方案一 xff1a os system 方案二 xff1a os popen 方案三 xff1a subprocess check output 方案四 xff1a subprocess Popen 方案五 xff1
  • nRF52 Mesh开发 (2) SDK例程Light_switch server 添加一个element控制开发板其他LED灯

    server文件结构 xff1a 使用SEGGER编译的话直接打开 emProject文件即可 xff1b img文件中包含程序运行过程图 xff1b include文件包含该例程下的头文件 xff1b 2 具体操作 xff1a 在main
  • nRF52 Mesh开发 (3) MESH Sensor Server/Client Models详解与实现

    MESH Sensor Model 实现 MESH Spec规定的 Sensor Model 标准传感器状态传感器描述传感器参数设置传感器cadence传感器数据 传感器可发送和接收的消息Sensor Server Client Model
  • Telink Mesh 开发(1)调试log打印

    Telink Mesh SDK 调试log打印 Telink 官网论坛建议使用GPIO模拟串口打印log xff0c 推荐阅读Telink官网发布的最新SDK使用手册 xff0c 更新了不少东西 一 使用串口打印log1 使能uart lo
  • 蓝牙Mesh基础(3)蓝牙Mesh协议--总览

    蓝牙Mesh协议 总览Bearer Layer xff08 承载层 xff09 Network Layer xff08 网络层 xff09 Low Transport Layer xff08 下层传输层 xff09 Upper Transp
  • 蓝牙Mesh基础(9)设备配网

    设备配网 xff08 启动配置 xff09 设备配网过程配网PDU配网PDU如何传输呢 设备配网过程 首先 xff0c 需要配网的设备先进行未配网广播 xff0c 这个广播不同于普通的ble广播 xff0c 广播数据结构类型 xff08 A