楊君寶,潘 巖,李 萌
(山東超越數(shù)控電子有限公司 山東 濟南 250104)
近年來,隨著計算機技術(shù)、互聯(lián)網(wǎng)技術(shù)的普及以及大眾對計算機進行商務(wù)、學(xué)習(xí)、生活、工作等需求的增長,計算機已經(jīng)成為人們學(xué)習(xí)和工作生活中不可或缺的高科技產(chǎn)品之一,現(xiàn)在計算機已經(jīng)進入實用階段,越來越多的人們擁有了自己的計算機。同時,隨著信息化建設(shè)的不斷深化,在人們?nèi)粘5墓ぷ魃钪?,許多辦公室或家庭需要同時使用多臺計算機。為了控制成本,節(jié)約機房的使用空間,提高效率,減少耗能,需要一種行之有效的設(shè)備對多個PC進行系統(tǒng)管理[1-2]。KVM切換技術(shù)應(yīng)運而生,KVM 是英語中鍵盤(Keyboard)、顯示器(Video)、鼠標(biāo)(Mouse)三個單詞第一個字母的縮寫,通過一套KVM可以實現(xiàn)對多臺PC的控制,從而實現(xiàn)集中管理操作[3-4]。
目前,使用比較多的是機械式切換器,它主要采用繼電器來實現(xiàn)切換,機械式切換器壽命短,切換次數(shù)有限,不適合長期使用[5]?,F(xiàn)在已經(jīng)出現(xiàn)了采用專用視頻切換芯片的數(shù)字式切換器,視頻圖像清晰,可靠性高,但是價格比較昂貴,在一些對視頻圖像要求不高的場合使用效率不高。為此,本文利用模擬開關(guān)技術(shù)及單片機IAP技術(shù)設(shè)計了一個基于AVR單片機的KVM擴展平臺,擴展了KVM資源,實現(xiàn)了對多套PC設(shè)備的切換控制。
電路、按鍵切換及指示電路、電源電路等四部分組成,擴展平臺結(jié)構(gòu)圖如圖1所示。其中在信號擴展電路中,將信號擴展分成了VGA信號擴展、PS/2鍵鼠信號擴展和電源及地信號擴展3部分;機房里的PC設(shè)備通過被控PC接口與擴展平臺連接;一套顯示器、鍵盤、鼠標(biāo)通過本地KVM連接到擴展平臺上。本平臺通過按鍵切換電路或者鍵盤熱鍵來控制信號切換開關(guān),可是實現(xiàn)用一套KVM選擇性地控制6臺PC的功能,當(dāng)某一路PC被切換選擇時,切換指示電路會將相應(yīng)的指示燈點亮顯示。
從擴展平臺結(jié)構(gòu)圖中可以看出,本地KVM的鍵盤、鼠標(biāo)信號,通過信號擴展電路與被選擇的PC的鍵盤、鼠標(biāo)通道連通,PC接收來自鍵盤、鼠標(biāo)的數(shù)據(jù)包并將其解碼、處理,而KVM的VGA信號通過信號擴展電路與選中PC機的視頻通道連通,同時將該PC設(shè)備的VGA信號傳送至KVM顯示器,從而實現(xiàn)VGA切換控制?;谝陨戏治觯撈脚_的設(shè)計主要有兩大部分組成:硬件設(shè)計與軟件實現(xiàn)。其中硬件電路上又有4部分組成:信號擴展電路、按鍵切換及指示燈電路、單片機切換控制電路、電源電路;軟件上主要有ATmega8單片機程序設(shè)計。
整個擴展平臺主要包括信號擴展電路、單片機切換控制
圖1 擴展平臺結(jié)構(gòu)圖Fig.1 Extend platform structure diagram
通過對KVM信號進行分析,整個KVM需要擴展的信號圖。在芯片選擇時要注意CD400系列芯片頻率不夠,應(yīng)該考慮74HC系列芯片,本平臺選用的模擬開關(guān)芯片是MM74HC4053和 MM74HC4051。
對于電源及地信號的擴展,由于模擬開關(guān)芯片最大允許500 mA的電流導(dǎo)通。而實際過程中電源及地中的電流可能大于500 mA,因此,不能單純的利用模擬開關(guān)進行擴展,需借助于MOS管(其導(dǎo)通能力較大)來實現(xiàn)。本平臺采用增強型MOS管配合三極管可以很好的達到增大電流的效果:通過三極管的導(dǎo)通、截止進而判定MOS管的通斷從而實現(xiàn)分路切換。圖3是部分電源及地信號擴展原理圖,在運用MOS管時一定要注意其導(dǎo)通和截止的條件。
從KVM引出來的11路信號,經(jīng)過擴展之后變成了11×6路,但是需要根據(jù)被控請求將其中一路與主信號連通,即要對6路擴展信號進行切換控制,以滿足平臺要求。采用單片機作為切換控制電路的核心控制器,單片機選用AVR單片分為VGA信號和PS/2信號。其中VGA信號主要有3路模擬信號(R、G、B 信號)和 2路數(shù)字信號(VSYNC、HSYNC 信號),PS/2信號主要包含 4路數(shù)字信號(MDATA、MCLK、KDATA、KCLK信號),另外將VGA信號及PS/2信號中的電源及地信號單獨拿出來進行擴展。運用模擬開關(guān)技術(shù)將每一路信號擴展成了6路。
模擬開關(guān)是一種根據(jù)相應(yīng)控制命令實現(xiàn)通斷模擬信號傳輸?shù)碾娐菲骷6]。模擬開關(guān)有開關(guān)特性和半導(dǎo)體特性雙重特性。模擬輸入信號電壓的過高或過低都會導(dǎo)致MOSFET管反向偏置,無法正常工作。因此在應(yīng)用模擬開關(guān)芯片時,一定要保證模擬信號的電壓在規(guī)定上午范圍內(nèi)[7]。用兩片4053就可以擴展成6路模擬信號,把它們的O/IA,O/IB,O/IC連在一起作為公共輸入端,通過控制A,B,C得高低從而選定與哪一路(AY,BY,CY)導(dǎo)通,用一片 4051就可以擴展 6路(最多可達8路)數(shù)字信號,圖2是部分VGA及PS/2信號擴展原理機,具體型號為ATmega8,這是一款基于RSIC結(jié)構(gòu)的低功耗8為單片機,最多23個可編程I/O口,可任意定義I/O的輸入/輸出方向;輸出時為推挽輸出,驅(qū)動能力強,輸入口可定義為三態(tài)輸入,可以設(shè)定內(nèi)部上拉電阻,省去外部上拉電阻。片內(nèi)集成了較大容量的非易失性程序和數(shù)據(jù)存儲器以及工作存儲器[8]。該系列單片機是在AT90系列的基礎(chǔ)之上開發(fā)的,除了保留了AT90系列單片機的優(yōu)點之外,ATmega系列單片機的穩(wěn)定性和抗干擾性更強,使用更加靈活,功耗更低。圖4是單片機切換控制電路原理圖。
圖2 部分VGA及PS/2信號擴展原理圖Fig.2 Part of VGA and PS/2 signal extension principle diagram
單片機要實現(xiàn)兩個功能:讀取I/O口的信息來獲取相關(guān)的切換請求;根據(jù)切換請求通過自身的端口輸出對應(yīng)的切換命令至模擬開關(guān)的控制端口A、B、C。
電源電路設(shè)計中采用三端穩(wěn)壓器件將來自電源的+12 V/-12 V電壓變換成模擬開關(guān)芯片及單片機等芯片所需的工作電壓。在按鍵切換及指示電路設(shè)計中,通過復(fù)位按鍵將對應(yīng)的切換指令傳送給單片機,切換成功時單片機會將對應(yīng)的指示燈點亮。
圖3 電源及地信號擴展原理圖Fig.3 Part of power and ground signal extension principle diagram
圖4 單片機切換控制電路原理圖Fig.4 Single-chip switching control circuit principle diagram
擴展平臺切換功能實現(xiàn)的過程中利用了單片機的IAP技術(shù)(在應(yīng)用中可編程),ATmega8可以完成IAP的功能,即不需要特定的下載軟件,而只需要一根串口線,在單片機自己本身的控制下,利用固化在引導(dǎo)程序區(qū)內(nèi)的引導(dǎo)程序(BootLoader),通過串口將外部源程序?qū)懭隖lash應(yīng)用程序區(qū)的方法[9]。詳細(xì)來講:每次加電運行時,單片機都會先跳入引導(dǎo)程序區(qū)運行BootLoader程序,然后通過串口判斷外部是否有源程序下載命令,如果有下載指令,那么單片機首先擦除原來的程序代碼(按頁擦除),接著將目標(biāo)源程序從應(yīng)用程序區(qū)第一行位置開始寫入;如果沒有程序下載指令,則單片機直接跳入應(yīng)用程序區(qū)第一行位置開始執(zhí)行程序,由于目標(biāo)源程序編寫的都是LOOP循環(huán)程序,所以,只要串口沒有接收到下載指令單片機循環(huán)執(zhí)行該程序,從而實現(xiàn)了所需的功能。
KVM擴展平臺有兩種切換模式:熱鍵切換模式和按鍵切換模式,兩種切換模式的邏輯是相同的,但是切換條件和方式不同。KVM擴展平臺切換程序框圖如圖5所示。
圖5 切換控制流程圖Fig.5 Switch control flow chart
切換控制程序的編寫是在基于Arduino的開發(fā)環(huán)境下利用processing語言實現(xiàn)的。Arduino是集軟硬件于一體的開源電子平臺,平臺中包含了基于單片機的開源物理平臺以及開源的Arduino軟件開發(fā)環(huán)境,編寫的程序可讀性強。程序設(shè)計采用模塊化設(shè)計,主要包含主程序、熱鍵切換子程序及按鍵切換子程序等。主程序主要是對各個子模塊進行初始化和調(diào)用子程序。熱鍵切換首先設(shè)定某個鍵盤按鍵為熱鍵,通過單片機不斷查詢鍵盤的KDATA信號,來判斷該熱鍵是否被按下來進行切換,若查詢到有熱鍵切換信號,則單片機按照順序進行循環(huán)切換,當(dāng)切換至第六臺PC時若還有熱鍵按下則會切換至第一臺PC設(shè)備。按鍵切換則是通過MCU不斷地查詢PC0~PC6端口,判斷按鍵是否被按下,進而通過I/O輸出對應(yīng)的切換指令實現(xiàn)切換。
該擴展平臺成功的結(jié)合了單片機IAP技術(shù)、模擬開關(guān)技術(shù)實現(xiàn)了在一套KVM設(shè)備下對6個PC設(shè)備的切換控制功能,其中VGA的R、G、B信號采用MM74HC4053芯片進行切換,其他信號采用MM74HC4051芯片進行切換。通過測試,視頻切換輸出信號良好、鍵盤鼠標(biāo)的靈敏度也比較好,達到了預(yù)期的設(shè)計要求。整個平臺擴展性很強,可根據(jù)要求實現(xiàn)對更多的設(shè)備的切換,造價低,在提高工作效率的同時還節(jié)省了空間。但是若對視頻輸出質(zhì)量的要求比較高,建議使用相關(guān)的視頻切換芯片和性能更強的控制芯片來設(shè)計VGA擴展模塊,在一些對視頻輸出質(zhì)量要求不高的場合,本平臺可以為其提供很好的視頻顯示及鍵鼠控制功能。
[1]許乃利,徐超,吳瓏.基于AVR單片機的KVM切換模塊的設(shè)計[J].儀器儀表學(xué)報,2010,31(8):139-142.XU Nai-li,XU Chao,WU Long.Design of KVMswitch module based on AVR microcontroller[J].Chinese Journal of Scientific Instrument,2010,31(8):139-142.
[2]夏海明,曹建.基于ATmega16的多路KVM切換器設(shè)計及應(yīng)用[J].計算機應(yīng)用與軟件,2012,29(11):229-231.XIA Hai-ming,CAO Jian.Design and application of multiplexer KVMswitches based on ATmega16[J].Computer Applications and Software,2012,29(11):229-231.
[3]于治樓,陳乃闊,牛玉峰.KVM控制器的分類與設(shè)計[J].信息技術(shù)與信息化,2010(2):18-20.YU Zhi-lou,CHEN Nai-kuo,NIU Yu-feng.Design and classification of the KVM controller [J].Information Technology and Informatization,2010(2):18-20.
[4]ZHAO Ke-xin,SU Ling-li,HAO Guo-fen,et al.Research for optimization of KVMswitch[J].Instrument Techniques and Sensor,2010(9):90-94.
[5]LI Shou-long.Implementation of generation algorithm in KVM[J].Computer Engineerring,2006(11):69-71.
[6]宋吉江,牛軼霞,于春戰(zhàn),等.CMOS模擬開關(guān)及其選擇問題[J].微電子技術(shù),2001,29(3):58-60.SONG Ji-jiang, NIU Yi-xia, YU Zhan-chun,et al.CMOS analog switch and its choices[J].Microelectronic Technology,2001,29(3):58-60.
[7]楊君寶,劉蘊紅.基于AVR單片機的ELVIS II擴展平臺[J].測控技術(shù),2013,32(7):66-69.YANG Jun-bao,LIU Yun-hong.Design of ELVIS II expanded platform based on AVR[J].Measurement and Control Technology,2013,32(7):66-69.
[8]包秀榮,王楠.AVR單片機的特點與應(yīng)用[J].內(nèi)蒙古科技與經(jīng)濟,2004(6):51-52.BAO Xiu-rong,WANG Nan.Feature and application of AVR microcontroller[J].Inner Mongolia Scientech and Economy,2004(6):51-52.
[9]曹翊軍,薛升寧,郭寶龍.BOOTLOADER的原理及設(shè)計要點[J].電子元器件應(yīng)用,2008,10(1):61-61,66.CAO Yi-jun,XUE Sheng-ning,GUO Bao-long.The principle and design points of bootloader[J].Electronic Component and Device Applications,2008,10(1):61-61,66.