BLE(蓝牙低功耗)连接过程详解

一、BLE连接概览

BLE连接相比经典蓝牙有显著差异:

  • 无连接模型:基于广播(Advertising)和扫描(Scanning)

  • 快速连接:典型连接建立时间 < 3ms

  • 状态简化:仅4种状态(Standby/Advertising/Scanning/Initiating/Connection)

  • 跳频简化:40个信道(2MHz间隔),37个数据信道 + 3个广播信道


二、广播与扫描阶段

  1. 广播类型与事件
广播类型 说明 应用场景
Connectable Undirected 可连接无定向广播 最常见,允许任何设备连接
Connectable Directed 可连接定向广播 快速连接已知设备(白名单)
Scannable Undirected 可扫描无定向广播 允许扫描响应,不可连接
Non-connectable 不可连接广播 仅广播数据(如Beacon)
Scan Response 扫描响应 响应主动扫描的额外数据
  1. 广播信道与数据信道分布
cpp 复制代码
广播信道(3个):37(2402MHz), 38(2426MHz), 39(2480MHz)
数据信道(37个):0-36,自适应跳频(AFH)

三、完整连接流程图

图1:BLE完整连接流程图说明

此流程图展示了BLE设备从上电到应用通信的完整生命周期,关键阶段解析如下:

  • 角色选择(节点B):BLE连接前必须确定角色。外围设备(Peripheral,从设备)进入广播状态,周期性在3个广播信道发送数据;中心设备(Central,主设备)进入扫描状态,监听广播信道发现设备。角色不是固定的,设备可以时分复用两种角色(如手机同时作为Central连接手环,作为Peripheral被电脑连接)。

  • 广播与扫描交互(C→E 与 D→F→G):外围设备以可配置间隔(20ms-10.24s)在信道37、38、39循环发送广播包(ADV_IND)。中心设备以主动或被动扫描模式监听,被动扫描仅接收广播数据,主动扫描额外发送SCAN_REQ请求扫描响应(SCAN_RSP)获取更多数据(如设备名称、发射功率)。

  • 连接发起(H→I→J) :中心设备发现目标后,在同一广播信道立即发送CONNECT_IND(连接指示),包含关键参数:接入地址(Access Address,随机32位值,用于标识此连接)、CRC初始值、跳频算法参数、连接间隔、从设备延迟、监督超时等。外围设备收到后停止广播,双方进入连接状态。

  • 连接后流程(K→L→M→N→O→P):进入连接状态后,立即切换到37个数据信道,使用自适应跳频(AFH)避开干扰信道。链路层(LL)协商加密,安全管理层(SMP)执行配对(根据IO能力选择Just Works/Passkey Entry/Numeric Comparison/OOB),生成并分发LTK(长期密钥)。通用属性协议(GATT)执行MTU交换(默认23字节,最大512字节)和服务发现,最后应用层通过特征值读写或通知进行数据通信。

  • 连接维护(Q分支):BLE支持连接参数更新(Connection Parameter Update)动态调整通信间隔(7.5ms-4s)以平衡功耗和吞吐量;无数据传输时进入睡眠,通过连接事件(Connection Event)周期性唤醒。断开时发送LL_TERMINATE_IND,双方返回初始状态。

四、链路层(LL)连接建立时序

此序列图详细展示了BLE链路层(Link Layer)从广播到加密通信的精确时序,体现BLE"无连接"模型的本质:

  • 广播阶段(步骤1-4) :外围设备的链路层以T_advEvent间隔(由advInterval + 随机延迟0-10ms组成,避免多设备碰撞)在3个广播信道循环发送ADV_IND广播包,包含自身地址(AdvA)和广播数据(AdvData)。中心设备可发送SCAN_REQ请求扫描响应,外围设备返回SCAN_RSP补充设备名称、128位UUID等元数据。此过程完全单向,不建立任何持久状态。

  • 连接建立阶段(步骤5-8) :这是BLE连接的关键创新。中心设备不通过配对或协商建立连接,而是单方面发送CONNECT_IND,包含:

    • Access Address:随机生成的32位值,成为此后数据信道的物理层同步字

    • Hop Increment:5-16的跳频步长,与信道映射共同决定跳频序列

    • Channel Map:37位掩码,标记可用/不可用数据信道(AFH基础)

    • 连接参数:间隔(1.25ms倍数)、从设备延迟(可跳过N个连接事件)、监督超时

    外围设备收到后立即停止广播 ,双方基于公式nextChannel = (currentChannel + hopIncrement) mod 37计算跳频序列,进入连接状态。

  • 连接事件机制(步骤9-12) :BLE连接不是持续占用信道,而是周期性的"连接事件"。在每个connInterval(如50ms),中心设备在计算的数据信道上发送数据(或空PDU维持同步),外围设备必须在150±2μs内响应。这种时分双工(TDD)机制是BLE低功耗的核心------设备在连接事件间可深度睡眠。

  • 连接参数更新(步骤13-14):初始参数由中心设备在CONNECT_IND中强制指定,但外围设备可通过L2CAP信号或LL层请求更新,动态调整间隔(如从50ms改为1s以省电)或监督超时。

  • 加密启动(步骤15-19) :配对完成后,链路层使用生成的Session Key(SK)启动加密。中心设备发送LL_ENC_REQ携带随机数(Rand)、加密 diversifier(EDIV)和SK的一部分(SKDm),外围设备响应SKDs,双方组合成完整SKD生成会话密钥,通过LL_START_ENC序列启用AES-CCM加密。

  • 连接终止(步骤20-22) :正常断开时一方发送LL_TERMINATE_IND携带原因码(如User Terminated Connection);异常断开(如超出监督超时、瞬间干扰导致连续丢包)由链路层自动检测并上报。

五、GAP层配对流程详解

图4:BLE GAP层配对流程时序图说明

此图展示了BLE 4.2+引入的LE Secure Connections配对流程,相比Legacy Pairing大幅提升安全性,分为五个阶段:

  • 阶段1:配对特征交换(步骤1-3) :中心设备发起Pairing Request,携带IO能力(Display/Keyboard/None/YesNo)、OOB数据可用性、认证需求(MITM保护、绑定、SC支持)和最大密钥长度。外围设备响应Pairing Response,双方协商使用LE Secure Connections(椭圆曲线)还是Legacy Pairing(传统TK),并确定最终认证方法。

  • 阶段2:认证阶段1(步骤4-分支):根据IO能力选择三种方法之一,与经典蓝牙SSP类似但基于椭圆曲线:

    • Numeric Comparison:双方交换公钥(P-256曲线),计算并承诺Commitment值,交换Nonce后各自计算6位数字。用户确认两设备显示数字相同,可防止MITM攻击。这是BLE最安全且用户友好的方法。

    • Passkey Entry:一方输入6位密码,另一方显示,通过20轮逐位验证(每轮交换Commitment和Confirm值),适合一方无显示器场景(如键盘配对PC)。

    • Just Works:直接交换公钥计算密钥,无MITM保护,仅防止被动窃听,用于双方均无IO能力(如两个传感器)。

  • 阶段3:认证阶段2(步骤5-6) :双方使用椭圆曲线Diffie-Hellman(ECDH)计算共享密钥DHKey,交换DHKey Check值验证计算一致性,确认无中间人篡改公钥。此阶段确保密钥的前向安全性。

  • 阶段4:密钥计算与分发(步骤7-12):基于DHKey派生三种密钥:

    • LTK(Long Term Key):16字节,用于链路层加密,配合EDIV和Rand存储

    • IRK(Identity Resolving Key):用于解析私有地址(Resolvable Private Address),保护设备隐私

    • CSRK(Connection Signature Resolving Key):用于签名数据(Signed Write),无加密时提供数据完整性

    双方通过SMP协议交换这些密钥,实现绑定(Bonding)------永久存储配对信息供下次快速重连。

  • 阶段5:启用加密(步骤13-15) :配对完成后,链路层使用LTK启动加密(通过LL_ENC_REQ),后续所有数据传输经AES-CCM加密,配对流程结束。

相关推荐
搜佛说2 小时前
下一代跨语言原生操作系统商业计划书
物联网·软件工程
BY组态2 小时前
Ricon组态系统在实际项目中的应用案例分享
物联网·web组态·组态
Zevalin爱灰灰7 小时前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(五)
单片机·物联网·嵌入式·esp8266
Web3_Daisy8 小时前
Token 分红机制详解:实现逻辑、激励结构与风险分析
大数据·人工智能·物联网·web3·区块链
BY组态9 小时前
从零开始:Ricon组态系统快速入门指南
运维·物联网·web组态·组态
次旅行的库10 小时前
MQTT学习笔记
数据库·笔记·物联网·学习
瑶光守护者10 小时前
【卫星通信】IoT-NTN卫星通信全球战略报告:市场动态、技术前沿与运营商生态(2025-2030)
物联网·卫星通信
Zevalin爱灰灰10 小时前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(四)
物联网·嵌入式·esp8266
智链RFID1 天前
从需求到落地:企业RFID系统选择的智慧之道
物联网·rfid·数字化转型·企业信息化·仓储管理