微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的共享控制器的设计与实现?

基于单片机的共享控制器的设计与实现?

时间:10-31 来源:互联网 点击:
随着电子设备技术不断发展和产品功能不断增加,一般情况下,产品功能通常需要多个计算机配合实现。另一方面,在产品设计过程中,为了提高产品的可靠性,计算机备份技术作为提高产品可靠性重要手段之一也越来越多被采用。在这种情况下,为了降低产品的复杂度,合理使用有限的空间,在具体产品设计时,往往只有单套计算机外设配给多套主机使用。此时,需要解决多个主机之间的显示器、键盘和鼠标的动态切换问题。

而这一问题可以通过外设共享来解决,使用外设共享控制器,可实现双主机或者多主机之间显示器、键盘和鼠标的动态切换,从而实现有限资源的合理利用。

1 设计原理

1.1 外设共享控制器的功能介绍

按下外设共享控制器的主机1按键,外设显示器和键盘、鼠标连接到主机1,同时主机1按键指示灯亮;按下主机2按键,外设显示器和键盘、鼠标连接到主机2,同时主机2按键指示灯亮。外设共享控制器具有自动扫描功能,能够监测计算机的运行。主机1先启动,则外设显示器和键盘、鼠标连接到主机1,同时主机1按键指示灯亮;主机2先启动,则外设显示器和键盘、鼠标连接到主机2,同时主机2按键指示灯亮。另外,也可通过键盘上设定的热键(连续按两次Ctrl键)来控制键盘、鼠标、显示器信号的切换。

1.2 PS/2、VGA接口介绍

外设共享控制器涉及的外设是键盘、鼠标和显示器,接口类型分别是PS/2口、PS/2口和VGA口。PS/2键盘和鼠标履行一种双向步串行协议。也就是说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。键盘/鼠标可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。从键盘/鼠标发送到主机的数据在时钟的下降沿(CLK由高到低的时候)被读取;从主机发送到键盘/鼠标的数据在上升沿(当时钟从低变到高的时候)被读取。不管通讯的方向怎样,键盘/鼠标总是产生时钟信号。一个PS/2设备的工作频率推荐值为15kHz左右,这意味着时钟应该是高40μs低40μs。所有的数据位安排在一个字节中,每个字节为一帧,包含11~12个位。这些位为1个起始位0、8个数据位、1个校验位、1个停止位和1个应答位。常用的六芯插座布局及其定义见图1。

VGA接口是一种COMS/TTL接口,15芯插座布局及其定义见图2和表1。VGA信号本身不需要初始化,可直接进行切换。

1.3 外设共享控制器的设计原理

外设共享控制器的原理见图3,设计采用ATMEL公司的AT89S8252单片机,它拥有8k flash存储区、256×8位RAM。AT89S8252自带EEPRO-M,且其P0、P1、P2、P3均可作为I/O口使用。在本设计中,键盘鼠标等PS/2口的切换主要是通过双刀双掷继电器实现,显示的R、G、B信号主要通过AD8183芯片完成信号切换,H、V信号通过54LS157芯片完成信号切换。为保证显示信号切换的一致性,通过一个双刀双掷继电器对AD8183和54LS157进行统一控制。本文为两台计算机设计一套键盘鼠标共享电路,计算机数量多时,情形类似。

2 设计买现

外设共享控制器需要解决计算机启动对外设(PS/2、VGA)初始化,并在计算机启动完成后,控制信号的动态切换。共分为硬件设计和软件设计。

2.1 硬件设计

单片机U1的P1口接键盘K0、鼠标M0的时钟、数据线;P0口接计算机的键盘鼠标信号线,即:PCI的时钟线kbclk1、mselk1,数据线kbda-ta1、msdata1,PC2的时钟线kbclk2、msclk2,数据线kbdata2,msdata2;P2口用来控制计算机间的切换。

计算机启动时,P0口的时钟、数据线被拉高和拉低,单片机检测这些状态,并根据PS/2协议读出这些发来的命令。然后把这些命令直接发送给键盘K0。K0应答计算机的命令,单片机把这些应答数据转发给计算机。对于后台计算机,单片机直接回应这些计算机发来的命令。鼠标和计算机间的联系和键盘相同。

习惯上,指定其中一台计算机设为前台计算机,单片机转发这台计算机的命令、数据给键盘。当这台计算机没有接入时,单片机自动指定另一台为前台计算机。

单片机的P2口外接一瞬态开关,当开关按下时,单片机接受一个脉冲,于是就把当前的前台计算机和后台计算机进行互换。并放置指示灯指示对应计算机的状态。

显示信号分R、G、B信号,H、V信号。前三个信号为模拟信号,用AD8183芯片控制,在这个片子的输入输出端要力175Ω的匹配电阻,并且这个片子需要5V电源供电。输出选择端在U2的223脚SEL,当SEL端接地时,A路输出,否则B路输出。H、V信号由54LS157控制,这是四组2选1的数据选择器,它的选择端在1脚,1脚拉高B路输出

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top