码迷,mamicode.com
首页 > 其他好文 > 详细

BLE---参数

时间:2018-07-29 14:13:06      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:这一   sla   使用   介绍   交换   1.2   nbsp   div   建议   

参考文章:https://blog.csdn.net/zzfenglin/article/details/51304084

 

连接事件

技术分享图片技术分享图片 技术分享图片

 

  1. 主设备会在每个连接事件里向从设备发送数据包
  2. 一个连接事件是指主设备和从设备之间相互发送数据包的过程
  3. 连接事件的进行始终位于一个频率,每个数据包会在上个数据包发完之后等待 150μs 再发送
  4. 连接间隔决定了主设备与从设备的交互间隔;它是指两个连续的连接事件开始处的时间距离,可以是7.5ms ~ 4s内的任意值,但必须为 1.25ms 的整数倍。要确定从设备与主设备的实际交互间隔,需要用到从设备延迟这一参数,代表从设备在必须侦听之前可以忽略多少个连接事件。

举个例子,如果连接间隔为 100ms,从设备延迟是 9,那么从设备可以忽略 9 个链接事件,但不得不侦听第 10 个连接事件。换言之,从设备必须每秒侦听一次,而此时监控超时的最小值应为 1010ms。反过来,另一个极端的例子是,如果监控超时使用了 32s 的最大值,对于间隔为 100ms 的链路,从设备延时必须小于等于 319。

 

虽然如此,如果将从设备延迟设为可行的最大值,在监控超时发生前从设备只能获得唯一一次侦听主设备的机会,这可不是一个好主意。因此,建议至少给从设备留出 6 次侦听的机会。在前面的例子中,如果连接间隔为 100ms ,从设备延迟为 9,那么监控超时应该至少为 6s,这样一来,链路在最终断开前从设备至少会有 6 次侦听的机会。

连接参数介绍

技术分享图片

 

  1. 主设备和从设备建立连接之后,所有的数据通信都是在连接事件(Connection Events)中进行的。
  2. 尖刺的波就是连接事件(Connection events),剩下的Sleeping是睡眠时间,设备在建立连接之后的大多数时间都是处于Sleeping,这种情况下耗电量比较低,而在连接事件(Connection events)中,耗电量就相对高很多,这也是BLE为什么省电的原因之一。
  3. 每个连接事件(Connectionevents)中,都需要由Master发起包,再由Slave回复。
  4. Master即主机,简称M;Slave即从机,简称S。抓包过程中看到的M->S或者S->M即主机到从机或者从机到主机。
  5. 连接参数 (ConnectionParameters)

     

ConnectionInterval(连接间隔)

  1. 两个设备在切换信道后发送和接收数据称为一个连接事件。
  2. 尽管没有应用数据被发送和接收,两个设备仍旧会交换链路层数据(空包 EmptyPDU)来维持连接。
  3. 这个连接间隔就是指在一个连接事件(Connectionevents)的开始到下一个连接事件(Connectionevents)的开始的时间间隔。
  4. 连接间隔以1.25ms为单元,连接间隔的范围是6~3200既7.5ms~4s之间。

SlaveLatency(从设备延迟或者从设备时延)

  1. 允许Slave(从设备)在没有数据要发的情况下,跳过一定数目的连接事件(Connectionevents)
  2. 在这些连接事件(Connectionevents)中不必回复Master(主设备)的包,这样就能更加省电。
  3. 范围可以是0 ~ 499
  4. SlaveLatency=OFF也就是SlaveLatency为0时,Master发包,Slave必须回复,如果不回复,Master就会认为Slave那边接收不正常
  5. SlaveLatency=ON也就是SlaveLatency不为0的时候,图中SlaveLatency为3。Master发包,Slave没有数据要回复的时候,就会忽略3个连接事件,在第4个连接事件接收到Master发送的数据之后,回复Master。
  6. 如果Slave有数据要发送就会唤醒,也就是说即使SlaveLatency为3,但是在Master发第二包的时候Slave有数据要回复,这个时候就会立即回复Master而不是等到3个连接事件之后的第4个连接事件去回复。

SupervisionTimeout(超时时间或者监控超时)

  1. 这个参数设定了一个超时时间,如果BLE在这个时间内没有发生通信的话,就会自动断开。
  2. 单位是10ms,该变量的范围是10 ~ 3200,折算成时间范围是100ms ~ 32s。
  3. SupervisionTimeout >(1+slaveLatency)*(connectionInterval)

 

这三个连接参数不同情况下对通信速率和功耗的影响:

1.ConnectionInterval缩短,Master和Slave通信更加频繁,提高数据吞吐速度,缩短了数据发送的时间,当然也增加了功耗。

2.ConnectionInterval增长,通信频率降低,数据吞吐速度降低,增加了数据发送的时间,当然,这种设置降低了功耗。

3.SlaveLatency减少或者设置为0,每次ConnectionEvents中都需要回复Master的包,功耗会上升,数据发送速度会提高。

4.SlaveLatency加长,功耗下降,数据发送速度降低。

 

 

 

 

 

 

 

 

 

 

 

 

 

BLE---参数

标签:这一   sla   使用   介绍   交换   1.2   nbsp   div   建议   

原文地址:https://www.cnblogs.com/yuqilihualuo/p/9384955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!