目录
在智能挂锁中,BLE HID + GATT + OTA/DFU 协议切换设计是一种常见的 多协议复用方案,适用于低功耗智能设备,需要在 HID 输入、标准 BLE 服务通讯(如 GATT)与 OTA 固件升级之间灵活切换。
设计目标:一套 BLE HID + GATT + DFU 的三态工作机制,且通过 App 控制 HID 的启用与关闭,同时支持靠近自动连接、App 唤醒(只支持Android)、连接状态切换和固件升级。
以下是完整的设计解析、切换逻辑、系统实现建议。
一、总体架构设计
1.系统模块角色划分
模块 | 说明 |
BLE HID Profile | 提供与手机/iOS/macOS 进行输入交互(如自动连接、模拟按键、触摸输入) |
BLE GATT Profile | 提供挂锁专属数据通信通道(如身份验证、开锁命令、状态上报) |
OTA/DFU 模块 | 提供 BLE 下固件升级能力(nRF OTA、ESP OTA、DFU Service) |
2.协议架构设计
模式 | 用途 | 蓝牙协议 | 特性 |
快速靠近连接 | 唤醒设备,自动连接 | BLE + HID Profile | iOS /Andriod可自动连接并显示连接状态(系统设置-手机蓝牙列表显示) |
应用通信 | App 打开并控制设备 | GATT 自定义服务 | 支持配网、开锁、状态上报 |
OTA 升级 | 固件更新 | DFU OTA 专用服务 | 进入后需断开现有连接再重连 |
二、连接状态切换流程图
前提:在APP端设置HID开启/关闭.以下为已开启HID流程图
【1】靠近广播(启用HID)─────┐
↓(系统自动连接)
【2】系统层 BLE HID 连接
↓(打开App)
【3】App连接GATT】───→ GATT 握手(认证、控制)
↓(App设置关闭HID)
【4】关闭HID并断开】←──── 设备断开系统BLE HID连接
↓
仅保留App GATT通信
↓(App触发升级)
【5】重启并切DFU】────→ 进入OTA广播 → DFU连接 → 升级完成
↓
重启回广播状态。