当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]一种快速精确的KVM远程鼠标同步方法

 摘 要:针对键盘显示器鼠标(KVM)中远程被控鼠标与主机鼠标的同步要求,提出一种基于高速USB2.0-HID 类规范的鼠标同步方法。在传统相对鼠标同步方法中加入自适应"残差处理",去除相对偏移的累积误差,增加一种绝对鼠标同步方法,用双字节绝对坐标值代替传统单字节相对坐标偏移进行定位。实验结果表明,该方法使同步延迟时间降至3 ms 以下,能有效提高同步的精确性和时效性。

1 概述

KVM 即键盘(Keyboard)、显示器(Video)、鼠标(Mouse)的缩写组合[1].由于网络延时或被控机分辨率不在KVM 可控范围内等因素,传统KVM 在鼠标同步方面存在被控机鼠标与主机鼠标位置偏差过大、鼠标操作延缓甚至无法响应等问题。故提高鼠标同步的精确性和时效性,成为KVM 技术发展的一项重要内容。目前支持设备通用连接并具有高传输速率的USB 接口已成为外设连接PC 主机的主流方式。

USB2.0 接口标准在原有的12 Mb/s 和1.5 Mb/s 传输速率基础上加入480 Mb/s 的高速支持,使单位时间内能够传输和处理更多的事务数据。键盘、鼠标等支持人与计算机交互的设备归为人接口设备(Human Interface Device, HID)类,是最为广泛使用的USB 设备,并已得到Windows/Linux 等操作系统内置驱动程序的良好支持。本文依据HID 类规范协议,通过高速USB2.0 的硬件支持,向被控机发送信令数据模拟鼠标操作。

2 鼠标同步方法

2.1 实现原理

KVM 核心技术是通过键盘、鼠标、显示器的适当配置,对KVM 切换器的多台远程被控机进行管理,实现用一套I/O外设去访问和操作多台被控机。图1 为其框架示意图。

图1 KVM 框架示意图

HID 类设备的信息以描述符形式存储在设备ROM 中,通过设置、检测相应描述符结构完成设备与主机之间信令、数据的传输和获取。HID 类设备的具体应用数据如键盘键值、鼠标指针值等主要用报告描述符进行描述。报告描述符由多片规则则条目的信息由片段组成,可由HID 类规范自定义数据表达类型。主要条目第3 位数值(Bit2{Absolute(0)|Relative(1)})标识设备操作使用是绝对模式还是相对模式,从而在支持鼠标同步方法中,有绝对同步和相对同步这2 种方式。鼠标数据内容包括鼠标的按键状态、坐标位置和滚轮滚动值等。

传输方式根据鼠标应用数据量较小、不定时发生、延迟受限等特点,采用对时间有严格限制的中断传输方式。同时,高速USB2.0 支持单个事务可传送最大数据包的容量达1 024 Byte,轮询事务的时间间隔仅为125 Fs,支持传输速率可达到24.5 Mb/s.

2.2 相对鼠标同步

相对鼠标同步是根据计算前后2 次鼠标坐标的差值,对当前鼠标位置进行偏移。由于条目以1 Byte 为单位,因此传输单字节坐标偏移的相对同步方式最早应用于KVM 的鼠标同步。相对鼠标同步的有效数据区定义如表1 所示。

表1 相对鼠标同步数据区定义

由字节的低3 位,即0 bit~2 bit 分别表示滚轮、右键和左键按下或弹起的状态,即按键状态。

相对偏移差值数值范围为?127~127,当差值在水平方向(X 轴)或竖直方向(Y 轴)大于127 时,需要分多次进行移动,即循环多次发送差值数据。滚轮以±1表示向上或向下滚动一格,并可累计滚动格数,以支持更多页面滚动。本文用汇编语言定义相对鼠标同步的报告描述符内容如表2 所示。

表2 相对鼠标同步的报告描述符

通过界面获得的鼠标坐标值以一个像素为单位,较实际位置有一定的精度损失。且相对鼠标同步每次的偏移值均以上次坐标为基准,数值损失将不断累加。针对此问题,本文在相对同步方式中增加了自适应的误差弥补,对累积误差进行检测和处理,即"残差处理".该处理方法主要采用坐标值精度转换、累计残差、足1 补齐的方式,具体实现方法如下所述:

(1)坐标值精度转换

采用short 型双字节数值表示法,以屏幕左上角为原点,且无论何种分辨率均定义右下角坐标为(32 767, 32 767),将界面获取的坐标根据屏幕分辨率按比例进行转换。

同时记录本次的双字节绝对坐标位置作为下次偏移的基准,减少以偏移差值为基准而引入的累积误差。

(2)残差累计及补偿

使用double 型变量累计每次坐标值转为short 整型时丢弃的小数值。当累计值大于1 时,在当前坐标差值上补1 再进行发送。同时定时检测误差累计值大于1 的次数频率,当超过一定程度时,采取自动重新同步。即先进行13 次(?127,?127)坐标偏移,将鼠标移动到屏幕左上角,然后再用一次至多次偏移,将鼠标定位到控制主机记录的最后坐标位置。

然后采用13 次坐标偏移,若以1 920×1 080 分辨率屏幕为上界,则在当前主流显示器中,均可以将鼠标移至屏幕左上角。

2.3 绝对鼠标同步

绝对鼠标同步在经过直接传输换算后,其双字节绝对坐标值的每次同步,均需要以原点为基准重新定位鼠标,以去除与前一次鼠标位置的关联,由此避免了相对偏移造成的误差累积。其有效同步数据区定义如表3 所示。

表3 绝对鼠标同步的数据区定义

绝对鼠标同步具有更精确的同步效果,并且需要占用报告描述符条目的2 Byte 空间来表示坐标值(滚轮值),故必须得到操作系统内置HID 类驱动程序的支持。现代Windows系列(XP/Win7/Vista 等)、Mac OS 10.5 以及Linux 2.6 版本等操作系统均可支持绝对鼠标模式,OS/2 系统也于2010 年5 月发布xsmouse00.zip 提供支持该模式的鼠标驱动程序。由于绝对鼠标同步方法采用双字节表示有效数据,其报告描述符结构设置与相对同步方式不同,描述符内容如表4 所示。[!--empirenews.page--]

表4 绝对鼠标同步的报告描述符

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 接口实现数据高速传输,通过加入自适应"残差处理"和双字节坐标表示法改进传统相对鼠标同步方式,即实现鼠标同步方式绝对化。测试结果表明,该方法能提高鼠标定位的精准度,系统能够更快处理鼠标事务。以后将不断对本文方法进行优化,实现高速度与高精度更好的融合。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

FTDI Chip高速USB 2.0系列FT4232HA是业界首款USB2.0高速转四通道UART或双通道MPSSE的车规级芯片。

关键字: USB2.0 车规级芯片 Windows

TCP,全称为传输控制协议(Transmission Control Protocol),是一种面向连接的、可靠的、基于字节流的传输层通信协议。它在OSI七层协议模型的网络层中起着核心作用,为FTP、SMTP、POP3、...

关键字: TCP通信协议 UDP

Iperf 是一个网络性能测试工具,可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

关键字: Iperf 网络性能测试工具 UDP

在进行socket通信开发时,一般会用到TCP或UDP这两种传输层协议,UDP(User Datagram Protocol)是一种面向无连接的协议,在数据发送前,不需要提前建立连接,它可以更高效地传输数据,但可靠性无法...

关键字: socket TCP UDP

奥升德功能材料宣布在其HiDura™品牌下推出服务于医疗保健市场的医疗级尼龙66树脂和工程材料新产品组合。奥升德功能材料生产的HiDura MED聚酰胺可用于医疗耐用品、药物输送、外科器械、医疗设备和伤口护理。(能动Ne...

关键字: HID 医疗设备

作为全球可信赖的身份和门禁安全解决方案领先者,HID Global的足迹遍及全球超过一百个国家及地区,为数百万人提供安全、便捷的门禁方案。对于HID而言,中国无疑是全球布局中的重要一环,为了更好地服务中国市场,我们不断创...

关键字: HID 智能门禁

上海2022年9月8日 /美通社/ -- 中国家居人齐聚沪上,点亮行业高质量发展之光。9月6日,家居行业盛事——家居产业高质量发展大会暨"月星之夜"在上海月星国际家居生活MALL举行,数百位...

关键字: BSP HID 内核 大赛

上海2022年7月21日 /美通社/ -- 联合国环境规划署发布的食品浪费调研报告指出仅2019年全球就产生了9.31亿吨食物垃圾。这其中13%(1.21亿吨)来自零售行业。而亚洲地区所产生的食物垃圾达到全球总量的一半。...

关键字: HID RFID技术 RFID标签 供应链管理

事情从一个健身教练说起吧。李东,自称亚健康终结者,尝试使用互联网的模式拓展自己的业务。在某款新开发的聊天软件琛琛上发布广告。键盘说来就来。疯狂发送"李东",回车发送!,"亚健康终结者",再回车发送!还记得四层网络协议长什...

关键字: TCP UDP 数据包 应用层

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据包协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 7...

关键字: UDP TCP IP
关闭
关闭