郭棟梁,柏淑紅,楊 偉,李曉飛
(山西大眾電子信息產(chǎn)業(yè)集團(tuán)有限公司 軍用信息設(shè)備事業(yè)部,山西 太原 030024)
KVM切換器也稱“KVM多電腦切換器”,它是Keyboard(鍵盤)、Video(顯示器)和Mouse(鼠標(biāo))三個單詞的第一個字母,即能夠?qū)崿F(xiàn)用一套顯示器、鍵盤、鼠標(biāo)來控制多臺主機(jī)設(shè)備[1]。隨著各種場所的信息化及裝備的復(fù)雜化發(fā)展,為有效減少人員的配置、節(jié)約占用面積,須在這些場所引入KVM模塊,以提高系統(tǒng)的合理性及管理人員的工作效率,節(jié)約有限的工作面積,降低網(wǎng)絡(luò)及系統(tǒng)的總體設(shè)備成本。如圖1所示為KVM切換器原理框圖。
圖1 KVM切換器原理框圖
系統(tǒng)由外圍控制設(shè)備、FPGA、顯示切換開關(guān)以及PC機(jī)群組成。PS/2鍵盤鼠標(biāo)與主機(jī)的通信完全由FPGA編程完成,VGA與串口信號由FPGA控制模擬開關(guān)完成信號的傳輸與切換。整個KVM切換器具有結(jié)構(gòu)簡單、電路復(fù)雜程度低、響應(yīng)速度快等優(yōu)點(diǎn)。
PS/2設(shè)備接口用于許多現(xiàn)代的鼠標(biāo)和鍵盤,它是由IBM開發(fā)并且最初出現(xiàn)在IBM技術(shù)參考手冊里[2]。現(xiàn)在的PS/2設(shè)備接口仍廣泛應(yīng)用于對連接穩(wěn)定性要求較高的場景下。
PS/2鼠標(biāo)和鍵盤是一種雙向同步串行協(xié)議,鍵盤/鼠標(biāo)可以發(fā)送數(shù)據(jù)到主機(jī),而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備。但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時候抑制來自于鍵盤/鼠標(biāo)的通訊,主機(jī)只要把時鐘拉低即可[3]。由于PS/2接口協(xié)議并不是一個十分標(biāo)準(zhǔn)的協(xié)議,這里我們按照一般的設(shè)備設(shè)置,將時鐘頻率設(shè)置為15MHz。這里需要主機(jī),不管通信方向是從主機(jī)到設(shè)備還是從設(shè)備到主機(jī),時鐘都是由設(shè)備產(chǎn)生。
2.1.1 PS/2設(shè)備到主機(jī)通訊協(xié)議分析
從鍵盤/鼠標(biāo)發(fā)送到主機(jī)的數(shù)據(jù)在時鐘信號的下降沿,即當(dāng)時鐘從高變到低的時候被主機(jī)讀取[4]。PS/2設(shè)備到主機(jī)通訊過程如圖2所示。
圖2 PS/2設(shè)備到主機(jī)通訊過程
PS/2設(shè)備要向主機(jī)發(fā)送數(shù)據(jù)時,首先檢測時鐘、數(shù)據(jù)線是否都是高電平,以此來判斷主機(jī)是否需要對外設(shè)進(jìn)行通信,如果時鐘數(shù)據(jù)都為高,PS/2設(shè)備先將數(shù)據(jù)拉低,之后產(chǎn)生時鐘下降沿以產(chǎn)生一個START信號,通知主機(jī)數(shù)據(jù)發(fā)送開始[5]。主機(jī)在每個時鐘的下降沿讀入數(shù)據(jù),并在讀取8 bit的DATA后校驗設(shè)備發(fā)來的奇偶校驗位,最后產(chǎn)生一個STOP停止信號完成本次設(shè)備到主機(jī)的通信。
2.1.2 PS/2主機(jī)到設(shè)備通訊協(xié)議分析
從主機(jī)發(fā)送到設(shè)備的數(shù)據(jù)在時鐘信號的上升沿,即當(dāng)時鐘從低變到高的時候被設(shè)備讀取。PS/2主機(jī)到設(shè)備通訊過程如圖3所示。
圖3 PS/2主機(jī)到設(shè)備通訊過程
主機(jī)要向PS/2設(shè)備發(fā)送數(shù)據(jù)時,首先將時鐘信號拉低100 us以上,然后拉低時鐘線產(chǎn)生一個START起始信號。當(dāng)設(shè)備檢測到這個狀態(tài)后,將開始產(chǎn)生時鐘信號,并且時鐘脈沖標(biāo)記下輸入八個數(shù)據(jù)位、一個奇偶校驗位和一個停止位。之后拉低數(shù)據(jù)線產(chǎn)生一個ACK回應(yīng)位,以應(yīng)答主機(jī),表明數(shù)據(jù)已收到。最后拉高數(shù)據(jù)線完成本次主機(jī)到設(shè)備的通信。
由于該KVM切換器中只是用了一個FPGA芯片,雖然電路設(shè)計上大大簡化,但需要使用FPGA通過內(nèi)部邏輯實現(xiàn)模擬PS/2外設(shè)與主機(jī)初始化模塊、模擬主機(jī)與PS/2外設(shè)初始化模塊,鍵鼠工作模塊、鍵盤點(diǎn)電燈記憶模塊、切換指示模塊、狀態(tài)打印模塊等模塊,以此來完成KVM切換器的正常工作。FPGA工作模塊框圖如圖4所示。
圖4 FPGA工作模塊框圖
當(dāng)KVM切換器上電自檢完成后,程序中會持續(xù)檢測主機(jī)是否上電,如果主機(jī)上電,F(xiàn)PGA初始化模塊開始工作,分別模擬設(shè)備與主機(jī)進(jìn)行初始化、模擬主機(jī)與設(shè)備進(jìn)行初始化。在初始化完成后,進(jìn)入鍵盤鼠標(biāo)工作模塊,在這期間,切換器會持續(xù)檢測主機(jī)是否重啟、切換開關(guān)是否動作,如果切換開關(guān)有動作或者主機(jī)重啟,則重新進(jìn)入初始化流程。KVM切換器工作流程如圖5所示。
圖5 KVM切換器工作流程
在電路板調(diào)試以及程序調(diào)試完成后,在KVM切換器上外接PS/2鍵盤、鼠標(biāo)、顯示器、一路Window7系統(tǒng)主機(jī)、一路Linux系統(tǒng)主機(jī)。實驗證明,KVM切換器能快速穩(wěn)定的完成一路鍵盤、鼠標(biāo)、VGA及串口向兩路鍵盤、鼠標(biāo)、VGA及串口的轉(zhuǎn)換。其中PS/2鍵盤、鼠標(biāo)實時采集數(shù)據(jù)以及電路板實物圖分別如圖6、圖7所示。
圖6 PS/2鍵盤、鼠標(biāo)實時采集數(shù)據(jù)
圖7 電路板實物圖
該切換器已經(jīng)過某型車上實驗驗證,實現(xiàn)了多路主機(jī)的信號切換功能,并已經(jīng)驗證了該切換器的穩(wěn)定性。在信息化及裝備復(fù)雜化的今天,KVM切換器的應(yīng)用范圍也將越來越廣泛。
[1] 馬光華,鄭建立.基于FPGA和ARM9微控制器的KVM交換機(jī)設(shè)計[J].儀表技術(shù),2013(9):23-25,28.
[2] 陳坤.基于電容式觸摸技術(shù)的研究與應(yīng)用[D].西安:西安電子科技大學(xué),2012.
[3] 錢幸存,高同國.基于單片機(jī)的多計算機(jī)外設(shè)共享控制器的設(shè)計與實現(xiàn)[J].電子技術(shù),2011,38(5):29-30,28.
[4] 孫杰.一種基于CPLD的PS2接口切換設(shè)計方法[J].電子技術(shù),2017,46(4):45-47.
[5] 張利民,鄒益民.一種具有語音播報功能的PS/2鍵盤鼠標(biāo)測試儀設(shè)計[J].自動化與儀器儀表,2014(6):68-70,73.