楊君寶,潘 巖,李 萌
(山東超越數(shù)控電子有限公司 山東 濟(jì)南 250104)
近年來,隨著計(jì)算機(jī)技術(shù)、互聯(lián)網(wǎng)技術(shù)的普及以及大眾對(duì)計(jì)算機(jī)進(jìn)行商務(wù)、學(xué)習(xí)、生活、工作等需求的增長,計(jì)算機(jī)已經(jīng)成為人們學(xué)習(xí)和工作生活中不可或缺的高科技產(chǎn)品之一,現(xiàn)在計(jì)算機(jī)已經(jīng)進(jìn)入實(shí)用階段,越來越多的人們擁有了自己的計(jì)算機(jī)。同時(shí),隨著信息化建設(shè)的不斷深化,在人們?nèi)粘5墓ぷ魃钪?,許多辦公室或家庭需要同時(shí)使用多臺(tái)計(jì)算機(jī)。為了控制成本,節(jié)約機(jī)房的使用空間,提高效率,減少耗能,需要一種行之有效的設(shè)備對(duì)多個(gè)PC進(jìn)行系統(tǒng)管理[1-2]。KVM切換技術(shù)應(yīng)運(yùn)而生,KVM 是英語中鍵盤(Keyboard)、顯示器(Video)、鼠標(biāo)(Mouse)三個(gè)單詞第一個(gè)字母的縮寫,通過一套KVM可以實(shí)現(xiàn)對(duì)多臺(tái)PC的控制,從而實(shí)現(xiàn)集中管理操作[3-4]。
目前,使用比較多的是機(jī)械式切換器,它主要采用繼電器來實(shí)現(xiàn)切換,機(jī)械式切換器壽命短,切換次數(shù)有限,不適合長期使用[5]?,F(xiàn)在已經(jīng)出現(xiàn)了采用專用視頻切換芯片的數(shù)字式切換器,視頻圖像清晰,可靠性高,但是價(jià)格比較昂貴,在一些對(duì)視頻圖像要求不高的場合使用效率不高。為此,本文利用模擬開關(guān)技術(shù)及單片機(jī)IAP技術(shù)設(shè)計(jì)了一個(gè)基于AVR單片機(jī)的KVM擴(kuò)展平臺(tái),擴(kuò)展了KVM資源,實(shí)現(xiàn)了對(duì)多套PC設(shè)備的切換控制。
電路、按鍵切換及指示電路、電源電路等四部分組成,擴(kuò)展平臺(tái)結(jié)構(gòu)圖如圖1所示。其中在信號(hào)擴(kuò)展電路中,將信號(hào)擴(kuò)展分成了VGA信號(hào)擴(kuò)展、PS/2鍵鼠信號(hào)擴(kuò)展和電源及地信號(hào)擴(kuò)展3部分;機(jī)房里的PC設(shè)備通過被控PC接口與擴(kuò)展平臺(tái)連接;一套顯示器、鍵盤、鼠標(biāo)通過本地KVM連接到擴(kuò)展平臺(tái)上。本平臺(tái)通過按鍵切換電路或者鍵盤熱鍵來控制信號(hào)切換開關(guān),可是實(shí)現(xiàn)用一套KVM選擇性地控制6臺(tái)PC的功能,當(dāng)某一路PC被切換選擇時(shí),切換指示電路會(huì)將相應(yīng)的指示燈點(diǎn)亮顯示。
從擴(kuò)展平臺(tái)結(jié)構(gòu)圖中可以看出,本地KVM的鍵盤、鼠標(biāo)信號(hào),通過信號(hào)擴(kuò)展電路與被選擇的PC的鍵盤、鼠標(biāo)通道連通,PC接收來自鍵盤、鼠標(biāo)的數(shù)據(jù)包并將其解碼、處理,而KVM的VGA信號(hào)通過信號(hào)擴(kuò)展電路與選中PC機(jī)的視頻通道連通,同時(shí)將該P(yáng)C設(shè)備的VGA信號(hào)傳送至KVM顯示器,從而實(shí)現(xiàn)VGA切換控制?;谝陨戏治觯撈脚_(tái)的設(shè)計(jì)主要有兩大部分組成:硬件設(shè)計(jì)與軟件實(shí)現(xiàn)。其中硬件電路上又有4部分組成:信號(hào)擴(kuò)展電路、按鍵切換及指示燈電路、單片機(jī)切換控制電路、電源電路;軟件上主要有ATmega8單片機(jī)程序設(shè)計(jì)。
整個(gè)擴(kuò)展平臺(tái)主要包括信號(hào)擴(kuò)展電路、單片機(jī)切換控制
圖1 擴(kuò)展平臺(tái)結(jié)構(gòu)圖Fig.1 Extend platform structure diagram
通過對(duì)KVM信號(hào)進(jìn)行分析,整個(gè)KVM需要擴(kuò)展的信號(hào)圖。在芯片選擇時(shí)要注意CD400系列芯片頻率不夠,應(yīng)該考慮74HC系列芯片,本平臺(tái)選用的模擬開關(guān)芯片是MM74HC4053和 MM74HC4051。
對(duì)于電源及地信號(hào)的擴(kuò)展,由于模擬開關(guān)芯片最大允許500 mA的電流導(dǎo)通。而實(shí)際過程中電源及地中的電流可能大于500 mA,因此,不能單純的利用模擬開關(guān)進(jìn)行擴(kuò)展,需借助于MOS管(其導(dǎo)通能力較大)來實(shí)現(xiàn)。本平臺(tái)采用增強(qiáng)型MOS管配合三極管可以很好的達(dá)到增大電流的效果:通過三極管的導(dǎo)通、截止進(jìn)而判定MOS管的通斷從而實(shí)現(xiàn)分路切換。圖3是部分電源及地信號(hào)擴(kuò)展原理圖,在運(yùn)用MOS管時(shí)一定要注意其導(dǎo)通和截止的條件。
從KVM引出來的11路信號(hào),經(jīng)過擴(kuò)展之后變成了11×6路,但是需要根據(jù)被控請求將其中一路與主信號(hào)連通,即要對(duì)6路擴(kuò)展信號(hào)進(jìn)行切換控制,以滿足平臺(tái)要求。采用單片機(jī)作為切換控制電路的核心控制器,單片機(jī)選用AVR單片分為VGA信號(hào)和PS/2信號(hào)。其中VGA信號(hào)主要有3路模擬信號(hào)(R、G、B 信號(hào))和 2路數(shù)字信號(hào)(VSYNC、HSYNC 信號(hào)),PS/2信號(hào)主要包含 4路數(shù)字信號(hào)(MDATA、MCLK、KDATA、KCLK信號(hào)),另外將VGA信號(hào)及PS/2信號(hào)中的電源及地信號(hào)單獨(dú)拿出來進(jìn)行擴(kuò)展。運(yùn)用模擬開關(guān)技術(shù)將每一路信號(hào)擴(kuò)展成了6路。
模擬開關(guān)是一種根據(jù)相應(yīng)控制命令實(shí)現(xiàn)通斷模擬信號(hào)傳輸?shù)碾娐菲骷6]。模擬開關(guān)有開關(guān)特性和半導(dǎo)體特性雙重特性。模擬輸入信號(hào)電壓的過高或過低都會(huì)導(dǎo)致MOSFET管反向偏置,無法正常工作。因此在應(yīng)用模擬開關(guān)芯片時(shí),一定要保證模擬信號(hào)的電壓在規(guī)定上午范圍內(nèi)[7]。用兩片4053就可以擴(kuò)展成6路模擬信號(hào),把它們的O/IA,O/IB,O/IC連在一起作為公共輸入端,通過控制A,B,C得高低從而選定與哪一路(AY,BY,CY)導(dǎo)通,用一片 4051就可以擴(kuò)展 6路(最多可達(dá)8路)數(shù)字信號(hào),圖2是部分VGA及PS/2信號(hào)擴(kuò)展原理機(jī),具體型號(hào)為ATmega8,這是一款基于RSIC結(jié)構(gòu)的低功耗8為單片機(jī),最多23個(gè)可編程I/O口,可任意定義I/O的輸入/輸出方向;輸出時(shí)為推挽輸出,驅(qū)動(dòng)能力強(qiáng),輸入口可定義為三態(tài)輸入,可以設(shè)定內(nèi)部上拉電阻,省去外部上拉電阻。片內(nèi)集成了較大容量的非易失性程序和數(shù)據(jù)存儲(chǔ)器以及工作存儲(chǔ)器[8]。該系列單片機(jī)是在AT90系列的基礎(chǔ)之上開發(fā)的,除了保留了AT90系列單片機(jī)的優(yōu)點(diǎn)之外,ATmega系列單片機(jī)的穩(wěn)定性和抗干擾性更強(qiáng),使用更加靈活,功耗更低。圖4是單片機(jī)切換控制電路原理圖。
圖2 部分VGA及PS/2信號(hào)擴(kuò)展原理圖Fig.2 Part of VGA and PS/2 signal extension principle diagram
單片機(jī)要實(shí)現(xiàn)兩個(gè)功能:讀取I/O口的信息來獲取相關(guān)的切換請求;根據(jù)切換請求通過自身的端口輸出對(duì)應(yīng)的切換命令至模擬開關(guān)的控制端口A、B、C。
電源電路設(shè)計(jì)中采用三端穩(wěn)壓器件將來自電源的+12 V/-12 V電壓變換成模擬開關(guān)芯片及單片機(jī)等芯片所需的工作電壓。在按鍵切換及指示電路設(shè)計(jì)中,通過復(fù)位按鍵將對(duì)應(yīng)的切換指令傳送給單片機(jī),切換成功時(shí)單片機(jī)會(huì)將對(duì)應(yīng)的指示燈點(diǎn)亮。
圖3 電源及地信號(hào)擴(kuò)展原理圖Fig.3 Part of power and ground signal extension principle diagram
圖4 單片機(jī)切換控制電路原理圖Fig.4 Single-chip switching control circuit principle diagram
擴(kuò)展平臺(tái)切換功能實(shí)現(xiàn)的過程中利用了單片機(jī)的IAP技術(shù)(在應(yīng)用中可編程),ATmega8可以完成IAP的功能,即不需要特定的下載軟件,而只需要一根串口線,在單片機(jī)自己本身的控制下,利用固化在引導(dǎo)程序區(qū)內(nèi)的引導(dǎo)程序(BootLoader),通過串口將外部源程序?qū)懭隖lash應(yīng)用程序區(qū)的方法[9]。詳細(xì)來講:每次加電運(yùn)行時(shí),單片機(jī)都會(huì)先跳入引導(dǎo)程序區(qū)運(yùn)行BootLoader程序,然后通過串口判斷外部是否有源程序下載命令,如果有下載指令,那么單片機(jī)首先擦除原來的程序代碼(按頁擦除),接著將目標(biāo)源程序從應(yīng)用程序區(qū)第一行位置開始寫入;如果沒有程序下載指令,則單片機(jī)直接跳入應(yīng)用程序區(qū)第一行位置開始執(zhí)行程序,由于目標(biāo)源程序編寫的都是LOOP循環(huán)程序,所以,只要串口沒有接收到下載指令單片機(jī)循環(huán)執(zhí)行該程序,從而實(shí)現(xiàn)了所需的功能。
KVM擴(kuò)展平臺(tái)有兩種切換模式:熱鍵切換模式和按鍵切換模式,兩種切換模式的邏輯是相同的,但是切換條件和方式不同。KVM擴(kuò)展平臺(tái)切換程序框圖如圖5所示。
圖5 切換控制流程圖Fig.5 Switch control flow chart
切換控制程序的編寫是在基于Arduino的開發(fā)環(huán)境下利用processing語言實(shí)現(xiàn)的。Arduino是集軟硬件于一體的開源電子平臺(tái),平臺(tái)中包含了基于單片機(jī)的開源物理平臺(tái)以及開源的Arduino軟件開發(fā)環(huán)境,編寫的程序可讀性強(qiáng)。程序設(shè)計(jì)采用模塊化設(shè)計(jì),主要包含主程序、熱鍵切換子程序及按鍵切換子程序等。主程序主要是對(duì)各個(gè)子模塊進(jìn)行初始化和調(diào)用子程序。熱鍵切換首先設(shè)定某個(gè)鍵盤按鍵為熱鍵,通過單片機(jī)不斷查詢鍵盤的KDATA信號(hào),來判斷該熱鍵是否被按下來進(jìn)行切換,若查詢到有熱鍵切換信號(hào),則單片機(jī)按照順序進(jìn)行循環(huán)切換,當(dāng)切換至第六臺(tái)PC時(shí)若還有熱鍵按下則會(huì)切換至第一臺(tái)PC設(shè)備。按鍵切換則是通過MCU不斷地查詢PC0~PC6端口,判斷按鍵是否被按下,進(jìn)而通過I/O輸出對(duì)應(yīng)的切換指令實(shí)現(xiàn)切換。
該擴(kuò)展平臺(tái)成功的結(jié)合了單片機(jī)IAP技術(shù)、模擬開關(guān)技術(shù)實(shí)現(xiàn)了在一套KVM設(shè)備下對(duì)6個(gè)PC設(shè)備的切換控制功能,其中VGA的R、G、B信號(hào)采用MM74HC4053芯片進(jìn)行切換,其他信號(hào)采用MM74HC4051芯片進(jìn)行切換。通過測試,視頻切換輸出信號(hào)良好、鍵盤鼠標(biāo)的靈敏度也比較好,達(dá)到了預(yù)期的設(shè)計(jì)要求。整個(gè)平臺(tái)擴(kuò)展性很強(qiáng),可根據(jù)要求實(shí)現(xiàn)對(duì)更多的設(shè)備的切換,造價(jià)低,在提高工作效率的同時(shí)還節(jié)省了空間。但是若對(duì)視頻輸出質(zhì)量的要求比較高,建議使用相關(guān)的視頻切換芯片和性能更強(qiáng)的控制芯片來設(shè)計(jì)VGA擴(kuò)展模塊,在一些對(duì)視頻輸出質(zhì)量要求不高的場合,本平臺(tái)可以為其提供很好的視頻顯示及鍵鼠控制功能。
[1]許乃利,徐超,吳瓏.基于AVR單片機(jī)的KVM切換模塊的設(shè)計(jì)[J].儀器儀表學(xué)報(bào),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è)計(jì)及應(yīng)用[J].計(jì)算機(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ì)[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]楊君寶,劉蘊(yùn)紅.基于AVR單片機(jī)的ELVIS II擴(kuò)展平臺(tái)[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單片機(jī)的特點(diǎn)與應(yīng)用[J].內(nèi)蒙古科技與經(jīng)濟(jì),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ì)要點(diǎn)[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.