KCOM4串口转键鼠控制线测试说明
1.KOCM4介绍
KCOM4是一款最新开发的串口转键盘鼠标控制线,采用32位内核,最大60Mhz的工作频率,完美适用于游戏挂机等应用场景(如果是用在工作电脑控制或展厅电脑控制推荐CH9329双头线)。KCOM4支持普通键盘、相对鼠标、轨迹移动、通信加密修改全部硬件信息、固件升级等功能。KCOM4的所有硬件信息是从一套真实键鼠设备抓包来的,不管从哪里看都是和真实键鼠一模一样。串口通信配置:波特率-115200,停止位-1,数据位-8,校验位-无。使用KCOM4的基本技能是能会发串口16进制数据,并且会2进制和16进制数的转换。
什么是普通键盘?多媒体键盘?相对鼠标?绝对鼠标?
普通键盘:支持所有多功能键(ctrl/alt/shift)+6个普通按键(a/b/1/2/,/.)同时按下;
多媒体键盘:静音、音量+、音量-、关机、休眠、唤醒、计算器等等;
相对坐标鼠标:鼠标移动时是根据光标当前位置进行移动,例如当前位置为(100,100),向右移动50像素,光标就会移动到(150,100);
绝对坐标鼠标:鼠标可以精准移动到任何指定坐标,不管当前光标在哪里;绝对坐标需要知道屏幕分辨率才能精准移动。
产品链接:https://item.taobao.com/item.htm?spm=a21dvs.23580594.0.0.4fee645e4fEvj2&ft=t&id=729839977151
KCOM4资料下载链接:https://pan.baidu.com/s/1AVg2PTXOBhKiTR2SLPVDHA?pwd=1234
2.功能简介
2.1键盘功能
KCOM4不支持多媒体键盘功能,因为抓包的那套键鼠设备本身不支持多媒体键盘;大部分普通键盘是不支持多媒体键盘功能的。而且多媒体功能在游戏操作上基本也很少会用到的。
普通键盘功能可以实现键盘的所有功能,按键按下、组合键按下等等。按键按下需要发送松开的指令,否则按键是会被电脑一直记录按下的。KCOM4也支持自动松开指令和随机延时按键松开,用户按照格式发送指令,KCOM4会根据要求随机延时或者固定延时发送松开按键的指令。
这里介绍一下键盘和电脑通信的一个大概流程:首先键盘插入电脑后就会告诉电脑键盘的数据上报间隔,快的键盘是一般1ms,慢一点的键盘是一般10ms。然后电脑就会每间隔这个时间询问一次键盘有没有新数据,有的话就处理,没有的话就跳过。键盘按下某个按键(不松开),键盘就会把这个按键按下的数据发给电脑,由电脑记录这个按键按下;注意的是,就算你按键一直不松开,键盘也不会有任何新数据发给电脑的,有很多人以为是键盘不停发按下的指令给电脑,这是错误的。等到按键松开后,键盘再把松开的指令发给电脑,这个时候电脑才会松开这个按键。
2.2鼠标功能
KCOM4不支持绝对坐标鼠标功能,这个绝对坐标鼠标功能在游戏上作用就挺大的了,能够精准移动到指定的位置。但是谁家真实鼠标用的是绝对坐标鼠标啊?目前为止我没见过哪个品牌的真实鼠标是绝对坐标鼠标的,向日葵的远程控制设备用的是绝对坐标鼠标。
没有绝对坐标功能,怎么知道当前鼠标光标的位置呢?
虽然不知道鼠标光标当前位置,那我直接把光标移动到左上角0.0的位置,然后再进行相对移动就可以了。
KCOM4支持轨迹移动功能,不过轨迹移动不是特别精确,一般差几个像素。建议执行完轨迹移动后再根据位置进行一次相对移动。轨迹移动带有加减速算法,就是轨迹移动时先快后慢来移动;轨迹移动的原理其实就是把需要移动的距离拆分成若干个小位置,每次移动随机1-20个像素。
鼠标移动小知识:正常使用鼠标的时候,每次移动的像素一般是1-10个像素;故意把鼠标移动很快一般是20-50个像素左右。所以如果想自己通过相对坐标鼠标做轨迹移动的话,就每次只发送几个像素的移动来模拟轨迹。
KCOM4鼠标回报率是多少?
1000,这个鼠标回报率其实就是鼠标数据包的上报间隔时间,KCOM4设定的上报间隔是1ms,最大1秒钟能上报1000个数据包,所以回报率就是1000。你间隔10ms发一次数据,测出来的回报率就是100左右,主要和你发送数据的间隔有关。
2.3通信加密
目前市面上使用串口通信的键鼠控制产品很少有使用加密的,最主要的是他们使用的是8位内核的芯片,芯片最大频率一般在24Mhz内,做加密的话就会影响正常系统运行了。KCOM4采用的是AES-128(ECB)加密方式,用户可以自定义加密密钥,并且在指令中加入随机字节,可以确保同一个控制指令加密后每次都不一样。
为什么要做加密?
第三方软件能在你毫不知情的情况下查看你串口的通信所有内容,然后再和键鼠动作比对一下就能轻松知道是怎么回事了。想解决这个问题只有两个办法,1是主控机和被控机分开;2是通信加密,就算对方监控你串口通信的内容,也无法解析出是什么数据。
2.4固件升级
做游戏工作室的有时候遇到的情况就是入了一批盒子,上线没多久就挂了,盒子直接原地报废。KCOM4支持用户自行升级固件,就算KCOM4的键鼠信息被记录了,只要我再重新买一套真实键鼠设备然后再抓包硬件信息重新生成一套固件,用户再自己烧录进去,就是全新的一套硬件信息了。
有人就这么说了,你这样子没用的,人家能知道你用啥芯片,直接封你芯片或者其他啥啥啥的。
能这么说的基本就是小白或者不懂技术,我虽然不算多牛,但是在USB键鼠这块还是略懂一二。有兴趣的朋友可以自行学一下USB键鼠设备的一些描述符和报表就会知道一套USB键鼠设备是怎么组成的了。
当然,只能用我的升级工具和我提供的升级固件。并且不能破坏原来的固件,有些会搞硬件开发的朋友一旦擦除了原来的固件,就没办法再升级回我的固件。
3.测试流程
为了测试收到的产品是否有问题,请按照以下流程测试产品:
1.把KCOM4的两个USB头都插入本机,观察指示灯是否常亮,常亮代表正常,闪烁代表处于等待升级状态;
2.打开设备管理器,查看端口那一栏有没有CH340设备。如果没有就需要安装CH340驱动。这个驱动是装给主控端的,被控端是免驱的;如果是主控和被控不同电脑的情况下,只需要在主控电脑安装驱动即可。
CH340驱动链接:CH341SER.EXE - 南京沁恒微电子股份有限公司
3.打卡资料中的“KCOM4测试软件V1.0.exe”软件;提供易语言的源代码,自己写脚本可以参考一下;
4.端口号处选择和设备管理器一样的COM号,然后打开串口;左边的标签变成红色代表打开串口成功,灰色代表没有打开串口;
5.点击配置参数区的读取按钮,如果有参数被读会,说明工作正常;
6.其他功能可以直接根据界面显示进行测试;按键类(键盘按键,鼠标按键)都是需要发送松开指令的,否则电脑会一直记录这个按键按下,松开就是把键值改成00发送就是松开了。
用测试软件测试正常,自己写脚本发数据没反应?
这个问题有两种可能:
1.串口配置不对,通信对不上,串口通信配置:波特率-115200,停止位-1,数据位-8,校验位-无;检查脚本的通信配置是否和这个一致;
2.发送的数据格式不对,指令格式都是16进制(hex)格式;自己学习一下自己用的编程语言怎么发16进制串口数据。