一种快速精确的KVM远程鼠标同步方法
3 KVM 系统总体结构
本文设计并实现了基于该鼠标同步方法的KVM 系统,主要分为3 个模块:(1)运行于控制主机的客户端;(2)连接多台被控机的KVM 切换系统;(3)通过USB 接口与被控机相连,并且能模拟HID 设备的控制模块。KVM 系统总体结构如图2 所示。
图2 KVM 系统总体结构
KVM 系统3 个模块功能定义如下:
(1)控制主机客户端
本文设计的KVM 系统基于B/S 框架,控制主机组合鼠标、键盘、显示器等I/O 设备,通过Web 页面调用操作界面。
界面经TCP/IP 网络接收被控机屏幕画面并解码显示,同时检测本机鼠标、键盘事件,将数据发送至KVM 切换系统。由于被控机的视频流发送负荷达5 Mb/s~10 Mb/s,为避免鼠标数据延迟,因此,本系统采用独立的TCP/IP 连接发送鼠标键盘数据。
(2)KVM 切换系统
KVM 切换系统的核心是:运行主要内核程序及服务器程序,并通过HPI 接口连接多台被控机进行切换控制的嵌入式处理器。处理器网络接收鼠标数据并完成坐标处理算法,并将数据发送至与相应被控机连接的HID 设备控制模块。
(3)HID 设备控制模块
采用USB2.0 接口与被控机相连,支持480 Mb/s 的传输速率。经HPI 接收KVM 切换系统的鼠标数据并对报告描述符结构进行设置,通过中断传输方式传送至被控机,实现鼠标设备的模拟控制。该模块是KVM 系统中完成HID 设备数据通信的核心模块。
4 实验与结果分析
4.1 延时测试
本文分别对KVM 鼠标操作总体的延迟时间,以及同步方法模块的延迟时间进行测试,定义如下:
(1)总体延时
本文采用回环模式对总体延时进行测试。回环模式主要通过在主控机和被控机上形成对同一事件的循环响应,获取两者的响应时间差值,以得出延迟时间。具体实现方法为:在主控机和被控机上同时运行一个测试客户端,鼠标单击主控机的客户端界面,界面响应事件并发出UDP 数据包标识时间;事件传递至被控机客户端后,被控机客户端同样响应该事件并发出UDP 包。通过网络工具捕捉这2 个UDP包,并计算两者之间的时间差值,即得到总体的鼠标延时。
鼠标总体延时测试的实现流程如图3 所示。
图3 总体延时测试
(2)同步方法延时
考虑到控制主机性能和网络环境等不固定因素,本文同时对鼠标同步方法的延迟时间进行测试。同步方法延时测试主要采用硬件中断方式。同样在主控机和被控机上各运行一个客户端,并对主控机客户端进行鼠标单击操作。当鼠标操作数据由主控机客户端传输到处理器时,处理器产生中断并拉高电平;被控机客户端接收到鼠标操作数据,发出UDP 包作为回应,当处理器接收到被控机端的UDP 包时拉低电平,从而形成一个时间脉冲。忽略UDP 包的网络传输时间,则该时间脉冲宽度即可近似为同步方法的延迟时间。同步方法延时测试的实现流程如图4 所示。
图4 同步方法延时测试
回环模式测试最终所得的总体鼠标延时及同步方法延时测试结果如表5 所示。
表5 延时测试结果
4.2 同步精确度
KVM 测试运行12 h,并在被控机上播放MKV 视频以增加网络传输负荷。定期进行鼠标操作,且操作时间保持30 h以上。经测试评估,在绝对鼠标同步模式下,长时间使用鼠标不会出现位置偏差;在相对鼠标同步模式下,正常状态操作鼠标不会出现位置不同步现象,但在大范围区间内快速移动鼠标时会有约1 mm 的位置偏差,但鼠标可以在移动中自动更正重新达到重合。
5 结束语
本文提出一种快速精确的KVM 远程鼠标同步方法。采用USB2.0 接口实现数据高速传输,通过加入自适应残差处理和双字节坐标表示法改进传统相对鼠标同步方式,即实现鼠标同步方式绝对化。测试结果表明,该方法能提高鼠标定位的精准度,系统能够更快处理鼠标事务。以后将不断对本文方法进行优化,实现高速度与高精度更好的融合。
评论