BLE Mesh蓝牙mesh传输大数据包传输文件照片等大数据量通讯

2023-09-18 10:37:46

1、BLE Mesh数据传输现状

         BLE Mesh网络技术是低功耗蓝牙的一个进阶版,Mesh扩大了蓝牙在应用中的规模和范围,因为它同时支持超过三万个网络节点,可以跨越大型建筑物,不仅可以使得医疗健康应用更加方便快捷,还能监测像学校这类的大型公共场所随时监测学生的安全状况。

         BLE Mesh覆盖范围通过mesh网络的relay(中继)功能来实现的,即在mesh网络中,消息可以被临近的节点relay出去,这样经过多跳之后,消息再到达目标节点。因此传输覆盖能力,指的是在mesh网络覆盖的范围内,通过其网络内部的节点的relay去实现,同时也可以解决点对点的BLE通信时的遇到障碍物会通信不畅的问题。同时relay也引出了mesh网络的“Managed Flooding”,就是消息会以泛洪方式传播,只要relay节点收到消息,那么它就会将消息广播给其周围的节点。Flooding的方式是不需要有中心节点去协调的(如Zigbee就有router和coordinator),因此并不会去选择最优路径去传播,而是消息可能通过许多条路径先后到达……于是,这同时也为Flooding的网络带来了问题,消息其实传输一次并成功即可,这种方式会有太多的冗余的传输,造成能量的消耗和网络数据的阻塞。  

         因此BLE Mesh通常数据包较短,最长也就几十个字节。发包频率不易过快,这导致整个网络的数据传输性能降低。

   

      2、大数据高吞吐需求

        很多场景下,我们不仅需要覆盖范围要广,而且需要大数据量的传输。比方说传输文件或者图片等。传统的BLE Mesh网络就不适合了。此时数据将大量的被转发。整个网络近乎无法传输图片或者文件。

        但是,我们知道在BLE 点到点使用GATT方式传输方式。传输文件图片的话,就会大大减少传输时间。甚至可以达到2Mbps。另外,很多蓝牙BLE的芯片是支持GATT Server和GATT Client共存的。

        那么,我们就可以实现“手握手”多跳的方式进行大数据量的传输。Source节点创建GATT Client,中间节点创建GattServer和 GattClient,目的节点创建GATT Server。这样,就可以实现大数据的多跳数据传输。

          

      3、大数据链路的路由

        根据大数据的传输需求,我们需要查找到目的节点的传输路径。我们采用按需路由的方式,建立动态路由。在需要数据传输的时候,动态建立大数据链路的路由。数据传输完成后,自动释放路径。是否中间大数据节点,以便其它节点使用。

        路由查找建立过程,如下图所示:

       

          使用SimpleWiFi的S2W-M03模块,首页-SimpleWiFi-淘宝网对路由建立过程进行测试。在100个节点的网络路由建立时间需要大概500ms的时间。在大数据链路传输数据带宽为2Mbps。能够完成大数据传输的需求。

     路由选择时,需要对路由发现算法的数据包进行处理,通常处理数据流程如下:

      

以上的算法已经在S2W-M03商用,稳定性得到了验证。

      4、大数据链路传输

             大数据链路建立成功后,进入大数据传输阶段。大数据传输阶段的链路数据包格式如下:

             在文件传输过程中。我们采用的数据包的具体数据格式。

更多推荐

跨端开发方案之桌面应用小程序

小程序容器技术的未来是充满希望的,它为我们开辟了一个全新的数字世界,连接了桌面操作系统和移动生态系统之间的界限。正如技术不断演进,我们可以期待着更多的创新和发展,为用户带来更加便捷和多样化的应用体验。这一技术的推广和应用将继续推动数字科技的发展,塑造着未来的数字生活。QtGroup在提及2023年有桌面端应用程序开发热

【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库

系列文章目录【微服务实战之Docker容器】第一章-下载及安装文章目录系列文章目录坑:容器卷记得加入以下命令配置是个啥?能干啥?基本的命令读写规则映射添加说明卷的继承和共享坑:容器卷记得加入以下命令配置--privileged=trueDocker挂载主机目录访问如果出现cannotopendirectory.:Per

第24章_瑞萨MCU零基础入门系列教程之内部温度传感器-TSN

本教程基于韦东山百问网出的DShanMCU-RA6M5开发板进行编写,需要的同学可以在这里获取:https://item.taobao.com/item.htm?id=728461040949配套资料获取:https://renesas-docs.100ask.net瑞萨MCU零基础入门系列教程汇总:https://b

通过 Helm Chart 部署 Easysearch

Easysearch可以通过Helm快速部署了,快来看看吧!Easysearch的Chart仓库地址在这里https://helm.infinilabs.com。使用Helm部署Easysearch有两个前提条件:cert-managerlocal-path我们先按照Chart仓库的说明来快速部署一下。~helmrep

LLM(二)| LIMA:在1k高质量数据上微调LLaMA1-65B,性能超越ChatGPT

本文将介绍在Lit-GPT上使用LoRA微调LLaMA模型,并介绍如何自定义数据集进行微调其他开源LLM监督指令微调(SupervisedInstructionFinetuning)什么是监督指令微调?为什么关注它?目前大部分LLM都是decoder-only,通常是续写任务,有时候未必符合用户的需求,SFT是通过构造

锐捷交换机vlan隔离(wifi段仅能访问外网,和内网隔离)

因为公司的wifi段,未做隔离,无意间上了网,发现能访问内网网段,这里内网是10、20段,管理网段是100段,于是做了和内网的vlan隔离。拓朴如下,所有vlan的网关都起在核心上,核心上起了DHCP,分配wifi段为80段。所有交换机通过trunk连接。要求把80段和内网的其它网段隔离开,不让它访问:在锐捷核心上配置

深度学习归一化原理及代码实现(BatchNorm2d,LayerNorm,InstanceNorm,GroupNorm)

文章目录概述形式原理理解源代码实现1.BatchNorm2d2.LayerNorm3.InstanceNorm4.GroupNorm概述本文记录总结pytorch中四种归一化方式的原理以及实现方式。方便后续理解和使用。本文原理理解参考自https://zhuanlan.zhihu.com/p/395855181形式四种

【无标题】

文章目录ListView是怎么渲染的?ListView怎么做到控制性能?_ViewportElementRenderViewport先从这一块朴素的代码开启我们的旅程:ListView.builder(itemBuilder:((context,index){returnListTile(title:Text("thi

【PyTorch 攻略 (3/7)】线性组件、激活函数

一、说明神经网络是由层连接的神经元的集合。每个神经元都是一个小型计算单元,执行简单的计算来共同解决问题。它们按图层组织。有三种类型的层:输入层、隐藏层和输出层。每层包含许多神经元,但输入层除外。神经网络模仿人脑处理信息的方式。二、神经网络的组件激活功能确定是否应该激活神经元。神经网络中发生的计算包括应用激活函数。如果一

循环神经网络——下篇【深度学习】【PyTorch】【d2l】

文章目录6、循环神经网络6.7、深度循环神经网络6.7.1、理论部分6.7.2、代码实现6.8、双向循环神经网络6.8.1、理论部分6.8.2、代码实现6.9、机器翻译6.9.1、理论部分6.10、编码器解码器架构6.10.1、理论部分6、循环神经网络6.7、深度循环神经网络6.7.1、理论部分设计多个隐藏层,目的是为

科技云报道:分布式存储红海中,看天翼云HBlock如何突围?

科技云报道原创。过去十年,随着技术的颠覆性创新和新应用场景的大量涌现,企业IT架构出现了稳态和敏态的混合化趋势。在持续产生海量数据的同时,这些新应用、新场景在基础设施层也普遍基于敏态的分布式架构构建,从而对存储技术提出了新的要求。正因如此,分布式存储凭借高安全性、可靠性、可用性、易于扩展等特性,在敏态业务中得到了快速发

热文推荐