www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]一種快速精確的KVM遠(yuǎn)程鼠標(biāo)同步方法

 摘 要:針對(duì)鍵盤顯示器鼠標(biāo)(KVM)中遠(yuǎn)程被控鼠標(biāo)與主機(jī)鼠標(biāo)的同步要求,提出一種基于高速USB2.0-HID 類規(guī)范的鼠標(biāo)同步方法。在傳統(tǒng)相對(duì)鼠標(biāo)同步方法中加入自適應(yīng)"殘差處理",去除相對(duì)偏移的累積誤差,增加一種絕對(duì)鼠標(biāo)同步方法,用雙字節(jié)絕對(duì)坐標(biāo)值代替?zhèn)鹘y(tǒng)單字節(jié)相對(duì)坐標(biāo)偏移進(jìn)行定位。實(shí)驗(yàn)結(jié)果表明,該方法使同步延遲時(shí)間降至3 ms 以下,能有效提高同步的精確性和時(shí)效性。

1 概述

KVM 即鍵盤(Keyboard)、顯示器(Video)、鼠標(biāo)(Mouse)的縮寫組合[1].由于網(wǎng)絡(luò)延時(shí)或被控機(jī)分辨率不在KVM 可控范圍內(nèi)等因素,傳統(tǒng)KVM 在鼠標(biāo)同步方面存在被控機(jī)鼠標(biāo)與主機(jī)鼠標(biāo)位置偏差過大、鼠標(biāo)操作延緩甚至無法響應(yīng)等問題。故提高鼠標(biāo)同步的精確性和時(shí)效性,成為KVM 技術(shù)發(fā)展的一項(xiàng)重要內(nèi)容。目前支持設(shè)備通用連接并具有高傳輸速率的USB 接口已成為外設(shè)連接PC 主機(jī)的主流方式。

USB2.0 接口標(biāo)準(zhǔn)在原有的12 Mb/s 和1.5 Mb/s 傳輸速率基礎(chǔ)上加入480 Mb/s 的高速支持,使單位時(shí)間內(nèi)能夠傳輸和處理更多的事務(wù)數(shù)據(jù)。鍵盤、鼠標(biāo)等支持人與計(jì)算機(jī)交互的設(shè)備歸為人接口設(shè)備(Human Interface Device, HID)類,是最為廣泛使用的USB 設(shè)備,并已得到Windows/Linux 等操作系統(tǒng)內(nèi)置驅(qū)動(dòng)程序的良好支持。本文依據(jù)HID 類規(guī)范協(xié)議,通過高速USB2.0 的硬件支持,向被控機(jī)發(fā)送信令數(shù)據(jù)模擬鼠標(biāo)操作。

2 鼠標(biāo)同步方法

2.1 實(shí)現(xiàn)原理

KVM 核心技術(shù)是通過鍵盤、鼠標(biāo)、顯示器的適當(dāng)配置,對(duì)KVM 切換器的多臺(tái)遠(yuǎn)程被控機(jī)進(jìn)行管理,實(shí)現(xiàn)用一套I/O外設(shè)去訪問和操作多臺(tái)被控機(jī)。圖1 為其框架示意圖。

圖1 KVM 框架示意圖

HID 類設(shè)備的信息以描述符形式存儲(chǔ)在設(shè)備ROM 中,通過設(shè)置、檢測(cè)相應(yīng)描述符結(jié)構(gòu)完成設(shè)備與主機(jī)之間信令、數(shù)據(jù)的傳輸和獲取。HID 類設(shè)備的具體應(yīng)用數(shù)據(jù)如鍵盤鍵值、鼠標(biāo)指針值等主要用報(bào)告描述符進(jìn)行描述。報(bào)告描述符由多片規(guī)則則條目的信息由片段組成,可由HID 類規(guī)范自定義數(shù)據(jù)表達(dá)類型。主要條目第3 位數(shù)值(Bit2{Absolute(0)|Relative(1)})標(biāo)識(shí)設(shè)備操作使用是絕對(duì)模式還是相對(duì)模式,從而在支持鼠標(biāo)同步方法中,有絕對(duì)同步和相對(duì)同步這2 種方式。鼠標(biāo)數(shù)據(jù)內(nèi)容包括鼠標(biāo)的按鍵狀態(tài)、坐標(biāo)位置和滾輪滾動(dòng)值等。

傳輸方式根據(jù)鼠標(biāo)應(yīng)用數(shù)據(jù)量較小、不定時(shí)發(fā)生、延遲受限等特點(diǎn),采用對(duì)時(shí)間有嚴(yán)格限制的中斷傳輸方式。同時(shí),高速USB2.0 支持單個(gè)事務(wù)可傳送最大數(shù)據(jù)包的容量達(dá)1 024 Byte,輪詢事務(wù)的時(shí)間間隔僅為125 Fs,支持傳輸速率可達(dá)到24.5 Mb/s.

2.2 相對(duì)鼠標(biāo)同步

相對(duì)鼠標(biāo)同步是根據(jù)計(jì)算前后2 次鼠標(biāo)坐標(biāo)的差值,對(duì)當(dāng)前鼠標(biāo)位置進(jìn)行偏移。由于條目以1 Byte 為單位,因此傳輸單字節(jié)坐標(biāo)偏移的相對(duì)同步方式最早應(yīng)用于KVM 的鼠標(biāo)同步。相對(duì)鼠標(biāo)同步的有效數(shù)據(jù)區(qū)定義如表1 所示。

表1 相對(duì)鼠標(biāo)同步數(shù)據(jù)區(qū)定義

由字節(jié)的低3 位,即0 bit~2 bit 分別表示滾輪、右鍵和左鍵按下或彈起的狀態(tài),即按鍵狀態(tài)。

相對(duì)偏移差值數(shù)值范圍為?127~127,當(dāng)差值在水平方向(X 軸)或豎直方向(Y 軸)大于127 時(shí),需要分多次進(jìn)行移動(dòng),即循環(huán)多次發(fā)送差值數(shù)據(jù)。滾輪以±1表示向上或向下滾動(dòng)一格,并可累計(jì)滾動(dòng)格數(shù),以支持更多頁面滾動(dòng)。本文用匯編語言定義相對(duì)鼠標(biāo)同步的報(bào)告描述符內(nèi)容如表2 所示。

表2 相對(duì)鼠標(biāo)同步的報(bào)告描述符

通過界面獲得的鼠標(biāo)坐標(biāo)值以一個(gè)像素為單位,較實(shí)際位置有一定的精度損失。且相對(duì)鼠標(biāo)同步每次的偏移值均以上次坐標(biāo)為基準(zhǔn),數(shù)值損失將不斷累加。針對(duì)此問題,本文在相對(duì)同步方式中增加了自適應(yīng)的誤差彌補(bǔ),對(duì)累積誤差進(jìn)行檢測(cè)和處理,即"殘差處理".該處理方法主要采用坐標(biāo)值精度轉(zhuǎn)換、累計(jì)殘差、足1 補(bǔ)齊的方式,具體實(shí)現(xiàn)方法如下所述:

(1)坐標(biāo)值精度轉(zhuǎn)換

采用short 型雙字節(jié)數(shù)值表示法,以屏幕左上角為原點(diǎn),且無論何種分辨率均定義右下角坐標(biāo)為(32 767, 32 767),將界面獲取的坐標(biāo)根據(jù)屏幕分辨率按比例進(jìn)行轉(zhuǎn)換。

同時(shí)記錄本次的雙字節(jié)絕對(duì)坐標(biāo)位置作為下次偏移的基準(zhǔn),減少以偏移差值為基準(zhǔn)而引入的累積誤差。

(2)殘差累計(jì)及補(bǔ)償

使用double 型變量累計(jì)每次坐標(biāo)值轉(zhuǎn)為short 整型時(shí)丟棄的小數(shù)值。當(dāng)累計(jì)值大于1 時(shí),在當(dāng)前坐標(biāo)差值上補(bǔ)1 再進(jìn)行發(fā)送。同時(shí)定時(shí)檢測(cè)誤差累計(jì)值大于1 的次數(shù)頻率,當(dāng)超過一定程度時(shí),采取自動(dòng)重新同步。即先進(jìn)行13 次(?127,?127)坐標(biāo)偏移,將鼠標(biāo)移動(dòng)到屏幕左上角,然后再用一次至多次偏移,將鼠標(biāo)定位到控制主機(jī)記錄的最后坐標(biāo)位置。

然后采用13 次坐標(biāo)偏移,若以1 920×1 080 分辨率屏幕為上界,則在當(dāng)前主流顯示器中,均可以將鼠標(biāo)移至屏幕左上角。

2.3 絕對(duì)鼠標(biāo)同步

絕對(duì)鼠標(biāo)同步在經(jīng)過直接傳輸換算后,其雙字節(jié)絕對(duì)坐標(biāo)值的每次同步,均需要以原點(diǎn)為基準(zhǔn)重新定位鼠標(biāo),以去除與前一次鼠標(biāo)位置的關(guān)聯(lián),由此避免了相對(duì)偏移造成的誤差累積。其有效同步數(shù)據(jù)區(qū)定義如表3 所示。

表3 絕對(duì)鼠標(biāo)同步的數(shù)據(jù)區(qū)定義

絕對(duì)鼠標(biāo)同步具有更精確的同步效果,并且需要占用報(bào)告描述符條目的2 Byte 空間來表示坐標(biāo)值(滾輪值),故必須得到操作系統(tǒng)內(nèi)置HID 類驅(qū)動(dòng)程序的支持。現(xiàn)代Windows系列(XP/Win7/Vista 等)、Mac OS 10.5 以及Linux 2.6 版本等操作系統(tǒng)均可支持絕對(duì)鼠標(biāo)模式,OS/2 系統(tǒng)也于2010 年5 月發(fā)布xsmouse00.zip 提供支持該模式的鼠標(biāo)驅(qū)動(dòng)程序。由于絕對(duì)鼠標(biāo)同步方法采用雙字節(jié)表示有效數(shù)據(jù),其報(bào)告描述符結(jié)構(gòu)設(shè)置與相對(duì)同步方式不同,描述符內(nèi)容如表4 所示。[!--empirenews.page--]

表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ī)的客戶端;(2)連接多臺(tái)被控機(jī)的KVM 切換系統(tǒng);(3)通過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ī)客戶端

本文設(shè)計(jì)的KVM 系統(tǒng)基于B/S 框架,控制主機(jī)組合鼠標(biāo)、鍵盤、顯示器等I/O 設(shè)備,通過Web 頁面調(diào)用操作界面。

界面經(jīng)TCP/IP 網(wǎng)絡(luò)接收被控機(jī)屏幕畫面并解碼顯示,同時(shí)檢測(cè)本機(jī)鼠標(biāo)、鍵盤事件,將數(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)鍵盤數(shù)據(jù)。

(2)KVM 切換系統(tǒng)

KVM 切換系統(tǒng)的核心是:運(yùn)行主要內(nèi)核程序及服務(wù)器程序,并通過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è)置,通過中斷傳輸方式傳送至被控機(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)模式主要通過在主控機(jī)和被控機(jī)上形成對(duì)同一事件的循環(huán)響應(yīng),獲取兩者的響應(yīng)時(shí)間差值,以得出延遲時(shí)間。具體實(shí)現(xiàn)方法為:在主控機(jī)和被控機(jī)上同時(shí)運(yùn)行一個(gè)測(cè)試客戶端,鼠標(biāo)單擊主控機(jī)的客戶端界面,界面響應(yīng)事件并發(fā)出UDP 數(shù)據(jù)包標(biāo)識(shí)時(shí)間;事件傳遞至被控機(jī)客戶端后,被控機(jī)客戶端同樣響應(yīng)該事件并發(fā)出UDP 包。通過網(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è)客戶端,并對(duì)主控機(jī)客戶端進(jìn)行鼠標(biāo)單擊操作。當(dāng)鼠標(biāo)操作數(shù)據(jù)由主控機(jī)客戶端傳輸?shù)教幚砥鲿r(shí),處理器產(chǎn)生中斷并拉高電平;被控機(jī)客戶端接收到鼠標(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é)束語

本文提出一種快速精確的KVM 遠(yuǎn)程鼠標(biāo)同步方法。采用USB2.0 接口實(shí)現(xiàn)數(shù)據(jù)高速傳輸,通過加入自適應(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)高速度與高精度更好的融合。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉