BLE4.0教程一蓝牙协议连接过程与广播分析

BLE4.0教程⼀蓝⽛协议连接过程与⼴播分析
1.蓝⽛简介
什么是蓝⽛4.0
蓝⽛⽆线技术是使⽤范围最⼴泛的全球短距离⽆线标准之⼀,蓝⽛4.0版本涵盖了三种蓝⽛技术,即传统蓝⽛、⾼速蓝⽛和低功耗蓝⽛技术,将三种规范合⽽为⼀。它继承了蓝⽛技术在⽆线连接上的固有优势,同时增加了⾼速蓝⽛和低功耗蓝⽛的特点。这三个规格可以组合或者单独使⽤。蓝⽛4.0规范的核⼼是低功耗蓝⽛(Low Energy),即蓝⽛4.0BLE。该技术最⼤特点是拥有超低的运⾏功耗和待机功耗,蓝⽛低功耗设备使⽤⼀粒纽扣电池可以连续⼯作数年之久。蓝⽛4.0技术同时还拥有低成本、向下兼容、跨⼚商互操作性强等特点。
蓝⽛4.0 BLE的特点
提升装置蓝⽛4.0 BLE技术具有如下特点:
1.⾼可靠性
对于⽆线通信⽽⾔,由于电磁波在传输过程中容易受很多因素的⼲扰,例如,障碍物的阻挡、天⽓状况等。因此,⽆线通信系统在数据传输过程中,具有内在的不可靠性。
蓝⽛技术联盟(SIG)在制定蓝⽛4.0规范时已经考虑到了这种数据传输过程中的内在的不确定性,所以在射频、基带协议、链路管理协议(LMP)中采⽤可靠性措施,包括:差错检测和校正、进⾏数据编解码、差错控制、数据加噪等,极⼤地提⾼了蓝⽛⽆线数据传输的可靠性。另外,使⽤⾃适应跳频技术,最⼤程度地减少和其他2.4GHz ISM频段⽆线电波的串扰。
2.低成本、低功耗
低功耗蓝⽛⽀持两种部署⽅式:双模⽅式和单模⽅式。
(1)双模⽅式,低功耗蓝⽛功能集成在现有的经典蓝⽛控制器中,或在现有经典蓝⽛技术(2.1+EDR/3.0+HS)芯⽚上增加低功耗堆栈,整体架构基本不变,因此成本增加有限。
(2)单模⽅式,⾯向⾼度集成、紧凑的设备,使⽤⼀个轻量级连接层(Link Layer)提供超低功耗的待机模式操作。蓝⽛4.0BLE技术可以应⽤于8bit MCU,⽬前TI公司推出的兼容蓝⽛4.0BLE协议的SoC芯⽚CC2540/CC2541,外接PCB天线和⼏个阻容器件构成的滤波电路即可实现蓝⽛⽹络节点的构建。
低功耗设计:蓝⽛4.0版本强化了蓝⽛在数据传输上的低功耗性能,功耗较传统蓝⽛降低了百分之九⼗。
传统蓝⽛设备的待机耗电量⼤⼀直是其缺陷之⼀,这与传统蓝⽛技术采⽤ 16~32 个频道进⾏⼴播不⽆关系,⽽低功耗蓝⽛仅使⽤了3个⼴播通道,且每次⼴播时射频的开启时间也由传统的 22.5ms 减少到 0.6~1.2ms,这两个协议规范的改变,⼤幅降低了因为⼴播数据导致的待机功耗。
低功耗蓝⽛设计了⽤深度睡眠状态来替换传统蓝⽛的空闲状态,在深度睡眠状态下,主机(Host)长时间处于超低的负载循环(Duty Cycle)状态,只在需要运作时由控制器来启动,由于主机较控制器消耗的能源更多,因此这样的设计也节省了最多的能源。
3.快速启动,瞬间连接
此前蓝⽛版本为⼈诟病的地⽅就在于启动速度⽅⾯,蓝⽛2.1版本的启动连接需要 6s 时间,⽽蓝⽛4.0版本仅仅需要3ms即可完成,⼏乎是瞬间连接。
4.传输距离极⼤提⾼
传统蓝⽛传输距离为 2~10m,⽽蓝⽛4.0的有效传输距离可达到 60~100m,传输距离提升了⼗倍,极⼤开拓了蓝⽛技术的应⽤前景。当然,上述距离数值是在理想状态下,实际使⽤过程中因为各种因素的影响,⽐如:空⽓湿度、其他电磁信号⼲扰等等,导致实际距离可能达不到上述理论值,通过抗⼲扰等处理可以提⾼实际的传输距离。
5.⾼安全性
为了保证数据传输的安全性,使⽤AES-128 CCM加密算法进⾏数据包加密和认证。四头精雕机
蓝⽛4.0BLE⽆线⽹络拓扑结构
蓝⽛4.0BLE⽹络拓扑结构分为星型拓扑和⼴播组拓扑。不同的⽹络拓扑对应不同的应⽤领域,在蓝⽛4.0BLE的⽆线⽹络中,不同的⽹络拓扑结构对⽹络节点的配置有不同的要求(蓝⽛⽹络节点的类型可以分为主机、从机,也可以分为服务器、客户端,具体配置需要根据配置⽂件决定)。
2.蓝⽛的状态以及基本连接过程
2.1 蓝⽛的状态:
蓝⽛具有5种状态:
待机状态(standby):没有连接任何设备,没有传输和发送数据。⼴播状态(Advertiser/advertising):周期性⼴播状态。
扫描状态(Scanner/scanning):主动寻正在⼴播的设备。
发起连接状态(Initiator/initiating):主动发起连接。
连接状态(connected)        :已经连接。
2.2蓝⽛的⾓⾊
主设备从设备
cao552.3蓝⽛的连接流程
BLE连接流程公司服务⽐喻Master Slave消费者服务⽅待机模式待机模式空闲空闲
扫描模式⼴播模式寻公司发⼴告扫描请求扫描回应咨询能提供什么服务告知服务连接请求签署业务合同
连接参数请求具体合同内容
参数更新请求合同修改参数更新回应合同回应
建⽴连接签署合同
连接事件开始业务合作
2.4连接事件和参数
2.4.1连接事件
主设备和从设备建⽴连接之后,所有的数据通信都是在连接事件(Connection Events)中进⾏的。
尖刺的波就是连接事件(Connection events),剩下的Sleeping是睡眠时间,设备在建⽴连接之后的⼤多数时间都是处于Sleeping,这种情况下耗电量⽐较低,⽽在连接事件(Connection events)中,耗电量就相对⾼很多,这也是BLE为什么省电的原因之⼀。
每个连接事件(Connection events)中,都需要由Master发起包,再由Slave回复。
2.4.2连接参数
连接参数⽤于规定主从机数据通信时间,如果连接参数设置不合理,就会导致连接断开。
数码锁
主要连接参数有以下三个:
连接间隔(Connection interval)
(GAPROLE_MIN_CONN_INTERVAL && GAPROLE_MAX_CONN_INTERVAL)连接间隔,在BLE的两个设备的连接中使⽤跳频机制。两个设备使⽤特定的信道发送和接收数据,然后过⼀段时间后再使⽤新的信道(BLE协议栈的链路层处理信道的切换)。
两个设备在切换信道后发送和接收数据称为⼀个连接事件。尽管没有应⽤数据被发送和接收,两个设备仍旧会交换链路层数据(空包Empty PDU)来维持连接。
连接间隔就是指在⼀个连接事件(Connection events)的开始到下⼀个连接事件(Connection events)的开始的时间间隔。连接间隔以
1.25ms为单元,连接间隔的范围是6 ~ 3200既7.5ms ~ 4s之间。
从机忽略(Slave Latency)
允许Slave(从设备)在没有数据要发的情况下,跳过⼀定数⽬的连接事件(Connection events),在这些连接事件(Connection events)中不必回复Master(主设备)的包,这样就能更加省电。
范围可以是0 ~ 499
更详细的使⽤解析如下:
Slave Latency = OFF也就是Slave Latency为0时,Master发包,Slave必须回复,如果不回复,Master就会认为Slave那边接收不正常。Slave Latency = ON也就是Slave Latency不为0的时候,图中Slave Latency为 3。Master发包,Slave没有数据要回复的时候,就会忽
略 3 个连接事件,在第 4 个连接事件接收到Master发送的数据之后,回复Master。如果Slave有数据要发送就会唤醒,也就是说即使Slave Latency为 3,但是在Master发第⼆包的时候Slave有数据要回复,这个时候就会⽴即回复Master⽽不是等到 3 个连接事件之后的
第 4 个连接事件去回复。
超时时间(Supervision Timeout)
这个参数设定了⼀个超时时间,如果BLE在这个时间内没有发⽣通信的话,就会⾃动断开。
单位是 10ms,该变量的范围是10 ~ 3200,折算成时间范围是100ms ~ 32s 。
连接间隔、从机时延以及超时时间这三者必须满⾜如下公式:
建筑隔墙Supervision Timeout  > (1 +slaveLatency)* (connectionInterval)
上述公式必须满⾜,否则连接就会不正常断开。
这三个连接参数不同情况下对通信速率和功耗的影响:
1.Connection Interval缩短,Master和Slave通信更加频繁,提⾼数据吞吐速度,缩短了数据发送的时间,当然也增加了功耗。
2.Connection Interval增长,通信频率降低,数据吞吐速度降低,增加了数据发送的时间,当然,这种设置降低了功耗。
3.Slave Latency减少或者设置为 0,每次Connection Events中都需要回复Master的包,功耗会上升,数据发送速度会提⾼。
4.Slave Latency加长,功耗下降,数据发送速度降低。
注意修改连接参数的时候要满⾜⼀定的要求:
1.安卓设备作主设备时,连接参数满⾜的要求见本篇博⽂第⼆节"连接参数介绍"中提到的内容。另外实际开发过程中发现安卓设备作主设备时存在⼀个问题,就是部分安卓设备连接BLE设备之后,只能进⾏⼀次连接参数的修改。
2. 苹果系统设备作主设备时,连接参数更新的要求⽐较苛刻,如下:
Interval Max * (Slave Latency + 1) ≤ 2 seconds
Interval Min ≥ 20 ms
Interval Min + 20 ms ≤ Interval Max
Slave Latency ≤ 4
connSupervisionTimeout ≤ 6 seconds
奥沙利Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout
即:
最⼤连接间隔时间 *(从机延迟 + 1) ≤ 2s
最⼩连接间隔时间 ≥ 20 ms
最⼩连接间隔时间 + 20 ms ≤ 最⼤连接间隔时间
从机延迟 ≤ 4
超时时间 ≤ 6s
最⼤连接间隔时间 *(从机延迟 + 1)* 3  < 超时时间
所以如果你的BLE从设备需要被IOS主设备连接,那你的BLE从设备的默认申请的连接参数⼀定要满⾜上述要求,并且连接过程中修改连接参数的时候也要满⾜上述要求。

本文发布于:2024-09-24 12:29:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/286948.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:连接   设备   数据   参数   时间   技术
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议