当前位置: 首页 > news >正文

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

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、大数据链路传输

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

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

http://www.lryc.cn/news/172793.html

相关文章:

  • 9.18 QT作业
  • 【100天精通Python】Day67:Python可视化_Matplotlib 绘动画,2D、3D 动画 示例+代码
  • Linux内核源码分析 (B.x)Linux页表的映射
  • 机器学习(15)---代价函数、损失函数和目标函数详解
  • 计算机专业大学规划之双非
  • 2.策略模式
  • 算法通过村第七关-树(递归/二叉树遍历)黄金笔记|迭代遍历
  • MySQL数据库简介+库表管理操作+数据库用户管理
  • PyTorch实战:卷积神经网络详解+Python实现卷积神经网络Cifar10彩色图片分类
  • MapRdeuce工作原理
  • 完整指南:使用JavaScript从零开始构建中国象棋游戏
  • PG-DBA培训19:PostgreSQL高可用集群项目实战之Patroni
  • 数据库管理-第105期 安装Database Valut组件(20230919)
  • 企望制造ERP系统RCE漏洞 复现
  • 【unity小技巧】Unity 存储存档保存——PlayerPrefs、JsonUtility和MySQL数据库的使用
  • 2023-9-22 滑雪
  • 基于Yolov8的工业小目标缺陷检测(6):多检测头结合小缺陷到大缺陷一网打尽的轻量级目标检测器GiraffeDet,暴力提升工业小目标缺陷检测能力
  • exe文件运行后无输出直接闪退如何找解决办法
  • OpenHarmony应用开发—ArkUI组件集合
  • Linux(CentOS)安装msf
  • 工作几年还是悟不懂自动化测试的意义
  • Redis面试问题三什么是缓存雪崩怎么解决
  • 【Unittest】自动化测试框架核心要素
  • Hyperloglog
  • 如何自动获取短信验证码?
  • Linux 本地 Docker Registry本地镜像仓库远程连接【内网穿透】
  • 基于Yolov8的工业小目标缺陷检测(4):SPD-Conv,低分辨率图像和小物体涨点明显
  • 平均精度(AP)
  • 建议收藏《Verilog代码规范笔记_华为》(附下载)
  • Nginx环境搭建、负载均衡测试