【Connection Events】【BLE】【原创】
Connection Events
本人在TI官网的学习笔记,现整理如下
两台BLE设备建立连接后,所有的通信事件都是通过Connection Events中发生的

上图为两台BLE建立连接后,用示波器从其中一台设备中测量的波形
红色是时间轴 --- 横轴,
耗电量 --- 黑色纵轴
尖刺的波就是Connection Events
剩下的 Sleeping 是睡眠时间
设备在建立连接后的大多数时间都是处于Sleeping的状态的
这种情况下,耗电量只有1uA
而在Connection Events中,最高的是十几个毫安
这就是BLE为什么省电的原因
在每个Connection Events事件中,都需要由Master发起包,再由slave回复
Connection Parameters
通过修改这三个参数,就可以设置BLE连接的传输速度和功耗
1、Connection Interval
指在一个Connection Events的开始到下一个Connection Events 的开始 的时间间隔
单位是1.25ms,最小是7.5ms,最大是4.0s
2、Slave Latency
允许Slave设备在没有数据要发的情况下,跳过一定数目的Connection Events
在这些Connection Events中不必回复master的包,这样就能更加省电
范围可以是0~499
3、Supervision Timeout
这个参数设定了一个超时时间,如果BLE在这个时间内没有发生通讯的话,就会自动断开
单位是10ms,范围是100ms ~ 32s
必须满足如下公式:
Supervision Timeout > (1 + slaveLatency)* (connectionInterval)
slaveLatency不能算在 supervision Timeout的时间内,否则连接就会不正常断开

上图slaveLatency 为0 时,master发包,slave必须回复, 如果不回复,master就会认为slave那边接收不正常
slaveLatency 为 3 时, master 发包,slave允许有3个包不回复
参数的影响:
Connection Interval 缩短,master与slave通信更加频繁,提高了功耗,提高数据吞吐速度,缩短数据发送时间
Connection Interval 加长,通信频率降低,降低功耗,数据吞吐速度降低,数据发送等待时间更长
slaveLatency 减少或者设置为0,每次connection Envents中就都需要回应master的包
功耗上升,数据发送速度会提高
slaveLatency 加长,功耗下降,数据发送速度降低
这些参数都是可以在连接建立以后动态修改的
欢迎交流
如有转载请注明出处
新浪博客:http://blog.sina.com.cn/u/2049150530
博客园:http://www.cnblogs.com/sky-heaven/
知乎:http://www.zhihu.com/people/zhang-bing-hua
【作者】sky
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?