APP下载

基于ATmega8的KVM扩展平台设计

2015-01-24杨君宝

电子设计工程 2015年21期
关键词:按键键盘单片机

杨君宝,潘 岩,李 萌

(山东超越数控电子有限公司 山东 济南 250104)

近年来,随着计算机技术、互联网技术的普及以及大众对计算机进行商务、学习、生活、工作等需求的增长,计算机已经成为人们学习和工作生活中不可或缺的高科技产品之一,现在计算机已经进入实用阶段,越来越多的人们拥有了自己的计算机。同时,随着信息化建设的不断深化,在人们日常的工作生活中,许多办公室或家庭需要同时使用多台计算机。为了控制成本,节约机房的使用空间,提高效率,减少耗能,需要一种行之有效的设备对多个PC进行系统管理[1-2]。KVM切换技术应运而生,KVM 是英语中键盘(Keyboard)、显示器(Video)、鼠标(Mouse)三个单词第一个字母的缩写,通过一套KVM可以实现对多台PC的控制,从而实现集中管理操作[3-4]。

目前,使用比较多的是机械式切换器,它主要采用继电器来实现切换,机械式切换器寿命短,切换次数有限,不适合长期使用[5]。现在已经出现了采用专用视频切换芯片的数字式切换器,视频图像清晰,可靠性高,但是价格比较昂贵,在一些对视频图像要求不高的场合使用效率不高。为此,本文利用模拟开关技术及单片机IAP技术设计了一个基于AVR单片机的KVM扩展平台,扩展了KVM资源,实现了对多套PC设备的切换控制。

1 扩展平台整体设计

电路、按键切换及指示电路、电源电路等四部分组成,扩展平台结构图如图1所示。其中在信号扩展电路中,将信号扩展分成了VGA信号扩展、PS/2键鼠信号扩展和电源及地信号扩展3部分;机房里的PC设备通过被控PC接口与扩展平台连接;一套显示器、键盘、鼠标通过本地KVM连接到扩展平台上。本平台通过按键切换电路或者键盘热键来控制信号切换开关,可是实现用一套KVM选择性地控制6台PC的功能,当某一路PC被切换选择时,切换指示电路会将相应的指示灯点亮显示。

从扩展平台结构图中可以看出,本地KVM的键盘、鼠标信号,通过信号扩展电路与被选择的PC的键盘、鼠标通道连通,PC接收来自键盘、鼠标的数据包并将其解码、处理,而KVM的VGA信号通过信号扩展电路与选中PC机的视频通道连通,同时将该PC设备的VGA信号传送至KVM显示器,从而实现VGA切换控制。基于以上分析,该平台的设计主要有两大部分组成:硬件设计与软件实现。其中硬件电路上又有4部分组成:信号扩展电路、按键切换及指示灯电路、单片机切换控制电路、电源电路;软件上主要有ATmega8单片机程序设计。

2 硬件设计

整个扩展平台主要包括信号扩展电路、单片机切换控制

2.1 信号扩展电路设计

图1 扩展平台结构图Fig.1 Extend platform structure diagram

通过对KVM信号进行分析,整个KVM需要扩展的信号图。在芯片选择时要注意CD400系列芯片频率不够,应该考虑74HC系列芯片,本平台选用的模拟开关芯片是MM74HC4053和 MM74HC4051。

对于电源及地信号的扩展,由于模拟开关芯片最大允许500 mA的电流导通。而实际过程中电源及地中的电流可能大于500 mA,因此,不能单纯的利用模拟开关进行扩展,需借助于MOS管(其导通能力较大)来实现。本平台采用增强型MOS管配合三极管可以很好的达到增大电流的效果:通过三极管的导通、截止进而判定MOS管的通断从而实现分路切换。图3是部分电源及地信号扩展原理图,在运用MOS管时一定要注意其导通和截止的条件。

2.2 单片机控制电路设计

从KVM引出来的11路信号,经过扩展之后变成了11×6路,但是需要根据被控请求将其中一路与主信号连通,即要对6路扩展信号进行切换控制,以满足平台要求。采用单片机作为切换控制电路的核心控制器,单片机选用AVR单片分为VGA信号和PS/2信号。其中VGA信号主要有3路模拟信号(R、G、B 信号)和 2路数字信号(VSYNC、HSYNC 信号),PS/2信号主要包含 4路数字信号(MDATA、MCLK、KDATA、KCLK信号),另外将VGA信号及PS/2信号中的电源及地信号单独拿出来进行扩展。运用模拟开关技术将每一路信号扩展成了6路。

模拟开关是一种根据相应控制命令实现通断模拟信号传输的电路器件[6]。模拟开关有开关特性和半导体特性双重特性。模拟输入信号电压的过高或过低都会导致MOSFET管反向偏置,无法正常工作。因此在应用模拟开关芯片时,一定要保证模拟信号的电压在规定上午范围内[7]。用两片4053就可以扩展成6路模拟信号,把它们的O/IA,O/IB,O/IC连在一起作为公共输入端,通过控制A,B,C得高低从而选定与哪一路(AY,BY,CY)导通,用一片 4051就可以扩展 6路(最多可达8路)数字信号,图2是部分VGA及PS/2信号扩展原理机,具体型号为ATmega8,这是一款基于RSIC结构的低功耗8为单片机,最多23个可编程I/O口,可任意定义I/O的输入/输出方向;输出时为推挽输出,驱动能力强,输入口可定义为三态输入,可以设定内部上拉电阻,省去外部上拉电阻。片内集成了较大容量的非易失性程序和数据存储器以及工作存储器[8]。该系列单片机是在AT90系列的基础之上开发的,除了保留了AT90系列单片机的优点之外,ATmega系列单片机的稳定性和抗干扰性更强,使用更加灵活,功耗更低。图4是单片机切换控制电路原理图。

图2 部分VGA及PS/2信号扩展原理图Fig.2 Part of VGA and PS/2 signal extension principle diagram

单片机要实现两个功能:读取I/O口的信息来获取相关的切换请求;根据切换请求通过自身的端口输出对应的切换命令至模拟开关的控制端口A、B、C。

电源电路设计中采用三端稳压器件将来自电源的+12 V/-12 V电压变换成模拟开关芯片及单片机等芯片所需的工作电压。在按键切换及指示电路设计中,通过复位按键将对应的切换指令传送给单片机,切换成功时单片机会将对应的指示灯点亮。

图3 电源及地信号扩展原理图Fig.3 Part of power and ground signal extension principle diagram

图4 单片机切换控制电路原理图Fig.4 Single-chip switching control circuit principle diagram

3 扩展平台软件设计

扩展平台切换功能实现的过程中利用了单片机的IAP技术(在应用中可编程),ATmega8可以完成IAP的功能,即不需要特定的下载软件,而只需要一根串口线,在单片机自己本身的控制下,利用固化在引导程序区内的引导程序(BootLoader),通过串口将外部源程序写入Flash应用程序区的方法[9]。详细来讲:每次加电运行时,单片机都会先跳入引导程序区运行BootLoader程序,然后通过串口判断外部是否有源程序下载命令,如果有下载指令,那么单片机首先擦除原来的程序代码(按页擦除),接着将目标源程序从应用程序区第一行位置开始写入;如果没有程序下载指令,则单片机直接跳入应用程序区第一行位置开始执行程序,由于目标源程序编写的都是LOOP循环程序,所以,只要串口没有接收到下载指令单片机循环执行该程序,从而实现了所需的功能。

KVM扩展平台有两种切换模式:热键切换模式和按键切换模式,两种切换模式的逻辑是相同的,但是切换条件和方式不同。KVM扩展平台切换程序框图如图5所示。

图5 切换控制流程图Fig.5 Switch control flow chart

切换控制程序的编写是在基于Arduino的开发环境下利用processing语言实现的。Arduino是集软硬件于一体的开源电子平台,平台中包含了基于单片机的开源物理平台以及开源的Arduino软件开发环境,编写的程序可读性强。程序设计采用模块化设计,主要包含主程序、热键切换子程序及按键切换子程序等。主程序主要是对各个子模块进行初始化和调用子程序。热键切换首先设定某个键盘按键为热键,通过单片机不断查询键盘的KDATA信号,来判断该热键是否被按下来进行切换,若查询到有热键切换信号,则单片机按照顺序进行循环切换,当切换至第六台PC时若还有热键按下则会切换至第一台PC设备。按键切换则是通过MCU不断地查询PC0~PC6端口,判断按键是否被按下,进而通过I/O输出对应的切换指令实现切换。

4 结 论

该扩展平台成功的结合了单片机IAP技术、模拟开关技术实现了在一套KVM设备下对6个PC设备的切换控制功能,其中VGA的R、G、B信号采用MM74HC4053芯片进行切换,其他信号采用MM74HC4051芯片进行切换。通过测试,视频切换输出信号良好、键盘鼠标的灵敏度也比较好,达到了预期的设计要求。整个平台扩展性很强,可根据要求实现对更多的设备的切换,造价低,在提高工作效率的同时还节省了空间。但是若对视频输出质量的要求比较高,建议使用相关的视频切换芯片和性能更强的控制芯片来设计VGA扩展模块,在一些对视频输出质量要求不高的场合,本平台可以为其提供很好的视频显示及键鼠控制功能。

[1]许乃利,徐超,吴珑.基于AVR单片机的KVM切换模块的设计[J].仪器仪表学报,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切换器设计及应用[J].计算机应用与软件,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控制器的分类与设计[J].信息技术与信息化,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]宋吉江,牛轶霞,于春战,等.CMOS模拟开关及其选择问题[J].微电子技术,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].测控技术,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].内蒙古科技与经济,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的原理及设计要点[J].电子元器件应用,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.

猜你喜欢

按键键盘单片机
你知道手机拨号键盘上为什么要有*和#吗?
键盘猫
基于有限状态机的按键检测程序设计
基于单片机的SPWM控制逆变器的设计与实现
Cлово месяца
ikbc R300机械键盘
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
按键消抖在单片机和FPGA实验教学中的应用