蓝牙 - BLE中的连接和扫描参数设定

news2024/9/20 5:54:27

连接参数 / Connection Parameters

连接参数由发起设备与连接请求一起发送,当连接建立后,任何一个设备都可以修改。这些参数如下:

连接间隔 / Connection Interval

在低功耗蓝牙连接中,使用了跳频方案。两台设备发送各自数据和接收对方数据,只在特定时间的特定信道上。两个设备在一段特定的时间后在一个新的信道上通信(蓝牙低功耗协议栈的链接层处理信道切换)。每次两个设备建立通讯,发送和接收数据,被称为连接事件。如果没有应用数据要发送或接收,两个设备交换链接层数据以维持连接。连接间隔是两个连接事件之间的时间量,以1.25ms为一个单位。连接间隔的范围可以从最小值6(7.5ms)到最大值3200(4.0s)。

不同的应用可能需要不同的连接时间间隔,并会影响设备的功耗。

从机延迟 / Slave Latency

该参数使从机(外围)设备可以选择跳过一些连接事件。这种能力给外围设备一些灵活性。如果外围设备没有任何数据要发送,它可以跳过连接事件,保持睡眠状态,并节省电力。外围设备在每个连接事件的基础上选择是否唤醒。外设可以跳过连接事件,但跳过的时间不能超过从机延迟参数所允许的时间,否则连接会失败。

从机延迟值指的是跳过的连接事件的个数,范围一般从0到500。

监督超时  / Supervision Time-out

这个超时是两个成功的连接事件之间的最大时间量。如果这个时间过去了,没有发生成功的连接事件,设备就会终止连接并返回到未连接状态。这个参数值以10毫秒为单位表示。监督超时值的范围可以从最小的10(100ms)到3200(32.0s)。超时必须大于有效连接间隔。

有效连接间隔 / Effective Connection Interva

有效连接间隔等于两个连接事件之间的时间,取决于从机设备在从机延迟允许的情况下跳过的连接事件数量(如果从机延迟设置为0,则有效连接间隔等于实际连接间隔)。

从机延迟值表示可以跳过的最大事件数。这个数字的范围可以从最小值0(意味着不能跳过任何连接事件)到最大值499。最大有效连接间隔的值不能大于16秒,间隔可以用以下公式计算:

有效连接间隔=(连接间隔)*(1+从机延时)

Effective Connection Interval = (Connection Interval) * (1 + [Slave Latency])

考虑下面例子:

- 连接间隔:80 (100 ms)

- 从机延迟:4

- 有效连接间隔:(100ms)*(1+4)=500ms

当从属设备没有需要向主设备发送的数据时,连接中的从属设备在连接事件中发送数据的间隔是500毫秒。

连接参数设置的影响 / Connection Parameter Considerations

在大多数应用场景中,从属设备跳过最大数量的连接事件。在选择或申请连接参数时就要考虑有效的连接间隔。选择正确的配套连接参数,在蓝牙低功耗设备使用中,对功率优化起着重要作用。下面的列表概述了连接参数设置的影响:

缩短连接间隔的影响如下:

- 增加两个设备的耗电量

- 增加两个方向的吞吐量

- 减少任何一个方向上的数据发送时间

延长连接间隔的影响如下:

- 减少两个设备的耗电量

- 减少两个方向的吞吐量

- 增加任何一个方向上的数据发送时间

减少从机延迟(或将其设置为零)的作用如下:

- 增加外围设备的功率消耗

- 减少外围设备接收来自中央设备的数据的时间。

增加从属延迟的作用如下:

- 在外设没有数据要发送给中央设备的期间,减少外设的耗电量

- 增加外围设备接收从中央设备发送的数据的时间

连接参数更新/ Connection Parameter Update

在某些情况下,中央设备请求与外围设备的连接,但其发出的连接参数对外围设备并不友好。而在其他一些情况下,在已经连接的情况下,外围设备可能会根据其应用情况而请求改变参数。外围设备可以通过发送连接参数更新请求来要求中央设备改变连接设置。对于支持蓝牙4.1和4.2的设备,该请求直接由链接层处理。对于蓝牙4.0设备,协议栈的L2CAP层处理该请求。蓝牙低功耗协议栈会自动选择更新方法。

该请求包含四个参数:最小连接间隔、最大连接间隔、从机延迟和超时。这些值代表外围设备需要的连接参数(连接间隔是以范围的形式给出)。当中心设备收到这个请求时,它可以选择接受或拒绝新的参数。

发送连接参数更新请求是可选的,不要求中央设备接受或应用所请求的参数。一些应用试图以较快的连接间隔建立连接,以允许更快的服务发现和初始设置。这些应用在这之后,会要求一个较长(较慢)的连接间隔,以维持最佳的工作功耗。

根据GAPRole,连接参数更新可以用GAPRole_SendUpdateParam()或GAPCentralRole_UpdateLink()命令异步发送。外围的GAPRole可以被配置为在建立连接后的一定时间内自动发送参数更新。例如,simple_peripheral应用程序使用以下预处理器定义的符号:

连接建立后6秒,GAP层会自动发送一个连接参数更新。

终止连接 / Connection Termination

主机(master)或从机(slave)都可以因任何原因终止连接。一方发起终止,另一方必须在两个设备退出连接状态之前作出回应。

注:如果一个central设备连接到多个peripheral设备,这种多连接的情况下,对于连接参数设定,会有额外的要求。

参考:

https://software-dl.ti.com/lprf/simplelink_cc2640r2_latest/docs/blestack/ble_user_guide/html/ble-stack-3.x/gap.html#:~:text=The%20connection%20interval%20is%20the,of%203200%20(4.0%20s).

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

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

相关文章

day48【代码随想录】动态规划之最长递增子序列、最长连续递增序列、最长重复子数组

文章目录前言一、最长递增子序列(力扣300)二、最长连续递增序列(力扣674)三、最长重复子数组(力扣718)前言 1、最长递增子序列 2、最长连续递增序列 3、最长重复子数组 一、最长递增子序列(力扣…

rocketmq延时消息自定义配置;topic下tag使用

概述 使用的是开源版本的rocketmq4.9.4 rocketmq也是支持延时消息的。 rocketmq一般是4个部分: nameserver:保存路由信息broker:保存消息生产者:生产消息消费者:消费消息 延时消息的处理是在其中的broker中。 但是…

我为什么放弃WinUI3

基于WinUI3开发HiNote已经有一个多月的时间了,算是做出来一个简单能用的C端软件。 基于个人的经历,说说其中的开发体验。 UI设计语言 无论是否抄袭苹果,WinUI3给人的感觉都是眼前一亮的。简洁美观,现代化,毛玻璃的美…

rk3568网口CAN串口通信速率性能

通信接口性能参数外设接口性能参数测试结果为实验室实测值,可作为设计参考,但因测试环境和器件批次差异,可能会存在一定的误差,且测试结果依赖评估板性能,核心板搭配不同底板性能也可能存在差异,请结合实际…

Redis之分布式锁

随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的 Java API并不能提供分布式锁的能力。为了解决这个问题…

Java:顶级Java应用程序服务器 — Tomcat、Jetty、GlassFish、WildFly

如果你想编写Java web应用程序,首先需要做出一个艰难的决定:选择运行应用程序的Java应用程序服务器。什么是应用服务器?一般来说,应用程序服务器执行Java应用程序。在操作系统中启动它们,然后将应用程序部署到其中。将应用程序服…

盘点2023年大企业都在用的优秀项目管理软件

行内有句话:每个成功的项目背后肯定有一个成功的项目经理,而每个项目经理背后都少不了一些专业的项目管理工具。要在任何项目中取得成功,对项目进行全面的管理非常关键,包括项目的执行、计划、推进、监控、结果等,有了…

谈谈我对ai发展的看法

最近难得有时间,通过白话,聊聊我对AI的看法,仅代表个人观点首先表明我的观点:人类当前的人工智能成果,仍然停留在一知半解程度。技术的发展是需要长期的积累和进步,目前AI的发展仍处于入门阶段人类的发展必…

ar远程协助可视化云平台提高患者的医疗体验

“专家的指导意见很科学,患者恢复很快,情况稳定就可以转入普通病房了!这种云急救对基层医院来说太及时太必要了!大专家不用奔波,我们又提高了救治能力和效率!”这是来自某市基层主任的心里话。 传统远程协助的局限性 传统远程带来了便捷的线上…

【Java基础】输入与输出

输入与输出 输入 获取用键盘输入常用的两种方法 方法 1:通过 Scanner Scanner input new Scanner(System.in); String s input.nextLine(); input.close();方法 2:通过 BufferedReader BufferedReader input new BufferedReader(new InputStrea…

实验室设计|实验室设计要点SICOLAB

一、实验室设计规划要素1、实验室布局:实验室的布局要符合实验室工作流程,可以将实验室划分为干净区和污染区,以确保实验室的卫生和实验的准确性。2、设备选购:根据实验需要选择适当的设备,并确保设备的质量和性能符合…

LA@ML特征分解@奇异值分解@伪逆

文章目录特征分解几何示意图二次型和生成子空间奇异值分解理论数学风格的描述奇异值分解和特征分解的联系😊🎈机器学习风格的描述对角矩阵的记法酉矩阵unitary matrix性质Moore-Penrose 伪逆矩阵的逆和线性方程组的解(review)伪逆应用迹运算方阵行列式和…

代谢组+转录组分析为腰果树果实发育成熟过程中代谢网络提供见解

文章标题:Metabolomic and transcriptomic analyses provide insights into metabolic networks during cashew fruit development and ripening 发表期刊:Food Chemistry 影响因子:9.231 作者单位:海南大学 百趣生物提供服务…

推荐系统[八]算法实践总结V0:腾讯音乐全民K歌推荐系统架构及粗排设计

1.前言:召回排序流程策略算法简介 推荐可分为以下四个流程,分别是召回、粗排、精排以及重排: 召回是源头,在某种意义上决定着整个推荐的天花板;粗排是初筛,一般不会上复杂模型;精排是整个推荐环节的重中之重,在特征和模型上都会做的比较复杂;重排,一般是做打散或满足…

Docker--------Day1

1.简介 您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复? Docker之所以发展如此迅速,也是因为它对此给出了一个标准化的解决方案-----…

【牛客刷题专栏】0x0B:JZ3 数组中重复的数字(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录前言问题…

软件包被拦截、删除、无法运行,,,卸载掉自带杀毒软件Windows Defender、关闭防火墙,,,网上各种办法都试过了,不起作用。。。最后一招解决

文章目录1 问题描述2 解决办法3 下载文件被阻止或运行被阻止4 防火墙关闭方法(补充)5 卸载windows自带的杀毒软件Windows Defender(最简单方法)1 问题描述 我的win10没有安装任何杀毒软件,只有系统自带的Windows Defe…

不同投票需要的不同上传方式outlook 投票功能怎么设置投票 html5

“艺空间手造坊”网络评选投_投票方式的选择_免费图文教学投票教学关于微信投票,我们现在用的最多的就是小程序投票,今天的网络投票,在这里会教大家如何用“活动星投票”小程序来进行投票。我们现在要以“艺空间手造坊”为主题进行一次投票活…

光谱仪工作过程及重要参数定义

标题光谱仪工作过程CCD、PDA薄型背照式BT-CCD狭缝Slit暗电流Dark Current分辨率Resolution色散Dispersion光栅和闪耀波长Grating波长精度、重复性和准确度Precision带宽Band widthF数F/#光谱仪工作过程 CCD、PDA 电荷耦合器件(Charger Coupled Device,缩…

Java线程的6 种状态

Java 线程的状态 Java线程有六种状态: 初始(NEW)、运行(RUNNABLE)、阻塞(BLOCKED)、 等待(WAITING)、超时等待(TIMED_WAITING)、终止&#xff08…