基于8051的KVM系统设计

来源:华强电子世界网 作者: 时间:2004-10-04 23:14

     (华强电子世界网讯) 近年来,随着计算机及网络技术的发展,政府、企业以及金融业等对机房环境的需求日益明确,原有机房条件已经成为信息化建设中的瓶颈。其面临的主要问题是:设备数量繁多,机型杂乱;空间利用率低;机房管理难读大、存在安全隐患。依照目前的现状,机房的管理需要在一个集中的平台完成所有的工作,减小机房内维护的工作量,减少大量的键盘、鼠标和显示器等外部设备,这样KVM系统就应运而生了。
    


    
图1,KVM系统工作示意

     所谓KVM主机切换系统,就是用一套或者多套KVM在多个不同操作系统的多台主机之间切换,实现一个用户使用一套键盘(Keyboard)、显示器(Video)、鼠标(Mouse)去访问和操作一台或一台以上主机的功能。图1是KVM的工作示意图。
    
     1 PS/2键盘鼠标协议
    
     KVM在整个系统中充当了多台主机和设备(键盘、鼠标、显示器)的中介。站在键盘鼠标的角度,KVM是一台模拟的主机;而在各台主机的角度看,它又是模拟的键盘和鼠标。KVM在与主机、键盘、鼠标通信时,必须严格遵守PS/2协议。
    
     图2是本文研究的KVM系统内部MCU与PS/2设备以及主机的连接原理图。PS/2设备履行一种双向同步串行协议。换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。设备可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自设备的通信,只需把时钟线电平拉低即可。
    

    
图2,MCU与主机、设备的连接

     从设备发送到主机的数据在时钟下降沿被读取;从主机发送到设备的数据在上升沿被读取。无论数据的方向如何,设备始终是时钟信号的产生者,如果主机要发送数据,它必须首先拉低数据线电平以告诉设备开始产生时钟信号。两者的通信时序如图3所示。所有数据安排于字节中,每个字节为一帧,包含了11-12个位。其含义如下表所示:
    

    

    
图3,主机、设备通信时序

     根据相应的时序确定主机与设备的通信流程如图4所示。
    
     当设备等待发送数据给主机时,它首先检查时钟线以确定它是否为高电平。如果不是,那么是主机抑制了通信,如果时钟线是高电平,则设备可以开始传送数据。设备发送数据给主机时,时钟信号由其产生。标准的时钟频率最高为33KHz,大多数设备工作于10-20KHz,建议使用15KHz的时钟频率。从时钟脉冲的上升沿到一个数据转变的时间至少要5微秒,数据变化到时钟脉冲的下降沿的时间至少要5微秒且不能大于25微秒,这个时限非常重要,必须严格遵守。设备在发送下个包前至少应该等待50微秒,这将给主机时间处理接收到的字节。
    
     当主机要发送数据,它必须首先把时钟和数据设置为“请求发送”状态:通过下拉时钟线至少100微秒来抑制通信,下拉数据线表示“请求”,然后释放时钟线。设备应该在不超过10毫秒的时间内检查处这个“请求”的状态,并且产生时钟信号,主机仅当时钟线为低的时候设置数据线,而数据在时钟脉冲的上升沿被锁存。这里有一个特殊的地方:设备产生应答位发生在时钟线为高的时候,这有别于其他11位数据。
    

    
图4,主机、设备通信流程

     2 KVM系统架构
    
     如前所述,KVM系统实现一套设备(键盘、鼠标、显示器)分时地操作多台主机。任何时刻,只有一台主机获得这套设备的使用权,而其余的主机若在这时刻发出了通信请求,则KVM必须能够识别该请求,并且能模拟设备与该主机进行通信。另一方面,KVM模拟成主机接收来自键盘、鼠标的控制信息(如切换到另一台主机等命令),进行相应地动作并在显示器上提示相关信息。图5是KVM的系统框图。使用Atmel公司的AT89S51单片机作为主控MCU和屏幕视控MCU。这两个MCU负责全部的控制工作。而这两个MCU之间通过串行通信口实现数据互通,协同工作。
    
     主控MCU的模拟主机部分接收来自键盘和鼠标的数据,过滤并识别出特定的控制命令字而作出相应的操作,例如通过接口控制去改变接口切换模块的状态等。模拟设备是负责与(没有获得设备使用权的)主机通信的部分。同时主控MCU通过串行通信口发送控制信息到屏幕视控MCU。
    
     接口切换模块是键盘、鼠标、显示器与主机的物理连接电路部分。这部分电路确定KVM系统能够连接主机的最大数目,可设计为2、4、8、16,但一般在16以下。某一时刻该模块根据主控MCU的接口控制信号选通一台主机与设备之间的物理连接,使其获得设备的使用权;同时轮流选通其他主机与主控MCU的模拟设备之间的物理连接,使得这些主机也能正常进行通信,由于主机孤立主动地发出通讯请求的情况极少,这种情况在主机启动中初始化设备的时候会出现,所以由模拟设备用“轮询”的方式与各台主机通信是可以实现的,只要控制好处理时间分配问题和保证请求通信的主机的数量不超出极限。
    

    
图5,KVM系统结构

     屏幕视控MCU也设计有模拟主机接收来自键盘和鼠标的数据,识别出OSD(屏幕视控)控制命令字,然后由屏幕视控接口发出相应的控制信号给屏幕视控OSD叠加模块,如有需要时可通过串行通信口发送相应的控制信息到主控MCU。
    
     屏幕视控OSD叠加模块的作用是获取接口切换模块传送过来的VGA信号,根据屏幕视控接口的控制信号在VGA信号上叠加上要显示的信息给用户。
    软件的主体流程设计如图6所示。
    

    
图6,MCU主程序流程图

     实际应用中8口、16口的KVM系统很显然不能满足使用要求,一般采用“级联”的方式解决主机数目的限制,这样必须在原程序的基础上加入级联的控制部分。图7是KVM的两级联工作方式。用一级KVM的一个端口可以衍生出下一级KVM,以8口KVM为例,作两级联时,最大连接主机数目为8x8=64,三级联则为8x8x8=512,但也不能无限制的增加级联数目,原因是软件设计要兼容多级联使得其复杂度、大小也相应递增,一般级联不会超过三级。
    

    
图7,KVM级联工作

     3 OSD叠加模块
    
     OSD的全称为On-Screen Display,也就是在显示器上显示彩色字符的方式,现今很多OSD的IC使用的通信协议的方式是I2C Bus,OSD IC内部已经有规划好的内定字符,当然也可以根据需求而自行设计一定数量的字符,使用者必须在指定的“行”、“列”将字符显示出来并规划其排列格式,配合按键操作而达到屏幕视控的效果。本文研究的KVM系统使用MTV021N芯片,它具有稳定性好,外围电路简单、价格低廉的优点。
    
     4 结束语
    
     KVM主机切换系统的出现缓解了现代机房建设遇到的问题,有很大的实用价值。本文提出的KVM方案是一个简单的,实现最基本KVM功能的方案,为KVM开发者提供新的思路和方法。
    
    
(编辑 keil)

    
    
欢迎投稿和提供新闻线索,欢迎您的批评和建议
    电话:0755—83291727
    邮箱:jiaxiang@hqew.com

    
    
    
    
    
    
    
    
    
    

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子