BLE基础介绍

1.1 缩略语

ATT: Attribute Protocol,属性协议,定义用户的命令及命令操作的数据

GATT: Generic Attribute Profile,通用属性配置文件,GATT可以摆脱兼容性的困境,没有GATT就会导致互联互通出现问题

SM: Security Manager

BR: Basic Rate

EDR: Enhanced Data Rate

SMP: Secure manager protocol,管理加密和安全

GAP: Generic access profile,通用访问配置文件,主要用来进行广播、扫描和发起连接

L2CAP:Logic link control and adaptation protocol,逻辑链路控制和适配协议,对LL层简单封装

1.2 协议栈

在这里插入图片描述

1.2.1 PHY层:
指定BLE无线频段,调制解调方式和方法,PHY层的好坏直接决定整个BLE芯片的功耗、灵敏度等。

1.2.2 LL层:
LL层是协议栈的核心,主要负责发数据或收数据,不对数据进行解析,主要定义以下内容:

1)数据传输使用的射频信道;

2)指明接收者身份的access address,0x8E89BED6表示发给周边所有的设备,即广播,其中广播者被称为advertiser,接收者称为scanner或observer;

如果想一对一通信(称为“连接”),即设备A的数据只能设备B接收,设备B的数据只能设备A接收,那么必须要生成一个独特的随机access address,用以标识此本次连接

3)指明广播者身份的device address

4)检查数据完整性,保证数据在传输过程中没有被篡改,引入CRC24校验,如0xB2C78E

5)前导帧preamble,提高调制解调电路的工作效率,一般为0x55或0xAA(空中数据包用小端模式表示)

6)定义通信时序
在这里插入图片描述

上述Case1和Case2反映了一个问题:接收者必须在合适的时间开启射频窗口来接收空中数据包,因此要求LL层必须通信时序

7)在access mode后加入两个字段:LL header和长度字节,LL header表示数据包的LL长度,长度字节用来指明payload的长度。这样就可以让接收设备找到自己想要的数据。

1.2.3 GAP层:处理LL层的payload
1)GAP引入LTV结构来定义数据(Length-Type-Value)

GAP层引入了LTV(Length-Type-Value)结构来定义数据,比如020105,02-长度,01-类型(强制字段,表示广播flag,广播包必须包含该字段),05-值。

在这里插入图片描述

有了PHY层,LL层,GAT/GATT层之后,就可以发送广播包了,广播包信息极其有限,例如:

1)无法进行一对一通信,广播是一对多的方式,单向

2)不支持组包和拆包,因为无法传输大数据

3)通信不可靠且效率低下,只有37/38/39三个信道,不支持跳频

4)scanner功耗高,扫描端不知道设备端何时广播,也不知道在哪个频道上广播,因此只能拉长扫描窗口时间,并同时对37/38/39三个信道进行扫描,功耗很大。

然而,“连接”connection可以解决以上问题。

所谓设备A和设备B建立蓝牙连接,就是指设备A和设备B两者一对一“同步”成功,拥有共同的通信媒介,时钟也保持同步,具体包含以下内容,设备双方应该:

1)对使用的物理信道保达成一致

2)建立一个共同的时间锚点,把双方的时间远点变成同一个点

3)同步两者时钟,双方都知道什么时候发送数据包,什么时候接收数据包

连接成功后,设备双方的通信流程如下:

一旦连接成功,设备A被称为Master或Central,设备B被称为 Slave或Peripheral

设备A周期性地以CI(Connection Interval)为间隔向设备B发送数据包,而设备B周期性地以CI为间隔打开射频接收窗口来接收数据包。

同时,设备B收到设备A的数据包150us后,切换至发送状态,将自己的数据发送给设备A,设备A则切换成接收状态。

连接状态下,设备AB的发送和接收都是以周期性的计划开/关,且时间较短,大大降低了功耗,提高了效率。

1.2.4 L2ACP层
对LL层进行简单封装,LL层只关注传输的数据本身,而L2ACP层则区分加密通道还是普通通道,同时管理连接间隔CI。

1.2.5 SMP层
管理BLE连接的加密和安全,保证连接的安全性。

1.2.6 ATT层
定义用户的命令和命令操作的数据,比如读/写某个数据,开发者接触最多。

1.2.7 GATT层
规范ATT(attribute)中的数据内容,并用group(分组)的概念对attribute进行分类管理。

参考: https://www.cnblogs.com/iini/p/8969828.html

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值