通用三模键盘&三模鼠标(三模模组)通讯协议

本方案来自于沁恒三模键鼠方案(以成品形式售出),有合作意向可咨询沁恒商务组:https://www.wch.cn/services/sale_support.html

通用三模模组方案说明:通用三模键盘&三模鼠标(三模模组)方案说明

通信概述

串口通讯串口采用标准串口通信协议,默认通讯波特率115200,最高可设置至2.5M,8bit数据位,1bit停止位,无校验位。

SPI通讯:工作在模式0主机模式(CPOL=0,CPHA=0),默认时钟频率为250KHz,最高可设置至6M,当需要模组接收数据时,MCU应将IRQ引脚拉低,模组接收数据结束后MCU应将IRQ引脚拉高;同理,当模组需要发送数据时,模组会将INT引脚拉低,模组发送结束后会将INT引脚拉高。

数据格式为数据帧头+命令码+数据长度+有效数据(N Bytes)+校验和。

字节名称 帧头 命令码 有效数据 检验和
数据长度 1 1 N 1
字节 0x55 CMD Byte0 Byte1 ...... Byte(N-1) CheckSum
 
CheckSum = (0x55+CMD+LEN+Byte0+Byte1+...+Byte(N-1)) & 0xFF;其中,LEN = N & 0xFF;
举例:0x55  0x81  0x08  0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x00  0xE2
     ↑                               ↑ ↑ ↑ ↑ ↑                        
     帧头    CMD      有效数据长度               有效数据                      校验和
 
应答数据
通信过程采用应答方式,当接收到对方发来的命令会返回应答信号,发送方未收到应答时,应间隔 625us 以上再次发送,连续发送 3 次或收到应答信号停止发送。
帧头 应答命令码 数据长度 校验和
0x55 0xF0 0x00 0x45
MCU基本数据
 ①MCU发送给无线模组数据格式如下:
数据内容 CMD DATA数据说明 有效数据长度 备注
标准键盘 0x81 普通按键数据格式8Byte 8

例如 A 按下 0x55 0x81 0x08 0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x00 0xE2

左 Shift 按下 0x55 0x81 0x08 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xE0

全键盘 0x82 15Byte 按 bit 传输数据格式 15 例如 A 按下 0x55 0x82 0x0F 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xF6
多媒体 0x83 2Byte,先低字节再高字节 2 例如 静音按键 0x55 0x83 0x02 0xE2 0x00 0xBC
系统控制 0x84 1Byte数据 1

POWER:bit0

SLEEP:bit1

WAKEUP:bit2

FN数据 0x85 1Byte数据 1

FN 按下 0x10

FN 弹起 0x00

鼠标数据 0x86 5Byte鼠标数据 5 MouseKey、Axis_X、Axis_Y、Axis_Z、TWheel
下发电量数据 0x87 0-100 ,1Byte数据 1 用于MCU自行采集电量,通过模组上报0-100%
透传数据 0x88 自定义数据,不超过32字节 n(n≤32) 透传给USB或dongle上位机,此命令与上报均无应答,USB或dongle转发给上位机的数据只包含数据内容
BLE透传数据 0x89 自定义数据,不超过32字节 n(n≤32) 透传给手机APP,此命令与上报均无应答,转发给手机的数据只包含数据内容
写EEPROM 0x8A

1Byte 地址编号+1Byte 数据长度

+最多32Byte 有效数据

n(n≤32)

模组提供 8K 大小的 EEPROM 供存储用户数据,地址从 0x0000 开始,每个地址编号对应 32 字节数据,

例如从 0x100 地址开始写入 90 字节数据,则应发送: 0x08 0x20+32Byte; 0x09 0x20+32Byte; 0x0A 0x1A+26Byte;

应答信号将在 EEPROM 操作完成之后返回,每一条指令应在 收到上一条指令的应答信号之后再发送。

读EEPROM 0x8B

1Byte 地址编号+1Byte 数据长度

2

应答信号将在 EEPROM 操作完成之后返回,对应读取的数据将在应答信号之后以上报信息的方式返回

 
②MCU发送控制命令给无线模组格式如下:
控制命令说明 命令码 数据长度 备注
切换到空闲模式 0x40 0 用于MCU使用自带USB功能时,将模组切换到空闲状态
切换到USB模式 0x41 0 模组切换到USB模式
切换到2.4G模式 0x42 0 模组切换到2.4G模式
切换到蓝牙模式1 0x43 0 模组切换到蓝牙设备1
切换到蓝牙模式2 0x44 0 模组切换到蓝牙设备2
切换到蓝牙模式3 0x45 0 模组切换到蓝牙设备3
切换到蓝牙模式4 0x46 0 模组切换到蓝牙设备4
切换到蓝牙模式5 0x47 0 模组切换到蓝牙设备5
配对命令 0x48 0 模组在2.4G或蓝牙模式时,进入配对状态
清除配对信息 0x49 0 清除2.4G以及蓝牙所有配对信息
电量信息查询 0x4A 0 用于客户使用模组采集电量,返回电压值
 
模组上报信息
模组上报命令说明 命令码 数据长度 有效数据 备注
键盘指示灯状态 0x20 1 LED status NUM/Caps/ScrLK状态
模组切换模式成功 0x21 1 0x01 该连接通道开始配对新设备
模组连接成功 0x21 1 0x02  
模组连接断开 0x21 1 0x03  
模组进入配对状态 0x21 1 0x04  
模组进入回连状态 0x21 1 0x05 该连接通道开始连接配对过的设备
模组无法回连 0x21 1 0x06 该链接通道未配对过
模组进入休眠 0x21 1 0x07 模组断开连接进入休眠
模组进入低功耗 0x22 1 0x08 模组进入低功耗模式
上报电量信息 0x22 2 电压值 例如采样电压为2300mV,则上报0xFC 0x08
上报透传数据 0x23 n n(n≤32) 透传上位机下发的数据给MCU
上报BLE透传数据 0x24 n n(n≤32) 透传手机APP下发的数据给MCU
上报EEPROM信息 0x25 n

1Byte 地址编号

+1Byte数 据长度

+最多32Byte 数据

当收到读取 EEPROM 命令后,

信息上报读取的数据


 MCU配置模组命令
配置命令说明 命令码 数据长度 有效数据 备注
配置蓝牙设备名称 0xC0 n(n≤22)   最长22字节,例如名称“123”,则数据为0x31 0x32 0x33
配置VID/PID 0xC1 4 VID+PID 例如VID为0x055C,PID为0x16DC,则数据为0x5C 0x05 0xDC 0x16
配置厂商字符串 0xC2 n   例如厂商名称“Lo123ach”,则数据为0x4C 0x6F 0x31 0x32 0x33 0x61 0x63 0x68
配置产品字符串 0xC3 n  
配置串行序列号 0xC4 n  
配置串口波特率 0xC5 4 波特率值

例如配置波特率921600,则数据为0x00 0x10 0x0E 0x00,

如果有应答,会在应答之后再切换到新的波特率

配置SPI分频系数

0xC5 

SPI分频系数

(参数范围10-240)

 
 

系统主频默认60M,

例如配置SPI分频系数为60,则数据为0x3C 0x00 0x00 0x00,如果有应答,会在应答之后再切到新的SPI分频系数,

分频系数最高为240

配置状态上报是否应答 0xC6 1 0x00/0x10

配置为0x00关闭应答,立即生效

配置为0x01开启应答,上报信息如果没有收到应答,将会间隔1.875ms重传数据,最多重传3次

配置休眠超时 0xC7 2 多少秒无数据进入休眠 例如30分钟后进入休眠,则数据为0x08 0x07 (设定时间不得小于10秒)
配置连接低功耗超时 0xC8 2 多少秒无数据进入低功耗

例如5s后进入低功耗,则数据为0x05 0x00,

默认连接状态中5s无数据进入低功耗,BLE和2.4G模式配对1分钟未配对完成进入低功耗

配置配对低功耗超时 0xC9 2
配置休眠使能 0xCA 1 0x00/0x01 是否进入休眠,休眠后断开连接,回连过程期间会丢数据
配置低功耗使能 0xCB 1 0x00/0x01

是否进入低功耗,低功耗模式保持连接,不会丢数据,

睡眠后MCU可以通过IO口唤醒模组,也可以通过发送一包无效数据唤醒模组,

唤醒后需要等待至少2ms后才能发送有效数据

配置dongle PID/VID 0xCC 4 VID+PID 与配置模组相同,此命令必须在连接成功后发送,否则无效
配置dongle 厂商字符串 0xCD n  
配置dongle 产品字符串 0xCE n  
配置dongle 串行序列号 0xCF n  
配置定频通道并进入定频模式 0xD0 1 0x00-0x27 收到命令后进入单载波模式,默认发送功率为0dBm,收到切换空闲模式命令后停止
配置定频模式功率 0xD1 1 0x00-0x3F 设置单载波发送功率
进入蓝牙OTA模式 0xD2 0    
配置内部负载电容 0xD3 1 0x00-0x07 调整蓝牙频偏
配置2.4G连接参数 0xD4 4

发包间隔+超时时间

单位:1/32k=0.00003125s

例如配置连接间隔为28(875us),超时时间为1000(31.25ms),则数据为0x1C 0x00 0xE8 0x03
配置DCDC开启 0xD5 1

0x00/0x01

开启DCDC将大幅降低时工作的运行功耗,降低至不开启时的50%-60%,但会略微降低通讯距离

00:关闭,01:开启

模组恢复出厂设置 0xE0 0    
dongle 恢复出厂设置 0xE1 0   此命令必须在连接成功后发送,否则无效
dongle重新启动 0xE2 0   此命令必须在连接成功后发送,否则无效,用于配置完dongle USB信息后重启
posted on 2023-03-13 13:58  ZDeST  阅读(628)  评论(0编辑  收藏  举报