一種快速精確的KVM遠(yuǎn)程鼠標(biāo)同步方法
表4 絕對(duì)鼠標(biāo)同步的報(bào)告描述符
3 KVM 系統(tǒng)總體結(jié)構(gòu)
本文設(shè)計(jì)并實(shí)現(xiàn)了基于該鼠標(biāo)同步方法的KVM 系統(tǒng),主要分為3 個(gè)模塊:(1)運(yùn)行于控制主機(jī)的客戶(hù)端;(2)連接多臺(tái)被控機(jī)的KVM 切換系統(tǒng);(3)通過(guò)USB 接口與被控機(jī)相連,并且能模擬HID 設(shè)備的控制模塊。KVM 系統(tǒng)總體結(jié)構(gòu)如圖2 所示。
圖2 KVM 系統(tǒng)總體結(jié)構(gòu)
KVM 系統(tǒng)3 個(gè)模塊功能定義如下:
(1)控制主機(jī)客戶(hù)端
本文設(shè)計(jì)的KVM 系統(tǒng)基于B/S 框架,控制主機(jī)組合鼠標(biāo)、鍵盤(pán)、顯示器等I/O 設(shè)備,通過(guò)Web 頁(yè)面調(diào)用操作界面。
界面經(jīng)TCP/IP 網(wǎng)絡(luò)接收被控機(jī)屏幕畫(huà)面并解碼顯示,同時(shí)檢測(cè)本機(jī)鼠標(biāo)、鍵盤(pán)事件,將數(shù)據(jù)發(fā)送至KVM 切換系統(tǒng)。由于被控機(jī)的視頻流發(fā)送負(fù)荷達(dá)5 Mb/s~10 Mb/s,為避免鼠標(biāo)數(shù)據(jù)延遲,因此,本系統(tǒng)采用獨(dú)立的TCP/IP 連接發(fā)送鼠標(biāo)鍵盤(pán)數(shù)據(jù)。
(2)KVM 切換系統(tǒng)
KVM 切換系統(tǒng)的核心是:運(yùn)行主要內(nèi)核程序及服務(wù)器程序,并通過(guò)HPI 接口連接多臺(tái)被控機(jī)進(jìn)行切換控制的嵌入式處理器。處理器網(wǎng)絡(luò)接收鼠標(biāo)數(shù)據(jù)并完成坐標(biāo)處理算法,并將數(shù)據(jù)發(fā)送至與相應(yīng)被控機(jī)連接的HID 設(shè)備控制模塊。
(3)HID 設(shè)備控制模塊
采用USB2.0 接口與被控機(jī)相連,支持480 Mb/s 的傳輸速率。經(jīng)HPI 接收KVM 切換系統(tǒng)的鼠標(biāo)數(shù)據(jù)并對(duì)報(bào)告描述符結(jié)構(gòu)進(jìn)行設(shè)置,通過(guò)中斷傳輸方式傳送至被控機(jī),實(shí)現(xiàn)鼠標(biāo)設(shè)備的模擬控制。該模塊是KVM 系統(tǒng)中完成HID 設(shè)備數(shù)據(jù)通信的核心模塊。
4 實(shí)驗(yàn)與結(jié)果分析
4.1 延時(shí)測(cè)試
本文分別對(duì)KVM 鼠標(biāo)操作總體的延遲時(shí)間,以及同步方法模塊的延遲時(shí)間進(jìn)行測(cè)試,定義如下:
(1)總體延時(shí)
本文采用回環(huán)模式對(duì)總體延時(shí)進(jìn)行測(cè)試?;丨h(huán)模式主要通過(guò)在主控機(jī)和被控機(jī)上形成對(duì)同一事件的循環(huán)響應(yīng),獲取兩者的響應(yīng)時(shí)間差值,以得出延遲時(shí)間。具體實(shí)現(xiàn)方法為:在主控機(jī)和被控機(jī)上同時(shí)運(yùn)行一個(gè)測(cè)試客戶(hù)端,鼠標(biāo)單擊主控機(jī)的客戶(hù)端界面,界面響應(yīng)事件并發(fā)出UDP 數(shù)據(jù)包標(biāo)識(shí)時(shí)間;事件傳遞至被控機(jī)客戶(hù)端后,被控機(jī)客戶(hù)端同樣響應(yīng)該事件并發(fā)出UDP 包。通過(guò)網(wǎng)絡(luò)工具捕捉這2 個(gè)UDP包,并計(jì)算兩者之間的時(shí)間差值,即得到總體的鼠標(biāo)延時(shí)。
鼠標(biāo)總體延時(shí)測(cè)試的實(shí)現(xiàn)流程如圖3 所示。
圖3 總體延時(shí)測(cè)試
(2)同步方法延時(shí)
考慮到控制主機(jī)性能和網(wǎng)絡(luò)環(huán)境等不固定因素,本文同時(shí)對(duì)鼠標(biāo)同步方法的延遲時(shí)間進(jìn)行測(cè)試。同步方法延時(shí)測(cè)試主要采用硬件中斷方式。同樣在主控機(jī)和被控機(jī)上各運(yùn)行一個(gè)客戶(hù)端,并對(duì)主控機(jī)客戶(hù)端進(jìn)行鼠標(biāo)單擊操作。當(dāng)鼠標(biāo)操作數(shù)據(jù)由主控機(jī)客戶(hù)端傳輸?shù)教幚砥鲿r(shí),處理器產(chǎn)生中斷并拉高電平;被控機(jī)客戶(hù)端接收到鼠標(biāo)操作數(shù)據(jù),發(fā)出UDP 包作為回應(yīng),當(dāng)處理器接收到被控機(jī)端的UDP 包時(shí)拉低電平,從而形成一個(gè)時(shí)間脈沖。忽略UDP 包的網(wǎng)絡(luò)傳輸時(shí)間,則該時(shí)間脈沖寬度即可近似為同步方法的延遲時(shí)間。同步方法延時(shí)測(cè)試的實(shí)現(xiàn)流程如圖4 所示。
圖4 同步方法延時(shí)測(cè)試
回環(huán)模式測(cè)試最終所得的總體鼠標(biāo)延時(shí)及同步方法延時(shí)測(cè)試結(jié)果如表5 所示。
表5 延時(shí)測(cè)試結(jié)果
4.2 同步精確度
KVM 測(cè)試運(yùn)行12 h,并在被控機(jī)上播放MKV 視頻以增加網(wǎng)絡(luò)傳輸負(fù)荷。定期進(jìn)行鼠標(biāo)操作,且操作時(shí)間保持30 h以上。經(jīng)測(cè)試評(píng)估,在絕對(duì)鼠標(biāo)同步模式下,長(zhǎng)時(shí)間使用鼠標(biāo)不會(huì)出現(xiàn)位置偏差;在相對(duì)鼠標(biāo)同步模式下,正常狀態(tài)操作鼠標(biāo)不會(huì)出現(xiàn)位置不同步現(xiàn)象,但在大范圍區(qū)間內(nèi)快速移動(dòng)鼠標(biāo)時(shí)會(huì)有約1 mm 的位置偏差,但鼠標(biāo)可以在移動(dòng)中自動(dòng)更正重新達(dá)到重合。
5 結(jié)束語(yǔ)
本文提出一種快速精確的KVM 遠(yuǎn)程鼠標(biāo)同步方法。采用USB2.0 接口實(shí)現(xiàn)數(shù)據(jù)高速傳輸,通過(guò)加入自適應(yīng)殘差處理和雙字節(jié)坐標(biāo)表示法改進(jìn)傳統(tǒng)相對(duì)鼠標(biāo)同步方式,即實(shí)現(xiàn)鼠標(biāo)同步方式絕對(duì)化。測(cè)試結(jié)果表明,該方法能提高鼠標(biāo)定位的精準(zhǔn)度,系統(tǒng)能夠更快處理鼠標(biāo)事務(wù)。以后將不斷對(duì)本文方法進(jìn)行優(yōu)化,實(shí)現(xiàn)高速度與高精度更好的融合。
評(píng)論