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

 
 
 

【Connection Events】【BLE】【原创】的更多相关文章

  1. 低功耗蓝牙BLE之连接事件、连接参数和更新方法

    转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件 ...

  2. 蓝牙BLE实用教程

    蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...

  3. TI CC254x BLE教程 1

    约定, 第一次翻译这种东西, 专有名词的翻译原则还是不太清楚, 总之涉及有可能误解的词, 都用双语, 如果是简单的, 直接英文或者中文, 取决于我是否能找到中文合适的词来翻译. 何为BLE: 1. 是 ...

  4. 详解BLE连接建立过程

    同一款手机,为什么跟某些设备可以连接成功,而跟另外一些设备又连接不成功?同一个设备,为什么跟某些手机可以建立连接,而跟另外一些手机又无法建立连接?同一个手机,同一个设备,为什么他们两者有时候连起来很快 ...

  5. 蓝牙BLE实用教程(转载)

    欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Ready 和 Smart 以及传统蓝牙之间是什么关 ...

  6. Mongoose Connection best practice

    There is often quite a lot of confusion about how best to set up a database connection with Mongoose ...

  7. docker Failed to get D-Bus connection 报错 docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash

    docker Failed to get D-Bus connection 报错 原创憬薇2016-01-15 11:25:26评论(10)40278人阅读   在centos7的容器里面出现了一个B ...

  8. Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology

    转自:http://www.mdpi.com/1424-8220/12/9/11734/htm Sensors 2012, 12(9), 11734-11753; doi:10.3390/s12091 ...

  9. JDBC-Oracle

    例子: publicclassTestJdbc { public static void main(String[] args)throwsException { //程序入口,并抛出异常 Class ...

随机推荐

  1. 【Luogu3803】多项式乘法FFT(FFT)

    题目戳我 一道模板题 自己尝试证明了大部分... 剩下的还是没太证出来... 所以就是一个模板放在这里 以后再来补东西吧.... #include<iostream> #include&l ...

  2. Change upload file limit in specified Webapllication in SharePoint (PowerShell)

    http://gallery.technet.microsoft.com/office/Change-upload-file-limit-89502ff2  http://sharepointrela ...

  3. NOIP2018普及组模拟赛

    向老师给的模拟赛,还没普及组难... 题目在洛谷团队里. 第一试三道水题,我46分钟就打完了,然后就AK了. 第二试一看,除了第二题要思考一段时间之外,还是比较水的,但是我得了Rank倒1,115分. ...

  4. 关于使用IsapiRewrite重写,重定向的语句

    早上起床,发现之前的IsapiRewrite写法有改进的地方, 有几个废弃的网址可以使用IsapiRewrite的重定向,转到新的网址上来. 搞了有十分钟的时间,测试老是不重定向. 因为之前已经有一个 ...

  5. 外显子分析弹错解决方案:Exception in thread "main" picard.PicardException: New reference sequence does not contain a matching contig for NC_007605

    最近从公共数据库下载了一堆bam文件和reference 基因组文件,重新分析外显子流程时,跑出了“Exception in thread "main" picard.Picard ...

  6. Vue初学者可能不知道的坑

    1.setTimeout/ setInterval 场景一 :this指向改变无法用this访问vue实例 mounted(){ setTimeout( function () { //setInte ...

  7. 批处理 ------ @、ECHO OFF、ECHO ON 的使用

    1.在批处理文件中,如果命令前加@,表示这条命令不打印出来,只把结果打印出来,即@是关闭命令本身的回显 2.::在批处理中表示注释某一行 3.ECHO ON表示接下来的命令中(不包括本命令),执行命令 ...

  8. 函数和常用模块【day06】:xml模块(六)

    本节内容 1.简述 2.xml格式 3.xml节点操作 4.创建新的xml文件 一.简述 xml是实现不同语言或者程序之间进行数据交换的协议,跟json差不多,但是json使用起来更简单,不过,古时候 ...

  9. 面向对象【day08】:问答式面相对象(四)

    本节内容 1.什么是面向对象编程 2.什么是市类?什么是对象?又有什么关系? 3.什么时候适用面向对象? 4.self就是调用当前方法的对象 5.封装.继承.多态 6.字段方法 1.什么是面向对象编程 ...

  10. 机器学习:python使用BP神经网络示例

    1.简介(只是简单介绍下理论内容帮助理解下面的代码,如果自己写代码实现此理论不够) 1) BP神经网络是一种多层网络算法,其核心是反向传播误差,即: 使用梯度下降法(或其他算法),通过反向传播来不断调 ...