目录

未配网设备在配好网,被纳入网络后,可称之为节点

蓝牙mesh网络中,节点可以有选择地支持四大功能——朋友、低功耗、转发、代理功能,可以复用多个功能(由于单片机硬件限制,ch582除了复用转发功能外不建议复用其他功能),或者作为边缘节点或者说普通节点——不启用任何一个功能,做好用户自定义的工作即可。

朋友节点低功耗节点可以说是蓝牙mesh组网中的Feature了。

低功耗节点的低功耗,一部分要归功于朋友节点,朋友节点可以说是包揽了低功耗节点的消息“接收”功能。就像“菜鸟驿站”和“收件人”,在消息传递给与朋友节点相连的低功耗节点时,朋友节点会先代收(菜鸟驿站收到包裹),再由低功耗节点定时询问朋友节点是否有消息,有则接收(收件人去取件),没有就下次再说。这就给低功耗节点节省了功耗,不用时刻去抓取广播层中的数据,查看是否是发给自己的(收件人有自己的学习工作,不用不停地查询是否有包裹)。

沁恒的mesh协议栈中规定,低功耗节点上电并配网或是恢复网络信息后,会主动向外广播建立朋友关系的消息,自动与朋友节点相连,之后才能进行消息的接收。在往外发送消息时,低功耗节点就不用考虑对方是否有能力收到消息,配网成功后直接广播发出去就好了(甚至可以砍掉收数据功能,不用连接朋友节点就可以发数据,但是如肉夹馍不要馍一样奇怪且丢包率无保障,不推荐这么用)。

582做朋友节点默认支持4个低功耗节点(可以支持更多,在低功耗节点2sPOLL一次数据的情况下,至少可以支持10个),默认开启转发功能。理论上只要ram够用,朋友节点就能支持更多低功耗节点。如果需要一个朋友节点支持多个低功耗节点,比如说50+个低功耗节点,每个低功耗节点10sPOLL一次,那582做朋友节点ram不够用,可以考虑用208。

朋友节点↓

低功耗节点↓

转发节点一般是网络内部的节点,边缘节点可以不用启用转发功能,或者在开启/复用转发功能的节点较密集的地方减少转发功能的启用,以减少广播层的压力。

转发功能已由协议栈处理好,在app_mesh_config.h中使能一下就能实现自动转发,除了低功耗节点考虑到功耗要求外,其他节点都默认开启/复用了转发功能。转发过程由底层代码完成,不会告知用户层。转发功能可由下面的宏定义打开↓

代理节点可以实现通过手机APP对其配网,只不过代理节点proxy例程中运用的是BLE上层的mesh协议来实现连接手机,而自配网包含外设(即手机配网)例程中是走BLE传输配网信息后,芯片拿着配网信息进行自配网。由于proxy例程对手机APP有支持mesh功能的要求,需要APP开发人员储备有mesh协议栈相关知识,故不太推荐。如果需要测试,除了proxy例程外,也可以用天猫精灵例程在下图位置启用代理功能与GATT层配网功能,用nRF Mesh这个APP测试。

小贴士:①配网流程和工作流程是分开的,所有节点都需要先配网再实现节点功能,因为消息都在广播层传输,没有点对点的连接。配网后即各个节点分配到了网络地址后,消息才有落脚点,各节点才能各司其职。对于低功耗节点来说,比如说采集环境温度是它的工作;对于朋友节点来说,支持低功耗节点的接收数据是它的本职工作,转发数据是例程中默认开启的“转发”功能的兼职工作(保证附近有转发节点的情况下,可以在app_mesh_config.h中开启或关闭相关功能)。

②蓝牙mesh网络中所有的消息最终都通过BLE广播承载层传输,故低功耗节点在配网后发消息能够不依赖朋友节点,直接发出去——反正是广播,谁抓到包了谁就往外转发至目标节点。

③在582官方例程中,不启用代理功能也能实现与手机通信,不过是走BLE而不是mesh,也就是说芯片可以同时跑mesh与BLE的从机代码,手机作为BLE主机与芯片作为BLE从机连接通信。在后缀有_with_peripheral的工程中都是如此工作的。

蓝牙mesh组网实践(节点功能介绍)的更多相关文章

  1. 蓝牙mesh介绍

    了解一下关于蓝牙Mesh的知识. 蓝牙mesh网络使用,并且依赖于低功耗蓝牙(BLE).低功耗蓝牙技术是蓝牙mesh使用的无线通信协议栈. 蓝牙BR / EDR能够实现一台设备到另一台设备的连接和通信 ...

  2. 升讯威微信营销系统开发实践:(3)功能介绍与此项目推广过程的一些体会( 完整开源于 Github)

    GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...

  3. [蓝牙前沿应用] 照明即平台 —— 通过蓝牙增强服务提高照明投资回报率(蓝牙MESH、定位AoA、AoD)

      1.照明即平台(LAAP) 随着照明设施向LED转型,他们也在利用类似于蓝牙MESH的技术,创建一个可连接的照明平台,作为他们建筑的中枢神经系统.这些系统除了提供先进的照明控制,还建立了一个增强版 ...

  4. 蓝牙协议分析(3)_BLE协议栈介绍

    1. 前言 通过“蓝牙协议分析(2)_协议架构”的介绍,大家对蓝牙协议栈应该有了简单的了解,但是,肯定还有“似懂非懂.欲说还休”的感觉.有这种感觉太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议, ...

  5. SIG蓝牙mesh笔记2_mesh组成

    目录 SIG 蓝牙 mesh 组成 mesh网络概述 网络和子网 设备和节点 devices & nodes 入网 mesh中的几个概念 智能插座例子 SIG 蓝牙 mesh 组成 mesh网 ...

  6. 关于蓝牙Mesh您必须知道的七件事

    蓝牙技术联盟于7月19日正式宣布,蓝牙(Bluetooth)技术开始全面支持Mesh网状网络.全新的Mesh功能提供设备间多对多传输,并特别提高构建大范围网络覆盖的通信能力,适用于楼宇自动化.无线传感 ...

  7. 常见无线组网分析(NB-IOT组网和Mesh组网)

      NB-IOT LoRa Zigbee WIFI 蓝牙 组网方式 基于现有蜂窝组网 基于LoRa网关 基于Zigbee网关 基于无线路由器 居于蓝牙Mesh的网关 网络部署方式 节点 节点 + 网关 ...

  8. 什么,kafka能够从follower副本读数据了 —kafka新功能介绍

    最近看了kafka2.4新版本的一些功能特性,不得不说,在kafka2.0以后,kafka自身就比较少推出一些新的feature了,基本都是一些修修补补的东西.倒是kafka connect和kafk ...

  9. VUE+Element 前端应用开发框架功能介绍

    前面介绍了很多ABP系列的文章<ABP框架使用>,一步一步的把我们日常开发中涉及到的Web API服务构建.登录日志和操作审计日志.字典管理模块.省份城市的信息维护.权限管理模块中的组织机 ...

  10. 蓝牙mesh网络技术的亮点

    蓝牙mesh网络技术的亮点 The highlights of Bluetooth mesh networking technology 导言 蓝牙是当今最主要的低功耗无线技术之一,对无线设备用户和开 ...

随机推荐

  1. 炫酷科技感黑客感瀑布流html代码

    效果如下 代码如下 <!DOCTYPE html><html> <head> <meta http-equiv="Content-Type" ...

  2. Go语言的template

    html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容.它提供了和 text/template包相同的接口,Go语言中输出HTML的场景都应使用html/temp ...

  3. 创建型模式 - 抽象工厂模式AbstractFactory

    学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 模式的定义与特点 抽象工厂模式.是一种为访问类提供一个创建一组相关或相关一类对象的接口,且访问类无需指定所要的产品的具体类,就能 ...

  4. git拉项目出现的小问题

    问题描述 在IDEA中拉代码事报错. 点击查看报错信息 error: unable to read askpass response from 'C:\Users\霍亚龙\AppData\Local\ ...

  5. Linux上安装jdk Tomcat mysql redis等

    1.安装JDk  1.1这里使用xshell中xfxp进行文件的上传,将jdk二进制包上传到Linux服务器上 下载地址:https://www.oracle.com/java/technologie ...

  6. CAS 悲观锁 乐观锁

    前面的偏向锁,轻量级锁,重量级锁都是悲观锁, 都会认为必须要对操作对象进行互斥访问,不然就会产生异常, 所以线程只供一个线程使用,阻塞其他线程,是悲观的 在某些情况下,同步的耗时远大于线程切换的时间, ...

  7. [Windows] 微信超级管家,自动好友回复、计数、自动同意、群发、好友导出、消息日志、无限多开

    [Windows] 微信超级管家,自动好友回复.计数.自动同意.群发.好友导出.消息日志.无限多开 微信超级管家是一款大神针对微信制作的工具,它的主要功能包括了自动回复.好友计数.自动同意.群发.好友 ...

  8. 有序数组的平方&长度最小的子数组&螺旋矩阵Ⅱ

    一.有序数组的平方 977.有序数组的平方 leetcode链接 1.方法概述 双"指针"解法:因为数组本来是有序的,平方后可能出现的两端大数值大的情况.所以从数组两端开始遍历,谁 ...

  9. el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现

    参考链接 1)https://github.com/GreenHandLittleWhite/blog/issues/152)https://github.com/GreenHandLittleWhi ...

  10. 4 .NET Core笔试题

    1.说说.NET7中 _ViewImports文件的作用? 2.什么是Razor页面? 3.说说.NET5中 __ViewStart文件的作用? 4.如何在Razor页面中实现数据模型绑定? 5.如何 ...