关于BLE的一些知识总结

news2024/11/25 19:27:25
  1. 数据包长度

对于BLE4.0/4.1来说,一个数据包的有效载荷最大为20字节

对于BLE4.2以上,数据包的有效载荷扩大为251字节

  1. 传输速率

在不考虑跳频间隔的情况下,最大传输速率为:

1)BLE4.0/4.1的理论吞吐率为39kb/s;

2)BLE4.2的理论吞吐率为100kb/s;

3)BLE5.0的理论吞吐率为180kb/s(前提:使用2Mbps调制速率;如果使用1Mbps调制速率,那么吞吐率就和蓝牙4.2一样);

具体计算方式看:https://www.ngui.cc/article/show-498835.html?action=onClick

考虑跳频间隔的时候就要看间隔时间多少了,跳频间隔的基数为1.25ms,如果是跟安卓手机通信的话,那么安卓规定间隔至少为8个基数,即10ms,按照BLE4.0/4.1协议的话,一个数据包最多传输20字节数据,那么最大传输速率就是2KB/S;那么按照BLE4.2的话理论应该是能到25KB/S,但是按照1Mbps的调制速率来算的话,传输251Byte的数据的传输时间已经超过1250us了,达到2120us,所以这种情况下能够达到多少的速率还不知道怎么算,有知道的老铁还望告知。

  1. 关于GATT、service、Characteristic、Descriptor

下图表明得很清楚:(参考:https://www.jianshu.com/p/f6b2ab2b6c64)

  • 每个BLE设备由多个Profile(GATT)组成

  • 每个Profile由多个的Service服务组成

  • 每个Service由多个Characteristic特征组成

  • 每个Characteristic由一个Value值和多个Descriptor描述组成

  1. 提高传输速率

目前已知两种方式:

  1. 缩短跳频间隔,蓝牙BLE协议规定连接参数最小是5,即7.25毫秒;而Android手机规定连接参数最小是8,即10毫秒。iOS规定是16,即20毫秒。

  1. 采用writeWithoutResponse方式,如下图

  1. 关于UUID

  1. Service、Characteristic和Descriptor均有一个唯一的UUID标识,UUID既有16位的也有128位的。16位的UUID是经过蓝牙组织认证的,是需要购买的,而128位的UUID则可以自定义,当然也有许多通用的UUID。

  1. BLE协议是给了128位的位宽来表示万事万物,但是蓝牙技术联盟定义了一个基本的UUID:0000xxxx-0000-1000-8000-00805F9B34FB,16位的UUID就是用一个16位(bit)的数来代替其中的x处,如心率测量的UUID为:0x00002A37-0000-1000-8000-00805F9B34FB

主要参考链接:

  1. https://www.jianshu.com/p/f6b2ab2b6c64

  1. https://www.ngui.cc/article/show-498835.html?action=onClick

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/401288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

523-(ZCU102E的pin兼容替代卡) 基于 XCZU15EG的双 FMC通用信号处理板

(ZCU102E的pin兼容替代卡) 基于 XCZU15EG的双 FMC通用信号处理板 一、板卡概述 本板卡基于Xilinx Zynq Ultrascale MPSOC系列SOC XCZU15EG-FFVB1156架构,PS端搭载一组64-bit DDR4,容量32Gb,最高可稳定运行在240…

solidworks调用toolbox出现未配置怎么办

问题背景 本人最近在跟随B站恶补solidworks,学习链接如下 https://www.bilibili.com/video/BV1iw411Z7HZ/?spm_id_from333.337.search-card.all.click 但是在学习的过程中遇到了这样的问题 智能点现在配置,正常的应该是这样的 扒拉了网上所有的解决办…

04从零开始学Java之可能是最详细的Java环境配置教程

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在上一篇文章中,壹哥给大家重点讲解了Java实现跨平台的原理,不知道你现在有没有弄清楚呢?如…

window vscode编辑appsmith源码

前言 本来最开始用的idea打开wsl中的appsmith,卡得一批。最后没办法,用自己的电脑装成ubuntu server,然后vscode的远程开发对appsmith源码进行编辑。如果自己电脑内存16个G或者更大可能打开wsl中的估计会还好,我公司电脑只有8g所…

Virtualbox Vagrant 迁移与恢复

前 言 window10电脑重新安装C盘。重装前正常使用的VirtualBox虚拟机,启动失败,先是启动报各种找不到{uuid.vmdk}文件的错误,使用原来的虚拟机配置文件虽然能正常启动,但是关闭虚拟机后,xxx.vbox配置文件的快照顺序又被…

MySQL主从复制,读写分离

目录 一、MySQL主从复制介绍 MySQL复制过程分成三步 二、主库配置master 1、步骤1 2、第二步:重启Mysql服务 3、第三步:登录Mysql数据库,执行下面SQL 4、第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和…

vue2 使用 cesium 【第二篇-相机视角移动+添加模型】

vue2 使用 cesium 【第二篇-相机视角移动添加模型】 搞了一阵子 cesium,小白入门,这东西很牛逼,但是感觉这东西好费劲啊!网上资料不多,每个人的用法又不一样,操作起来真的是绝绝子。之前写了一篇 vue2 使用…

【C#进阶】C# 反射

序号系列文章11【C#基础】C# 预处理器指令12【C#基础】C# 文件与IO13【C#进阶】C# 特性文章目录前言1,反射的概念2,使用反射访问特性3,反射的用途4,反射的优缺点比较4.1 优点:4.2 缺点:5,System…

吲哚菁绿-巯基,ICG-SH,科研级别试剂,吲哚菁绿可用于测定心输出量、肝脏功能、肝血流量,和对于眼科血管造影术。

ICG-THIOL,吲哚菁绿-巯基 中文名称:吲哚菁绿-巯基 英文名称:ICG-THIOL 英文别名:ICG-SH 性状:绿色粉末 溶剂:溶于二氯甲烷等其他常规有机溶剂 稳定性:冷藏保存,避免反复冻融。 存储条件&…

搭建SpringBoot多模块微服务项目脚手架(二)

搭建SpringBoot多模块微服务项目脚手架(二) 文章目录搭建SpringBoot多模块微服务项目脚手架(二)1.概述2.封装 MybatisPlus2.1.封装MybatisPlus1.安装依赖2.安装lombok插件3.配置数据库链接信息2.2.创建公共子模块1.创建公共模块common2.创建common_utils模块3.创建service_base…

【C++知识点】文件操作

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:C/C知识点 📣专栏定位:整理一下 C 相关的知识点,供大家学习参考~ ❤️如果有收获的话,欢迎点赞👍…

【六祎 - 前端】npm是什么?npm是网站、注册表、命令行工具组成;windows安装nvm;使用nvm安装npm;

nvm管理并安装npmnpm中文文档npm是什么?npm 由三个独立的部分组成:快速入门命令行npm用法npm配置查找包(package)windows安装nvm使用nvm安装npmps:切换版本下载npm之后的一些配置(Optional)npm中文文档 →_→点我查看…

Java的stream流

Java 8中引入的新特性,stream流通过与Lambda表达式结合,采用函数式编程,简化数组、集合操作,提高效率。 我们操作一个集合,就把他看作一个流,整个流依次执行,(可以类比为一个管道&a…

企业官网怎么做?

企业官网是企业展示形象和吸引潜在客户的重要渠道之一,因此如何打造一款优秀的企业官网显得尤为重要。本文将从策划、设计、开发和上线等方面,为您介绍企业官网的制作步骤。 一、策划 1.明确目标 企业官网的制作需要明确目标,即确定官网的主…

4. SSM 整合

文章目录1. 引言2. 创建工程3. SSM 整合2. 统一结果封装3. 统一异常处理3.1 异常处理器3.2 项目异常处理方案3.2.1 异常分类3.2.2 异常解决方案3.2.3 异常解决方案的具体实现4. 前后台协议联调4.1 列表功能4.2 添加功能4.3 修改功能4.4 删除功能5. 拦截器5.1 拦截器概念1. 引言…

mysql数据库之innodb存储引擎架构之内存架构

一、逻辑存储结构 mysql5.5版本开始,默认使用innodb存储引擎,它擅长事务处理,具有崩溃恢复特性,在日常开发中使用非常广泛。 架构图(左侧为内存架构,右侧为磁盘架构) 二、 内存架构。 1、缓冲…

SpringBoot使用Redis实现缓存

目录 实现步骤 1. 在 pom.xml 配置文件中添加如下依赖 2. 在 application.properties 中添加如下配置 3. 新建 RedisConfig.class,继承 CachingConfigurerSupport,添加如下方法 4. 新建 RedisService.class 添加如下方法 注意:cacheKey…

看完书上的栈不过瘾,为什么不动手试试呢?

一.栈的基本概念1.栈的定义栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。其中注意几点:栈顶(Top):线性表…

2023年新三板产品及服务研究报告

第一章 概述 全国中小企业股份转让系统(英语:National Equities Exchange and Quotations,缩写NEEQ),简称股转系统,是第三家全国性证券交易场所,因挂牌企业均为高科技企业而不同于原转让系统内…

软件测试12

一 Linux命令的共通知识点 1.通配符的使用 通配符:又叫文件名替换符号,符号具备特殊含义,例如:文件名:test,通配符可以写成???或者* *:代表可以匹配任意长度的文件名(all所有&am…