基于FPGA的KVM切换器的设计与实现

2018-05-14 02:54郭栋梁柏淑红李晓飞
山西电子技术 2018年2期
关键词:发送数据框图鼠标

郭栋梁,柏淑红,杨 伟,李晓飞

(山西大众电子信息产业集团有限公司 军用信息设备事业部,山西 太原 030024)

1 KVM切换器工作原理

KVM切换器也称“KVM多电脑切换器”,它是Keyboard(键盘)、Video(显示器)和Mouse(鼠标)三个单词的第一个字母,即能够实现用一套显示器、键盘、鼠标来控制多台主机设备[1]。随着各种场所的信息化及装备的复杂化发展,为有效减少人员的配置、节约占用面积,须在这些场所引入KVM模块,以提高系统的合理性及管理人员的工作效率,节约有限的工作面积,降低网络及系统的总体设备成本。如图1所示为KVM切换器原理框图。

图1 KVM切换器原理框图

系统由外围控制设备、FPGA、显示切换开关以及PC机群组成。PS/2键盘鼠标与主机的通信完全由FPGA编程完成,VGA与串口信号由FPGA控制模拟开关完成信号的传输与切换。整个KVM切换器具有结构简单、电路复杂程度低、响应速度快等优点。

2 KVM切换器程序设计

2.1 PS/2接口协议分析

PS/2设备接口用于许多现代的鼠标和键盘,它是由IBM开发并且最初出现在IBM技术参考手册里[2]。现在的PS/2设备接口仍广泛应用于对连接稳定性要求较高的场景下。

PS/2鼠标和键盘是一种双向同步串行协议,键盘/鼠标可以发送数据到主机,而主机也可以发送数据到设备。但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,主机只要把时钟拉低即可[3]。由于PS/2接口协议并不是一个十分标准的协议,这里我们按照一般的设备设置,将时钟频率设置为15MHz。这里需要主机,不管通信方向是从主机到设备还是从设备到主机,时钟都是由设备产生。

2.1.1 PS/2设备到主机通讯协议分析

从键盘/鼠标发送到主机的数据在时钟信号的下降沿,即当时钟从高变到低的时候被主机读取[4]。PS/2设备到主机通讯过程如图2所示。

图2 PS/2设备到主机通讯过程

PS/2设备要向主机发送数据时,首先检测时钟、数据线是否都是高电平,以此来判断主机是否需要对外设进行通信,如果时钟数据都为高,PS/2设备先将数据拉低,之后产生时钟下降沿以产生一个START信号,通知主机数据发送开始[5]。主机在每个时钟的下降沿读入数据,并在读取8 bit的DATA后校验设备发来的奇偶校验位,最后产生一个STOP停止信号完成本次设备到主机的通信。

2.1.2 PS/2主机到设备通讯协议分析

从主机发送到设备的数据在时钟信号的上升沿,即当时钟从低变到高的时候被设备读取。PS/2主机到设备通讯过程如图3所示。

图3 PS/2主机到设备通讯过程

主机要向PS/2设备发送数据时,首先将时钟信号拉低100 us以上,然后拉低时钟线产生一个START起始信号。当设备检测到这个状态后,将开始产生时钟信号,并且时钟脉冲标记下输入八个数据位、一个奇偶校验位和一个停止位。之后拉低数据线产生一个ACK回应位,以应答主机,表明数据已收到。最后拉高数据线完成本次主机到设备的通信。

3 KVM切换器工作流程

3.1 FPGA工作模块框图

由于该KVM切换器中只是用了一个FPGA芯片,虽然电路设计上大大简化,但需要使用FPGA通过内部逻辑实现模拟PS/2外设与主机初始化模块、模拟主机与PS/2外设初始化模块,键鼠工作模块、键盘点电灯记忆模块、切换指示模块、状态打印模块等模块,以此来完成KVM切换器的正常工作。FPGA工作模块框图如图4所示。

图4 FPGA工作模块框图

3.2 KVM切换器工作流程

当KVM切换器上电自检完成后,程序中会持续检测主机是否上电,如果主机上电,FPGA初始化模块开始工作,分别模拟设备与主机进行初始化、模拟主机与设备进行初始化。在初始化完成后,进入键盘鼠标工作模块,在这期间,切换器会持续检测主机是否重启、切换开关是否动作,如果切换开关有动作或者主机重启,则重新进入初始化流程。KVM切换器工作流程如图5所示。

图5 KVM切换器工作流程

3.3 测试结果及性能分析

在电路板调试以及程序调试完成后,在KVM切换器上外接PS/2键盘、鼠标、显示器、一路Window7系统主机、一路Linux系统主机。实验证明,KVM切换器能快速稳定的完成一路键盘、鼠标、VGA及串口向两路键盘、鼠标、VGA及串口的转换。其中PS/2键盘、鼠标实时采集数据以及电路板实物图分别如图6、图7所示。

图6 PS/2键盘、鼠标实时采集数据

图7 电路板实物图

4 经济效益

该切换器已经过某型车上实验验证,实现了多路主机的信号切换功能,并已经验证了该切换器的稳定性。在信息化及装备复杂化的今天,KVM切换器的应用范围也将越来越广泛。

[1] 马光华,郑建立.基于FPGA和ARM9微控制器的KVM交换机设计[J].仪表技术,2013(9):23-25,28.

[2] 陈坤.基于电容式触摸技术的研究与应用[D].西安:西安电子科技大学,2012.

[3] 钱幸存,高同国.基于单片机的多计算机外设共享控制器的设计与实现[J].电子技术,2011,38(5):29-30,28.

[4] 孙杰.一种基于CPLD的PS2接口切换设计方法[J].电子技术,2017,46(4):45-47.

[5] 张利民,邹益民.一种具有语音播报功能的PS/2键盘鼠标测试仪设计[J].自动化与仪器仪表,2014(6):68-70,73.

猜你喜欢
发送数据框图鼠标
Progress in Neural NLP: Modeling, Learning, and Reasoning
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
一种车载自组织网络的媒体接入控制协议
带标记方式的CRDSA++协议性能分析*
电路图2017年凯迪拉克XT5
算法框图的补全
使用IPSec安全传输数据
基于主控同步的CAN总线多点实时数据采集技术
基于图表法构建《万有引力定律与航天》知识网络
45岁的鼠标