功能描述
热键
组合键 |
功能 |
|---|---|
Fn+Insert |
切换至蓝牙模式 |
Fn+Scroll-Lock |
切换至2.4G模式 |
Fn+Pause |
切换至USB模式 |
Fn+1 |
切换至蓝牙主机1 (短按:可连接定向广播 长按:可连接非定向广播) |
Fn+2 |
切换至蓝牙主机2 (短按:可连接定向广播 长按:可连接非定向广播) |
Fn+3 |
切换至蓝牙主机3 (短按:可连接定向广播 长按:可连接非定向广播) |
Fn+4 |
切换至蓝牙主机4 (短按:可连接定向广播 长按:可连接非定向广播) |
Fn+5 |
RF模式开启配对 |
Fn+F1 |
静音 |
Fn+F2 |
降低音量 |
Fn+F3 |
提高音量 |
Fn+F6 |
提高背光灯亮度 |
Fn+F7 |
降低背光灯亮度 |
Fn+F8 |
打开/关闭背光灯 |
按键与键盘
扫描机制
按键默认10ms扫描一次,每次扫描结果与上次扫描对比,若有变化则处理数据。在进入睡眠模式后,若干时间内 无按键触发则暂停扫描,并开启GPIO中断,通过GPIO中断发送消息再次触发按键扫描。
注:在中断中申请内存发送消息容易造成内存出错!此处做法是仅在睡眠过程中打开GPIO中断, 所以GPIO中断并不会打断其他内存相关操作。
上报机制
键盘支持全键无冲,此方案模拟了两种键盘,位键盘和通用键盘,在键值数量大于通用键盘一次上报的数量时,多出键值通过为键盘上报。
模式
按下组合键切换模式后,程序将模式写入Date flash,然后将芯片复位。 芯片复位后,根据DATA FLASH中的配置信息选择不同的模式,所以各个模式之间互不干扰。
BLE模式
低功耗蓝牙模式为默认模式,符合Bluetooth Low Energy 5.0 规范。
多主机绑定,短按组合键切换主机,长按组合键可重新绑定主机
广播间隔100ms
默认连接参数(8-15, 5, 500),低功耗连接参数(40-80, 5, 500),若干时间后无键值上报,则更新连接参数为低功耗连接参数
最大包长度(BLE_BUFF_MAX_LEN) 31bytes
单次连接间隔最大包数量(BLE_BUFF_NUM - 1) 4
USB模式
使用芯片集成USB2.0全速收发器PHY
使用全速设备模式
DMA发送数据
支持远程唤醒
支持低功耗,主机睡眠后,芯片进入睡眠
2.4G模式
2.4G模式中,键盘并非主动发送数据至2.4G接收器,而是2.4G接收器定时请求数据,目的是为了支持多设备连接,多设备跳频。
通讯间隔:通讯间隔为数据收发的最小单元
默认通讯间隔为1ms,即2.4G接收器理论上可以1ms接收一包数据
键盘和接收器的通讯间隔不一定是相同的,但键盘的通讯间隔需要和接收器的通讯间隔成倍数关系
对于多个设备连接的情况下,2.4G接收器每个通讯间隔只能请求一个设备的数据(如当前设备有 键盘1,键盘2,通讯间隔为1ms,则第一毫秒请求键盘1,第二毫秒请求键盘2,第三毫秒请求键盘1…)
配对:首先键盘按下热键触发配对,然后2.4G接收器重新上电进入配对模式,最后双方交互数据,配对结束
2.4G接收器仅在上电后若干时间内处于配对状态
键盘存在配对超时,若干时间内未配对成功退出配对模式
一次配对只能与一个设备与2.4G接收器建立配对
未配对和配对阶段使用默认通讯地址,配对成功后将双方MAC地址相加作为新的通讯地址
跳频:每次通讯间隔后更新通讯频段,所谓跳频只是更改当前的通讯通道。举例:配对成功后,第一个通讯间隔(默认1ms)使用通道0,第二个通讯间隔使用同道1,以此类推。
不同的设备使用不同的channel map
配对阶段使用默认的频段
时间同步
2.4G接收器使用的时32MHz时钟源,其偏差较少,所以以2.4G接收端作为时钟基准,以此同步键盘设备
键盘在开启接收窗口后未接收到期望数据,会在之后的通讯间隔重新打开接收窗口,同时扩大接收窗口,当接收窗口大于(channel map * 通讯间隔)时,判断为同步中断
同步中断后持续重试若干次(当前未5次),若持续失败,放弃同步
数据发送
每次数据发送(包括心跳包)触发一次时间同步
键盘在产生数据时打开接收窗口,接收数据请求,然后再发送键值
没有键值产生不打开接收窗口,但为保证同步,每隔100ms发送一次心跳包(心跳包间隔取决于32K的精度,使用外部32K可配置更大的心跳包间隔)
数据重发 在发送失败后(打开接收窗口未获取到数据),一直重发直至同步中断