[玩转BLE]发送窗口、连接间隔、从机延迟

2024-01-09 02:32

本文主要是介绍[玩转BLE]发送窗口、连接间隔、从机延迟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

连接参数与BLE性能分析
  • 1. 连接事件——连接间隔短
  • 主从设备功耗大
  • 数据发送延迟短
  • 数据吞吐量较高
  • 2. 连接事件——连接间隔长
  • 主从设备功耗低
  • 手机发送延迟长
  • 数据吞吐量较低
  • 3.从设备潜伏值小
  • 从设备功耗高
  • 从设备及时或更快速的收到主设备发送的数据
  • 4.从设备潜伏值大
  • 从设备在潜伏期期间功耗低
  • 从设备无法及时或快速接收主设备发送的数据
  • 从机潜伏对主设备接收从设备的数据延迟无影响
发送窗口
  • 在BLE中从设备自定义广播时间和广播间隔。在某些产品中为了达到更低的功耗,从设备的广播间隔会拉长。但是在从设备潜伏期期间主设备不可能一直在等待从设备,在从设备潜伏期期间主设备去完成其他任务。所以在连接建立期间,用两个参数来传递上述的信息:窗口大小窗口间隔
  • 当连接请求数据包发送完毕,存在一个1.25ms的强制时延,紧接着就是发送窗口偏移和发送窗口。发送窗口偏移可以是0到连接间隔之间的任意值,但是必须为1.25ms的整数倍。从发送窗口开始,从设备打开其接收器,并等待来自主设备的数据包。如果到发送窗口结束仍未收到数据包,从设备停止侦听,在下一个连接事件的连接间隔后在进行。
连接事件
  • 一个连接事件指的是主设备和从设备之间相互发送数据包的过程。

连接间隔

  • 连接间隔决定了主设备和从设备交互的间隔,指的是两个连续的连接事件之间的间隔,是以1.25ms为单位,连接间隔的范围从最小值6(7.5ms)到最大值3200(4.0s)。
    在这里插入图片描述

从机延迟

  • 此参数为从机(外设设备)提供跳过多个连接事件的能力。这种能力给外设设备更多的灵活性。如果外设没有要发送的数据,则可以跳过连接事件,保持睡眠并节省电量。 外设设备选择是否在每个连接事件时间点上唤醒。 虽然外设可以跳过连接事件,但不能超出从延迟参数允许的最大值
    在这里插入图片描述

监控超时

  • 是两次成功连接事件之间的最长时间。如果在此时间内没有成功的连接事件,设备将终止连接并返回到未连接状态。该参数值以 10 ms 为单位,监控超时值可以从最小值 10(100 ms)到 3200(32.0 s)。超时必须大于有效的连接间隔

有效连接间隔

  • 有效连接间隔等于两个连接事件之间的时间跨度,假设从机跳过最大数量的连接事件,且允许从机延迟,如果从机延迟设置为 0,则有效连接间隔等于实际连接间隔
  • 从机延迟表示可以跳过的最大事件数。该数字的范围可以从最小值 0(意味着不能跳过连接事件)到最大值 499。 最大值不能使有效连接间隔大于 16 秒。
//======平台 CC2640======
//====simple_peripheral=====
// 设置最小连接间隔(units of 1.25ms, 80=100ms)
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     10// 设置最大连接间隔(units of 1.25ms, 800=1000ms) 
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     20//设置从机延迟
#define DEFAULT_DESIRED_SLAVE_LATENCY         0//设置监控超时时间,这个时间里面,从机和主机没有发生交互关系,则认为两个是断开的。
#define DEFAULT_DESIRED_CONN_TIMEOUT          1000...uint16_t desiredMinInterval = DEFAULT_DESIRED_MIN_CONN_INTERVAL;uint16_t desiredMaxInterval = DEFAULT_DESIRED_MAX_CONN_INTERVAL;uint16_t desiredSlaveLatency = DEFAULT_DESIRED_SLAVE_LATENCY;uint16_t desiredConnTimeout = DEFAULT_DESIRED_CONN_TIMEOUT;...//最小的连接间隔GAPRole_SetParameter(GAPROLE_MIN_CONN_INTERVAL, sizeof(uint16_t), &desiredMinInterval);//最大的连接间隔GAPRole_SetParameter(GAPROLE_MAX_CONN_INTERVAL, sizeof(uint16_t), &desiredMaxInterval);//从机潜伏期GAPRole_SetParameter(GAPROLE_SLAVE_LATENCY, sizeof(uint16_t), &desiredSlaveLatency);//从机超时时间GAPRole_SetParameter(GAPROLE_TIMEOUT_MULTIPLIER, sizeof(uint16_t), &desiredConnTimeout);...

这篇关于[玩转BLE]发送窗口、连接间隔、从机延迟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/585655

相关文章

java连接opcua的常见问题及解决方法

《java连接opcua的常见问题及解决方法》本文将使用EclipseMilo作为示例库,演示如何在Java中使用匿名、用户名密码以及证书加密三种方式连接到OPCUA服务器,若需要使用其他SDK,原理... 目录一、前言二、准备工作三、匿名方式连接3.1 匿名方式简介3.2 示例代码四、用户名密码方式连接4

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我

Apache 高级配置实战之从连接保持到日志分析的完整指南

《Apache高级配置实战之从连接保持到日志分析的完整指南》本文带你从连接保持优化开始,一路走到访问控制和日志管理,最后用AWStats来分析网站数据,对Apache配置日志分析相关知识感兴趣的朋友... 目录Apache 高级配置实战:从连接保持到日志分析的完整指南前言 一、Apache 连接保持 - 性

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地

golang实现延迟队列(delay queue)的两种实现

《golang实现延迟队列(delayqueue)的两种实现》本文主要介绍了golang实现延迟队列(delayqueue)的两种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录1 延迟队列:邮件提醒、订单自动取消2 实现2.1 simplChina编程e简单版:go自带的time

宝塔安装的MySQL无法连接的情况及解决方案

《宝塔安装的MySQL无法连接的情况及解决方案》宝塔面板是一款流行的服务器管理工具,其中集成的MySQL数据库有时会出现连接问题,本文详细介绍两种最常见的MySQL连接错误:“1130-Hostisn... 目录一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的