BLE协议—协议栈基础

BLE协议—协议栈基础

  • BLE协议栈基础
  • 通用访问配置文件层(Generic Access Profile,GAP)
    • GAP角色
    • 设备配置
    • 模式和规程
    • 安全模式
    • 广播和扫描

BLE协议栈基础

蓝牙BLE协议栈包含三部分:主机、主机接口层和控制器。
主机:逻辑链路控制及自适应协议层(L2CAP)安全管理层(SM)属性协议层(ATT)通用访问配置文件(GAP)通用属性配置文件层(GATT)
主机接口层:主机控制接口(HCI)
控制器:物理层(PHY)链路层(LL)
BLE协议—协议栈基础_第1张图片
控制器(Controller)

  • 物理层(Physical Layer,PHY):BLE在2400Mhz至2483.5 MHz的2.4GHz免授权频段(ISM)内工作。采用自适应跳频的高斯频移键控(GFSK)。BLE采用40个信道,每个信道间隔为2MHz,分为数据信道和广播信道;广播信道占用3个,用于发现设备、建立连接、广播数据;数据信道占用37个,用于已建立连接设备间的数据通信。建立连接的两个设备,必须同一时间处于同一信道上才能通信。
    其中37/38/39为固定广播信道,其余为数据信道。

  • 链路层(Link Layer,LL),控制设备的射频状态,让设备处于五种状态:
    Standby:默认状态,不进行收发。
    Advertising:广播状态,在3个广播信道广播数据包,同时监听和回复扫描者发送的扫描数据包。
    Scanning:扫描状态,在3个广播信息监听广播数据包,同时发送扫描数据包。
    Initiating:初始化状态,在广播信道监听广播数据包,从而发起连接。
    Connection:连接状态。发起连接的设备通过发送连接请求来回应广播设备,如果广播设备接受连接请求,那么广播设备与发起连接的设备将会进入连接状态。发起连接的设备称为主机(Client),接受连接请求的设备称为从机(Server)。

主机控制接口(Host Controller Interface)
主机控制接口(Host-Controller Interface,HCI):为Host访问Controller提供一组标准的接口。
HCI主要完成3个任务:

  1. Host通过HCI发送命令给Controller
  2. Controller通过HCI将事件发送给Host
  3. 传递ACL Data(面向连接,在连接通道上进行数据传输)

该接口层的实现可以是软件接口,也可以是标准硬件接口,比如UART、SPI、USB。

主机(Host)

  • 逻辑链路控制和适配器协议(Logical Link Control and Adaption Protocol,L2CAP):为上层提供了多路复用、数据分段与重组服务,并且支持逻辑端对端的数据通信。

  • 安全管理层(Security Manager,SM):定义了配对和密钥分发的方法,并为其他层提供了与对端设备进行安全连接和数据交换的功能。

  • 属性协议层(Attribute Protocol,ATT):定义了访问对端设备上数据的一组规则,是GATT规范的基础,也是低功耗蓝牙的基石。定义了Host端属性报文格式和报文类型。这一层的关键词是Attribute(属性)。一个属性其实就是一条数据,属性是BLE数据提供单元,也是蓝牙空中传播数据的最上层,BLE开发过程中接触最多的就是这一层。
    Attribute协议下文详解 BLE协议—协议栈基础_第2张图片

  • 通用属性配置文件层(Generic Attribute Profile,GATT):自己本身不提供数据,而是将ATT层提供的属性组合起来构成的服务。通过ATT层可以读写对端设备的属性值,各个属性之间有什么联系各个属性之间怎么组合起来的,是由GATT层负责。服务是GATT层的关键字,服务由属性组成。
    一个BLE设备可以由多个服务组成(使用UUID进行区分),一个服务可以包含多个特征(characteristic),一个特征可以包含多个属性。GATT用来规范attribute中的数据内容,并运用group(分组)的概念对attribute进行分类管理。

  • 通用访问配置文件层(Generic Access Profile,GAP):定义了所有蓝牙设备的基础功能,设备间发现、连接、配对绑定的流程;蓝牙设备中四种角色;广播和扫描响应报文的格式;还有一些通用蓝牙参数定义,比如设备地址、名称、配对秘钥和设备的外观特征值,用于区分是什么设备,手机还是电脑;明确了作为一个低功耗蓝牙设备的基本需求,包含哪些层级以及如何协同工作的。 规范了一些通用的蓝牙参数:蓝牙设备地址、设备名称、配对秘钥、外观特征值。

通用访问配置文件层(Generic Access Profile,GAP)

GAP角色

GAP层定义了4种BLE角色:

  • 外围设备(Peripheral):可以发送广播并接受连接的设备(在链路层中作为从机)。
  • 中央设备(Central):可以扫描广播并发起连接的设备(在链路层中作为主机)。
  • 播报设备(Broadcaster):可以发送广播,但不可接受连接的设备。
  • 观察设备(Observer):可以扫描广播,但不可发起连接的设备。
    链路层可以同时支持多个状态机, GAP层也支持一个设备同时作为多个GAP角色,所以一个BLE设备通常可以同时充当主机和从机(多主多从)。

设备配置

GAP定义了4个设备配置参数:

  • 设备地址:设备地址在协议栈内部指BD_ADDR,小端数据格式。设备地址可以随机,也可以固定。
  • 设备名称:设备名称一般用于区分BLE设备,最长可达248个字节,支持UTF-8编码。
  • 设备外观:设备外观是用于用户识别设备功能,长度为两个字节。
  • 连接PIN码:PIN码用于两个设备之间配对时使用,为6位十进制整形数,因此它的有效范围为000000-999999(0x00000000 – 0x000F423F)。使用时必须显示全部6位数字,包括前导0。

模式和规程

GAP定义5套模式和规程,设备通常运行在这5套模式和规程中:

  • Broadcast mode and Observation procedure, 广播模式和观察规程
  • Discovery modes and procedures,发现模式和规程
  • Connection modes and procedures,连接模式和规程
  • Bonding modes and procedures, 绑定模式和规程
  • Periodic advertising modes and procedure,周期性的广播模式和规程

安全模式

GAP定义了2种安全模式以及4种安全规程:

  • 安全模式1(LE Security mode 1):使用认证信息保证安全。
  • 安全模式2(LE Security mode 2):使用数字签名保证安全。
规程 描述 安全模式
认证规程(Authentication procedure) 执行认证和加密操作 安全模式1
授权规程(Authorization procedure) 确认是否为某个操作提供授权 安全模式1
连接数据签名规程 (Connection data signing procedure) 连接数据签名规程,在未加密的连接中传输认证的数据。 安全模式2
认证已签名的数据规程 (Authenticate signed data procedure) 认证已签名的数据规程,校验带有前面的数据是否有效 安全模式2

广播和扫描

广播和扫描在无线通信中是非常重要的一个技术点。在BLE中,扫描和广播是通信的基础,用户可以直接用扫描和广播进行数据的传输,也可以在广播和扫描的基础上进行连接后点对点通信。
由于广播和扫描内容篇幅较长,具体可以移步链接
BLE协议—广播和扫描

学习笔记,有问题欢迎指出

你可能感兴趣的:(BLE,物联网,iot)