nrf51822 BLE 4.0 低功耗蓝牙协议 解析(一)

参考文档:
《TI 2013研讨会蓝牙4.0讲解部分PPT 20130508.pdf》重点
《TI_BT-LE-TRAINNING.PDF》
《05_BLE Intro.pdf》
BLE: Bluetooth Low Energy

协议栈结构和配置

这里写图片描述

这里写图片描述

这里写图片描述

Profile 应该是应用框架的意思。
Profile中文译名有很多,比如配置文件,剖面,应用协议,轮廓等,每一种翻译代表了一种对于profile的不同理解

物理层(PHY)

RF 规格特性
– 运行在 2.4 GHz ISM band 2.4 GHz ISM band 2.4 GHz ISM band 2.4 GHz ISM band
– GFSK 调制方式(高斯频移键控)
– 40 频道2 MHz 的通道间隙
• 3 个固定的广播通道
• 37 个自适应自动跳频数据通道
物理层可以和经典蓝牙RF组合成双模设备
2 MHz 间隙能更好地防止相邻频道的干扰

这里写图片描述
2.4 GHz free ISM band
 1 Mbit/s signalling rate
 GFSK modulation
 Up to 4 dBm maximum transmit power
 40 RF channels
 3 advertising channels reserved for:
 Discover
 Connect
 Broadcast
 37 data channels

BLE:拓扑结构和设备状态

BLE 是一种星形拓扑结构:
– 主设备管理着连接,并且可以连接多个从设备
– 一个从设备只能连接一个主设备
做为一个BLE设备,有六种可能的状态:
– 待机状态(Standby) (Standby) (Standby) (Standby):设备没有传输和发送数据,并
且没有连接到任何设备
– 广播状态(Advertiser) (Advertiser) (Advertiser) (Advertiser):周期性广播状态
– 扫描状态(Scanner) (Scanner) (Scanner) (Scanner):主动地寻找正在广播的设备
– 发起连接状态(Initiator): (Initiator): (Initiator): (Initiator): 主动向某个设备发起连接
– 主设备(Master) (Master) (Master) (Master):作为主设备连接到其他设备
– 从设备(Slave) (Slave) (Slave) (Slave) :作为从设备连接到其他设备

 Advertising: connectable and non-connectable
 Scanning: active or passive
 Slave: connection role
 Master: connection role
 31 bytes advertising payload size
 27 bytes maximum payload size per packet
 AES-128 built-in encryption
 CCM
 Counter with
 Cipher Block Chaining
 Message Authentication Code

BLE: 广播事件

广播包的发送是单向的,不需要任何连接。
设备发送广播包进入广播状态
– 广播包可以包含特定的数据定义,最大31个字节
– 广播包可以直接指向某个特定的设备,也可以不指定
– 广播中可以声明是可被连接的设备,或者是不可连接的设备
在一个广播事件中,广播包会分别在三个广播通道中被发
送一次 (37, 38, 39)

BLE: 广播间隔

广播间隔,是两次广播事件之间的最小时间间隔
广播间隔的取值范围是在 20ms ~ 10.24s 之间
链路层会在每次广播事件期间产生一个随机广播
延时时间(0ms and 10ms) (0ms and 10ms) (0ms and 10ms) (0ms and 10ms),这个延时被加在广播
间隔中,这样来避免多设备之间的数据碰撞。

BLE: 扫描事件

每次扫描设备打开Radio 接收器去监听广
播设备,称为一个扫描事件
扫描事件交替发生在三个特定的广播通道
中: 37, 38, 39 : 37, 38, 39 : 37, 38, 39 : 37, 38, 39
扫描频宽比 (Duty-Cycle), (Duty-Cycle), (Duty-Cycle), (Duty-Cycle), 关于扫描的两个
时间参数:
– 扫描间隔: 即扫描设备的扫描频度
– 扫描窗口: 每次扫描事件持续的时间

BLE: 发起连接

除了扫描,设备也可以主动发起连接
发起状态的设备和扫描状态的设备区别在于:当
它监听到一个可连接的广播,发起设备会发送一
个连接请求,而扫描设备会发送一个扫描请求
连接请求包括一套为从设备准备的连接参数,安
排连接事件发生的的通道和时间
如果广播设备接收了连接,两个设备会进入连接
状态,发起方会称为Master ,而广播方会称为
Slave

BLE: 连接参数

通道映射-指示连接使用的频道
跳频增量-一个5-16之间的随机,参与通道选择的
算法
连接间隔-1.25ms的倍数,7.5ms-4.0s 7.5ms-4.0s 7.5ms-4.0s 7.5ms-4.0s之间
监督超时-10ms的倍数,100ms-32.0s 100ms-32.0s 100ms-32.0s 100ms-32.0s之间,必
须大于
(1 + slaveLatency) (1 + slaveLatency) (1 + slaveLatency) (1 + slaveLatency) * (ConnInterval) (ConnInterval) (ConnInterval) (ConnInterval)
从机潜伏-0-499之间,不能超过
((supervisionTimeout / connInterval) ((supervisionTimeout / connInterval) ((supervisionTimeout / connInterval) ((supervisionTimeout / connInterval) – 1)

BLE: 连接事件

所有的通讯都发生在两个设备的连接事件期间
连接事件周期地发生,按照连接参数指定的间隔
每个事件发生在某个数据通道(0-36),跳频增量参数决
定了下次连接事件发生的通道
在每个连接事件期间,Master 先发送,Slave 会在
150us之后做出回应
即使一个连接事件发生(或两者),双方都没有数据发送
(例外情况是从设备潜伏使能)。这允许两个设备都承认
对方仍然存在并保持活跃的连接。

BLE: Slave的潜伏

潜伏:Slave如果没有数据发送, 允许跳过连接事件
连接参数中的Slave 的潜伏值,是允许从设备跳过的最大连接次数
在连接事件中,如果slave 没有对master 的包做出回应,master 将
会在后来的连接事件中重复发送,直到slave回应
两个有效的连接事件之间的最大时间跨度(假设slave跳过了最大数目
的连接事件),称为“有效连接间隔”
从设备的潜伏值范围是0-499,但是有效的连接间隔必须小于32.0s

BLE: 连接参数的设定

短间隔的连接事件:
– 两设备都会以高能耗运行
– 高数据吞吐量
– 发送等待时间短
长间隔的连接事件:
– 两设备都会以低能耗运行
– 低数据吞吐量
– 发送等待时间长
低或者0潜伏值:
– 从设备以高能耗运行
– 从设备可以快速收到来自中心设备的数据
高潜伏值:
– 外围设备在没有数据发送的情况下可以低能耗运行
– 外围设备无法及时收到来自中心设备的数据
– 中心设备能及时收到来自外围设备的数据

BLE: 终止连接

Master 和Slave 都可以主动断开连接
– 一边发起断开,另一边必须在在断开连接之前回应这
个断开请求
监视超时而断开连接
– 监视超时参数指定了两个数据包之间的最大时间跨度
– 监视超时时间必须大于有效连接间隔而小于32.0秒
– slave and master slave and master slave and master slave and master双方都维持着自己的监视超时计时
器,在每次收到数据包时清零。
– 如果连接超时,设备会认为连接丢失,并且退出连接
状态,返回广播,扫描或者待机模式。

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/80309720