1. BLE连接过程全景解析
当你的智能手环第一次与手机配对时,背后其实经历了一场精密的无线电"握手仪式"。BLE(Bluetooth Low Energy)作为物联网时代的连接基石,其连接过程远比传统蓝牙复杂且高效。以典型的智能家居场景为例,一个BLE温湿度传感器从待机到完成数据传输,整个过程仅需几毫秒的活跃时间,这正是其"低功耗"特性的精髓所在。
连接过程本质上是在2.4GHz频段上进行的多阶段协商。与Wi-Fi不同,BLE采用40个物理信道(37-39为广播信道,0-36为数据信道),通过跳频机制规避干扰。实际测试显示,在办公室环境中,合理的跳频策略能使连接稳定性提升60%以上。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 连接建立阶段详解
2.1 广播与扫描机制
设备启动后首先进入广播状态,以特定的Interval(20ms-10.24s可调)在三个广播信道(37/38/39)轮流发送广播包。广播包包含关键信息:
cpp复制struct adv_packet {
uint8_t type; // 广播类型:ADV_IND/ADV_DIRECT_IND等
uint8_t addr[6]; // 设备MAC地址
uint8_t data[31]; // 有效载荷(含UUID、TxPower等)
};
实测发现,将广播间隔设置为100ms时,能在功耗和发现速度间取得最佳平衡。过短的间隔会导致扫描端无法完整接收(Android系统默认扫描窗口为5ms/间隔50ms)。
2.2 连接请求与参数协商
当扫描设备(如手机)发出CONNECT_REQ时,关键连接参数随之确定:
- Connection Interval:1.25ms-4s范围内,以1.25ms为单位的倍数。智能手表通常使用20ms,而医疗设备可能设为500ms
- Slave Latency:允许从设备跳过的连接事件次数(0-499)。设置为3时,设备可休眠3个周期而不监听
- Supervision Timeout:100ms-32s,必须大于(1+SlaveLatency)*ConnInterval
重要提示:Android系统对参数有严格限制,若ConnInterval<20ms可能被系统拒绝
