Skip to content

低功耗蓝牙 (BLE) ​

BinaryKeyboard 无线版基于 CH592F 的 BLE5.4 协议栈,实现 HID over GATT,支持标准 HID 设备配对与使用。

概览 ​

项目说明
芯片CH592F (RISC-V, BLE5.4)
角色外设 (Peripheral)
连接数单连接
设备名称BinaryKeyboard5KEY / BinaryKeyboardKNOB

GATT 服务列表 ​

服务 UUID名称说明
0x1800GAP通用访问,设备名、外观等
0x1801GATT通用属性,服务变更等
0x180ADevice Information设备信息(型号、厂商、固件版本等)
0x180FBattery Service电池电量
0x1812HID键盘、鼠标、多媒体输入
0x1813Scan Parameters扫描参数(主机写、从机通知)

HID 服务 (0x1812) ​

特性列表 ​

特性UUID方向说明
HID Information0x2A4A读bcdHID、Country、Flags
Report Map0x2A4B读HID 报告描述符
HID Control Point0x2A4C写无响应Suspend/Exit Suspend
Report0x2A4D读/写/通知复合报告(键盘/鼠标/多媒体等)
Protocol Mode0x2A4E读/写Boot/Report 模式
Boot Keyboard Input0x2A22通知Boot 键盘输入
Boot Keyboard Output0x2A32读/写Boot 键盘 LED
Boot Mouse Input0x2A33通知Boot 鼠标输入

HID 报告 ID ​

Report ID用途方向大小
0键盘输入设备→主机8B
0LED 输出主机→设备1B
1鼠标输入设备→主机4B
2多媒体输入设备→主机2B
4电池电量 (HID Report Ref)设备→主机1B

键盘、鼠标、多媒体报告与 USB HID 格式一致,详见 HID 通讯协议。

固件使用 Report Protocol Mode。主机通过 Protocol Mode 特性选择 Report 模式,再通过 Report 特性读写各 Report ID 对应数据。


Device Information (0x180A) ​

特性UUID说明
System ID0x2A23系统标识
Model Number0x2A24型号字符串
Serial Number0x2A25序列号
Firmware Revision0x2A26固件版本
Hardware Revision0x2A27硬件版本
Software Revision0x2A28软件版本
Manufacturer Name0x2A29厂商名称
PnP ID0x2A50PnP 标识

Battery Service (0x180F) ​

特性UUID方向说明
Battery Level0x2A19读/通知电量百分比 (0–100)

主机可订阅 Battery Level 通知以获取电量更新。


Scan Parameters (0x1813) ​

特性UUID方向说明
Scan Interval Window0x2A4F写主机写入扫描间隔/窗口
Scan Parameter Refresh0x2A31通知从机通知刷新请求

用于主机控制从机广播参数,符合 BLE 规范。


配对与绑定 ​

配置项值说明
Pairing ModeWait For Req等待主机发起配对
Bonding启用保存绑定信息
MITM禁用无中间人保护
IO CapabilitiesNoInputNoOutput无显示/输入能力(默认 Just Works)

绑定信息存储在 DataFlash 的 BLE SNV 保留扇区。当前编译参数下 SNV 从偏移 0x7000 开始,占用 256B,但底层按 4KB 扇区擦除,因此 0x7000~0x7FFF 都不能与应用数据复用。详见 DataFlash 布局。

固件启用绑定记录,但同一时刻只支持一个活动连接。在 BLE 模式长按 FN2 会清除全部绑定并重启;主机端也要删除旧设备后重新配对。


广播与连接参数 ​

广播 ​

参数值单位
广播间隔最小480.625ms → 30ms
广播间隔最大800.625ms → 50ms
广播超时60秒

连接 ​

参数值单位
连接间隔81.25ms → 10ms
从机延迟20连接事件
监督超时50010ms → 5s

BLE 协议栈配置 (ble_config.h) ​

配置项默认值说明
BLE_SNVTRUE启用 SNV 存储绑定
BLE_SNV_ADDR0x77000 - FLASH_ROM_MAX_SIZE当前编译参数下为 DataFlash 偏移 0x7000
BLE_SNV_BLOCK256SNV 块大小
BLE_SNV_NUM1SNV 块数量
BLE_BUFF_MAX_LEN27单包最大长度 (ATT_MTU=23)
BLE_TX_NUM_EVENT1单连接事件最多发包数
PERIPHERAL_MAX_CONNECTION1从机最大连接数

低功耗与唤醒 ​

配置项值说明
LIGHT 默认超时1 分钟以 DataFlash / Studio 配置为准,0=禁用
DEEP 默认延时LIGHT 后 1 分钟总空闲默认约 2 分钟,0=禁用
按键唤醒启用按键可唤醒休眠
USB 唤醒启用USB 插入可唤醒

USB 已完成枚举或检测到充电时不会进入自动低功耗。具体用户行为见 无线款使用手册,实现见 kbd_mode.c 和 DataFlash 中的 system 配置。


相关文档 ​