蓝牙5/4.2/4.1/4.0数据吞吐率

2023-05-16

先给出结论:

 

蓝牙4.0/4.1的吞吐率 为0.305Mbps;

蓝牙4.2的吞吐率 为0.803Mbps;

蓝牙5的吞吐率 为1.434Mbps(前提:使用2Mbps调制速率;如果使用1Mbps调制速率,那么吞吐率就和蓝牙4.2一样);

总结:蓝牙4.2的吞吐率比蓝牙4.0/4.1提升了163 %. 蓝牙5的吞吐率比4.2提升了78.5 % .

 

 

下面是具体计算原理及公式:

蓝牙数据包

蓝牙数据包由Preamble、Access、PDU、CRC四部分组成。

其中,PDU由Header、Payload、MIC三部分组成。

Header由LLID、NESN、SN、MD、Length五部分组成。

传输周期

设备A发送一个数据包给设备B,该过程称作T时隙;

然后等待150us,该过程称作IFS时隙;

接着设备B发送一个ACK包给设备A,该过程称作R时隙;

然后又等待150us,开始下一次传输。

T + IFS + R + IFS 为一个完整的传输周期

注:ACK包为空包,即PDU的Payload为0,那么ACK包的长度 = 1+4+2+3 = 10字节。

蓝牙4.0/4.1/4.2数据吞吐率

蓝牙4.0/4.1/4.2的调制速率是1Mbps,即1秒钟传输1M bits。

传输1bit的时间 = 1s / 1M bits = 1 us

(1)蓝牙4.0/4.1

蓝牙4.0/4.1的PDU头部用 5个bit标识有效数据长度,即0-31字节,那么去除数据完整性校验MIC的4字节后,有效数据最大为27字节。

T时隙时间 = (1+4+2+27+4+3) x 8 x 1us = 328us

R时隙时间 = (1+4+2+3) x 8 x 1us = 80us

一个完整传输周期时间 T = 328 + 150 + 80 + 150 = 708us

那么

(2)蓝牙4.2

蓝牙4.2的PDU头部用8bit标识有效数据长度,即0-255字节,那么去除数据完整性校验MIC的4字节后,有效数据最大为251字节。

T时隙时间 = (1+4+2+251+4+3) x 8 x 1us = 2120us

R时隙时间 = (1+4+2+3) x 8 x 1us = 80us

一个完整传输周期时间 T = 2120 + 150 + 80 + 150 = 2500us

那么

可见蓝牙4.2的吞吐率较蓝牙4.0/4.1提升了163%。

(3)蓝牙5

蓝牙5的调制速率是1Mbps或2Mbps,即1秒钟最快可传输2M bits。

(1)使用1Mbps调制速率

那么吞吐率就和蓝牙4.2一样。

(2)使用2Mbps调制速率

那么传输1bit的时间 = 1s / 2M bits = 0.5 us

T时隙时间 = (1+4+2+251+4+3) x 8 x 0.5us = 1060us

R时隙时间 = (1+4+2+3) x 8 x 0.5us = 40us

一个完整传输周期时间 T = 1060 + 150 + 40 + 150 = 1400us

那么

可见蓝牙5的吞吐率较蓝牙4.2提升了78.5%。



 

 

 

 

 


作者:飞哥物联
链接:https://www.jianshu.com/p/2e9cf2faa185
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

 

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

蓝牙5/4.2/4.1/4.0数据吞吐率 的相关文章

  • Linux查看线程的堆栈信息

    1 使用top命令 xff0c 查找pid 2 显示线程 xff0c 查找线程tid ps mp pid o THREAD tid time sort rn 3 将线程id转化为16进制0xtid printf 34 x n 34 tid
  • MPU6050 简介

    目录 关于MPU6050芯片 关于小板 关于厂家和DATASHEET 关于漂移 关于角加速度还是角速度 关于精度和量程 xff08 可调 xff0c 可选 xff09 关于功耗 xff0c 陀螺仪 43 加速器工作电流 xff1a 3 8m
  • 银河麒麟V10操作系统安装putty和cutecom和网络调试助手(mNetAssist)

    银河麒麟V10操作系统安装putty和cutecom和网络调试助手 xff08 mNetAssist xff09 安装Putty 需要连接网络 sudo apt get install putty 安装Cutecom 需要连接网络 sudo
  • STM32串口中断接收和中断发送

    STM32串口USART1中断接收和中断发送 先贴出中断函数 void USART1 IRQHandler void if USART GetITStatus USART1 USART IT RXNE 61 RESET USART Clea
  • ICP(Iterative Closest Point迭代最近点)算法学习笔记

    背景 xff1a 博主从百度百科开始学习icp算法 xff0c 主要是后期加得学习笔记 xff08 红色部分 xff09 ICP算法 xff1a 以点集对点集 xff08 PSTPS xff09 配准方法为基础 xff0c 他们阐述了一种曲
  • linux设备上的Onvif 实现21:解决大华摄像头无法使用问题

    好长时间没有再写该系列文章了 xff0c 最近刚好摸索着解决了大华摄像头无法使用问题 xff0c 记录下来 xff0c 应该对其他博友有所帮助 之前虽然写了一大堆文章说明了如何使用gsoap连接摄像头 xff0c 但这是针对一台海康的摄像头
  • NRF24L01工作原理(发送接收通道地址)解读 图示

    NRF24L01工作原理 xff08 发送接收通道地址 xff09 解读 图示 NRF24l01工作原理 xff08 发送接收通道地址 xff09 网上说明不清晰 xff0c 特制作本说明 xff0c xff08 制作 xff1a 流浪的蛙
  • Realsense D435i 使用

    工作之后才发现问题不是单线程地来找你 xff0c 而是多线程并发地涌向你 D435i是一款良心传感器 xff0c 美中不足的是你拿不到广角图像 虽然现在不负责传感器测试了 xff08 老大布置什么 xff0c 打工的就去做什么就好了 xff
  • Kalibr标定d435i

    figure it out 最近准备使用realsense d435i xff0c 先对其进行标定 整体环境是基于ROS的 xff0c 因为Kalibr是在ROS环境下 大致过程如下 xff1a imu标定 gt 双目标定 gt 双目 43
  • cout函数未定义问题和函数隐形类型转换

    cout函数未定义的一些问题 xff1a 看上面的图片 xff0c 有个朋友说 xff0c 按照上面using和修改了iostream为什么还是显示未定呢 xff1f 到底怎么办呢 xff1f 解决 xff1a include lt ios
  • C++ primer plus

    https github com lilinxiong cppPrimerPlus six https github com lilinxiong cppPrimerPlus six 最近在看C 43 43 primer plus这本书 x
  • ROS编译过程中的错误

    一 catkin make编译错误 xff08 1 xff09 Could not find a package configuration file provided by 34 gazebo ros control 34 with an
  • 算法导论学习笔记-2

    第二章 xff1a 函数的增长 2 1渐近记号 记号 定义 xff1a g n 61 f n 存在正常数c1 c2和n0 xff0c 使对所有n n0 xff0c 有0 c1 g n f n c2 g n xff1b 满足该定义 xff0c
  • C++理论复习之运算符重载

    C 43 43 运算符重载 重载操作符的一般格式 xff1a Type operator 43 Type A Type B 可重载与不可重载的操作符列表 操作符重载的注意事项 重载操作符必须有一个类类型的操作数 xff0c 不能重载内置类型
  • 计算机网络概述

    OSI参考模型 国际标准化组织 I S O 开发了开放式系统互联 O S I 参考模型 xff0c 以促进计算机系统的开放互联 开放式互联就是可在多个厂家的环境中支持互联 很少有产品是完全的O S I 模式 xff1b 相反 xff0c 其
  • PCL:如何自定义一个点云PointT类型

    1 xff0c 使用基础点云类型 include 34 pcl point types h 34 include 34 pcl impl instantiate hpp 34 include 34 foo h 34 include 34 i
  • IP地址

    ip地址的分类 A类地址 设计IPv4 A类地址的目的是支持巨型网络 xff0c 因为对规模巨大网络的需求很小 xff0c 因此开发了这种结构使主机地址数很大 xff0c 而严格限制可被定义为A类网络的数量 一个A类I P地址仅使用第一个8
  • 数据存储大端小端模式的理解

    Big Endian和Little Endian的定义如下 xff1a 1 Little Endian就是低位字节排放在内存的低地址端 xff0c 高位字节排放在内存的高地址端 2 Big Endian 就是高位字节排放在内存的低地址端 x
  • cocos2dx实例开发之经典坦克

    小时候红白机上玩的的经典90坦克 xff0c 看起来简单 xff0c 做起来其实有点复杂 xff0c 这里用原版素材还原了一个简版 预览 工程结构 游戏架构 包括场景 xff1a 欢迎界面 xff0c 主菜单游戏场景 步骤 菜单场景 对于图

随机推荐

  • 数值分析C++:统计(均值/方差/偏度/峰度),积分,微分,蒙特卡罗

    用C 43 43 实现几个简单的数值分析计算 xff0c 以便深入理解计算机在求解代数问题的过程 原理 以下主要针对普通实数 xff0c 以及一元代数 统计 算数平均值 几何平均值 方差 偏度 峰度 积分 求解定积分的一般数学描述式 但是由
  • python脚本编程:监控指定进程的cpu和内存使用率

    为了测试某个服务的稳定性 xff0c 通常需要在服务长时间运行的情况下 xff0c 监控其资源消耗情况 xff0c 比如cpu和内存使用 这里借助python的psutil这个包可以很方便的监控指定进程号 xff08 PID xff09 的
  • python脚本编程:实时监控日志文件

    用python可以很小巧轻便的实时监控日志文件增量刷新 xff0c 根据某些关键字进行匹配 xff0c 方便做运维异常告警 代码 span class token keyword import span time span class to
  • C++获取机器启动至今的时长和机器启动的时间戳

    根据当前时间戳与机器启动至今的时间长度相减 xff0c 可以精确计算出机器启动时刻的时间戳epochtime 代码 span class token macro property span class token directive key
  • pytorch基于RNN实现文本情感分析并用C++加载模型预测

    文本情感分析是机器学习自然语言处理NLP中常见的应用场景 xff0c 给定一段文本 xff0c 识别其中的情绪或态度 xff0c 对其进行分类并标签化 这个手段可以应用于书籍电影评价 用户对产品满意度调查 人机对话感情色彩提取和金融研报分析
  • pytorch使用matplotlib和tensorboard实现模型和训练的可视化

    pytorch构建和训练深度学习模型的过程中 xff0c 往往需要能够直观的观测到可视化的过程 xff0c 比如画出训练曲线等 对于简单的曲线绘制可以使用matplotlib库做出基本的图 xff0c 如果需要更加高级的可视化过程 xff0
  • Eigen库:常见错误(最坑的库,没有之一)

    1 3rdparty eigen eigen3 eigen src core assignevaluator h 833 error C2338 YOU MIXED MATRICES OF DIFFERENT SIZES Eigen Mat
  • win10 资源管理器打开FTP站点跳到IE

    原文链接 xff1a https zhidao baidu com question 549827901 html 我也遇到一样的问题 xff0c 参考很多网页 xff0c 最好终于解决了 xff0c 我不能保证一定解决你的问题 xff0c
  • C++11写的一个简洁的单例类型模版包装器

    单例是经常用到的设计模式实践 xff0c 对于全局使用的唯一资源事例一般都把类型封装成单例 xff0c 但是有时候觉得对于每个class都要改造一遍单例会觉得比较繁琐 xff0c 尤其是在预先不知道哪些类型会使用为单例的时候 为了应对这种情
  • C++获取对应进程的cpu和内存使用情况(支持linux和windows)

    运维监控程序中经常需要根据一个进程号pid去监控实时的cpu和内存占用 xff0c 以下整理了一个C 43 43 实现的简单例子 xff0c 并封装为方便跨平台调用的函数 代码 span class token macro property
  • 基于C++ spdlog日志库的完善封装

    spdlog是一个C 43 43 编写的极速日志打印库 xff0c 支持异步写日志以及多种模式和格式化选项 以下基于spdlog库封装了一个简单易用的功能类 xff0c 采用的是header only方式 xff0c 便于项目集成 代码 p
  • C++11写的线程安全STL库

    用C 43 43 写的程序 xff0c 如果用到了自带的标准模板库STL xff0c 在多线程访问的时候如果不加锁很容易造成segment fault导致程序崩溃coredump xff0c 也就是说C 43 43 标准的STL不是线程安全
  • 使用cmake构建C++ imgui上手项目(支持Windows,Mac,Linux)

    优秀的即时渲染C 43 43 GUI开发框架imgui xff08 https github com ocornut imgui xff09 在很多场合能发挥非常棒的作用 但是由于官方源码仓库一直没有提供基于cmake构建和创建新项目的工具
  • 使用cmake构建C++ workflow上手项目(支持Windows,Linux)

    开源的C 43 43 后端开发框架workflow xff08 https github com sogou workflow xff09 已经在成熟的互联网公司得到非常稳定广泛的应用 xff0c 它结合了网络 异步 计算多个后端常用场景
  • 使用cmake构建C++ live555流媒体服务上手项目(支持Windows,Linux)

    开源的流媒体视频和音频RTSP开发框架live555 xff08 http www live555 com xff09 对于学习和构建音视频流媒体或者直播服务是很方便的 官方的源码包对各平台编译单独列出了对应的makefile xff0c
  • C++20新特性

    目录 新增关键字 keywords conceptrequiresconstinitconstevalco awaitco returnco yieldchar8 t 新增标识符 Identifies importmodule 模块 Mod
  • pytorch导出模型并使用onnxruntime C++部署加载模型推理

    机器学习的框架众多 xff0c 为了方便复用和统一后端模型部署推理 xff0c 业界主流都在采用onnx格式的模型 xff0c 支持pytorch xff0c tensorflow xff0c mxnet多种AI框架 为了提高部署推理的性能
  • cocos2dx实例开发之飞机大战

    曾经 xff0c 微信里面可以玩一个打飞机的小游戏 xff0c 很有趣 xff0c 后来又没有了 xff0c 这里基于原版素材写了一个高仿微信打飞机的小游戏 预览 工程结构 环境 Mac os Mojavexcode 7 0cocos2dx
  • 调试leetcode代码:使用playground来调试

    leetcode在线编辑界面 在使用LeetCode时 xff0c 想要在本地上调试代码 xff0c 提供main函数的方法 xff1a 在线代码编辑功能 1 在红圈处选择你想要使用的语言 2 在黄圈处编写代码 3 在蓝圈处可选编辑测试案例
  • 蓝牙5/4.2/4.1/4.0数据吞吐率

    先给出结论 xff1a 蓝牙4 0 4 1的吞吐率 为0 305Mbps xff1b 蓝牙4 2的吞吐率 为0 803Mbps xff1b 蓝牙5的吞吐率 为1 434Mbps xff08 前提 xff1a 使用2Mbps调制速率 xff1