BLE 开发核心
GAP 角色与模式
Peripheral (周边)
广播设备,被中心扫描连接
- 典型:传感器、手环
- 功耗:广播 > 待机
- 单连接
Central (中心)
扫描并连接周边设备
- 典型:手机、PC
- 多连接支持
- 发起 LL 连接请求
Observer (观察者)
仅扫描,不连接
- 典型:蓝牙定位器
Broadcaster (广播者)
仅广播,不连接
- 典型:Beacon
- iBeacon/Eddystone
📊 广播类型与参数
| 类型 | PDU | 用途 | 响应 |
|---|---|---|---|
| ADV_IND | 可连接非定向 | 一般广播 | SCAN_REQ / CONNECT_IND |
| ADV_DIRECT_IND | 可连接定向 | 快速重连 | CONNECT_IND |
| ADV_SCAN_IND | 可扫描非定向 | 获取设备名称 | SCAN_RSP |
| ADV_NONCONN_IND | 不可连接非定向 | Beacon | 无 |
📊 连接参数速查
| 场景 | interval | latency | timeout |
|---|---|---|---|
| 低延迟 (游戏) | 7.5ms | 0 | 500ms |
| 平衡 (键鼠) | 30-50ms | 0-4 | 2s |
| 低功耗 (传感器) | 1-4s | 50-99 | 10s |
📊 ATT 操作码
| Opcode | 名称 | 方向 |
|---|---|---|
| 0x03 | Read By Type Request | C→P |
| 0x0B | Write Request | C→P |
| 0x1B | Handle Value Notification | P→C |
| 0x1D | Handle Value Indication | P→C |