BLE core 内容整理解释

本文内容比较杂散,只是做记录使用,后续会整理的有条理些

在这里插入图片描述

link layer

基本介绍

**Link Layer Control(链路层控制)**是蓝牙低功耗(BLE)协议栈的核心部分,负责实现设备间可靠、安全、低功耗的数据传输和控制。它是蓝牙协议栈的基础,在 BLE 的操作中承担了许多关键功能。

以下是 BLE Link Layer Control 的整体内容详细解析:


1. 概述

链路层(Link Layer, LL)位于 BLE 协议栈的控制部分,与物理层(PHY)直接交互,是数据链路的核心组件。其主要职责包括:

  • 连接建立和管理
  • 数据传输
  • 安全控制
  • 状态管理

2. 链路层状态

链路层支持以下几种状态,每种状态对应不同的操作模式:

  • Standby(待机状态):设备处于非活动状态,不执行任何操作。
  • Advertising(广播状态):设备以广播包形式发送数据,允许其他设备扫描或连接。
  • Scanning(扫描状态):设备接收广播包,用于发现其他设备。
  • Initiating(发起状态):设备尝试与广播设备建立连接。
  • Connected(连接状态):设备成功建立连接,进入数据传输模式。

3. 核心功能

链路层控制的核心功能分为以下几个模块:

(1) 设备发现
  • 广播(Advertising):
    • 广播设备发送广播包,表明其可用性。
    • 支持多种广播类型(如可连接、不可连接、定向广播等)。
  • 扫描(Scanning):
    • 扫描设备接收广播包,提取设备信息(如地址、名称等)。
(2) 连接管理
  • 连接建立
    • 发起设备通过 CONNECT_REQ 数据包与广播设备建立连接。
  • 连接维护
    • 定期通过 连接事件(Connection Events) 交换数据包。
    • 支持主设备和从设备间的双向通信。
  • 连接参数更新
    • 包括连接间隔、超时时间、主从时延等参数的调整。
    • 通过 Connection Update Procedure 完成。
(3) 信道管理
  • BLE 使用 40 个信道:
    • 3 个广播信道(37、38、39)。
    • 37 个数据信道(0-36)。
  • 信道选择算法
    • BLE 通过信道跳频避免干扰,提高通信可靠性。
  • 信道映射更新
    • 使用 Channel Map Update Procedure 动态调整信道。
(4) 数据传输
  • 数据包结构
    • 包括 Preamble(前导符)、Access Address(访问地址)、Header(头部)、Payload(负载)等。
    • 数据包通过 AES-CCM 加密保障安全性。
  • 分片与重组
    • 长数据分片后通过多个 PDU(Protocol Data Unit)传输。
(5) 安全管理
  • 加密过程
    • 使用 LTK(Long Term Key)进行会话加密。
    • 加密过程包括密钥分发、验证等。
  • 身份验证
    • 通过配对(Pairing)或绑定(Bonding)确保设备间的可信连接。
(6) 低功耗特性
  • 支持

    低功耗模式:

    • 通过调整连接间隔、监听窗口等参数降低功耗。
  • 主从切换:

    • 主设备可以动态调整连接频率以节省资源。

4. 链路层控制过程

链路层定义了多种控制过程(Control Procedures)以管理连接和数据传输:

控制过程 描述
Connection Update 调整连接参数(间隔、超时等)。
Channel Map Update 更新信道映射以避免干扰。
Encryption Procedure 启用或关闭加密以保障数据安全。
Feature Exchange 主从设备交换支持的功能特性。
Version Exchange 主从设备交换蓝牙版本信息。
PHY Update 更新物理层速率(如 1 Mbps 到 2 Mbps 切换)。
Terminate Procedure 主动终止连接,释放资源。

5. 链路层 PDU(Protocol Data Unit)

链路层数据单元(PDU)是链路层通信的基本单位,分为以下两种类型:

  • 控制 PDU:用于执行链路层控制过程。
  • 数据 PDU:用于传输应用层数据。

每个 PDU 包括以下字段:

  • Header:标识 PDU 类型和长度。
  • Payload:实际的数据或控制信息。
  • MIC(可选):消息完整性检查,用于验证数据的完整性。

6. 链路层与其他层的交互

  • 与物理层(PHY):
    • 直接管理射频信道的切换和数据包发送接收。
  • 与主机层(Host Layer):
    • 提供基础数据传输服务(如 ACL 数据通道)。
    • 通过 HCI(Host Controller Interface)与主机层通信。

7. 链路层的特点

  • 高效:支持数据分片、信道跳频和错误恢复。
  • 安全:内置加密和验证机制,保障通信安全。
  • 灵活:多种状态和过程支持复杂的 BLE 应用场景。
  • 低功耗:通过优化连接参数和数据传输,延长电池寿命。

链路层是 BLE 协议栈的核心模块,其功能覆盖了连接、数据传输、安全管理等关键领域。如果需要更深入的某一部分解析(如广播过程或加密机制),请告诉我!

Connection Update procedure

在这里插入图片描述

这张图展示了 BLE(蓝牙低功耗)设备在连接参数更新时的连接事件时序图(Connection Event Timing)。它描述了主设备(Central)和从设备(Peripheral)在旧连接参数和新连接参数切换时的时间关系。


图中关键部分解释

  1. Last Event Transmitted with Old Connection Parameters
    • 描述:
      • 这是主设备(C)和从设备(P)之间使用旧的连接参数(connInterval_old)完成的最后一次数据传输。
    • 特点:
      • 此时仍按照旧的连接间隔 connInterval_old 进行通信。

  1. Transmit Window (传输窗口)
    • 位置:在 Instant 时间点后出现。
    • 定义:
      • Transmit Window 是连接参数更新的关键,它标志着新连接参数(connInterval_new)生效的开始。
      • 主设备将在 transmitWindowOffsettransmitWindowOffset + transmitWindowSize 之间开始第一个连接事件。
    • 限制条件:
      • 主设备(C)必须在此窗口内发送数据包,从设备(P)需监听该窗口,以便完成参数更新后的第一次连接。

  1. First Event Transmitted with New Connection Parameters
    • 描述:
      • Transmit Window 中,主设备和从设备首次使用新的连接参数进行通信。
      • 具体的连接间隔变为 connInterval_new,后续事件也将按此间隔执行。
    • 特点:
      • 新的连接事件开始按照 connInterval_new 重新计算定时。

  1. Second Event Transmitted with New Connection Parameters
    • 描述:
      • 在第一个使用新参数的连接事件后,设备继续按照 connInterval_new 的时间间隔执行后续连接事件。

  1. 关键时间参数
    • connInterval_old:
      • 旧连接参数下的连接事件间隔。
    • transmitWindowOffset:
      • Instant 时间点后,新参数生效的延迟时间。
    • transmitWindowSize:
      • 定义新参数开始生效时主设备的传输窗口大小。
    • connInterval_new:
      • 更新后的新连接事件间隔。
    • T_IFS:
      • T_IFS 表示设备之间数据包的间隔(Inter-Frame Space)。

图的实际意义

  • 这是 BLE 中 连接参数更新过程 的标准行为,确保主从设备在切换参数时不会失去同步。
  • 使用 transmitWindowOffsettransmitWindowSize,主设备可以在规定的窗口内完成新连接参数的切换,而从设备只需监听这一窗口即可。
  • 应用场景:
    • 调整连接间隔(connInterval)以优化功耗或响应速度。
    • 提高通信效率,满足实时性或低功耗的需求。

总结

这张图展示了 BLE 连接参数更新中的定时关系:

  1. 主从设备使用旧参数完成最后一次通信。
  2. 主设备进入 Transmit Window,开始按照新参数通信。
  3. 新的连接事件间隔生效,并持续使用新参数进行通信。

主机连接流程

在这里插入图片描述

这两张图展示了 BLE(蓝牙低功耗)连接建立过程 的两种不同场景:使用 CONNECT_INDAU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值