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

发布者:vnerwb池塘边最新更新时间:2013-10-31 来源: 21ic关键字:Atmel  单片机  共享控制器 手机看文章 扫描二维码
随时随地手机看文章
    随着电子设备技术不断发展和产品功能不断增加,一般情况下,产品功能通常需要多个计算机配合实现。另一方面,在产品设计过程中,为了提高产品的可靠性,计算机备份技术作为提高产品可靠性重要手段之一也越来越多被采用。在这种情况下,为了降低产品的复杂度,合理使用有限的空间,在具体产品设计时,往往只有单套计算机外设配给多套主机使用。此时,需要解决多个主机之间的显示器、键盘和鼠标的动态切换问题。

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

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)初始化,并在计算机启动完成后,控制信号的动态切换。共分为硬件设计和软件设计。[page]

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路输出,1脚拉低A路输出。这两个片子的选择端接到一个双刀双掷继电器,对AD8183和154LS15 7进行统一控制。

2.2 软件设计

    计算机启动时,运行BIOS,检测主板和各种外部硬件设备,识别其设备类型,并对它们进行初始化。当检测键盘时,如果扫描不到,且计算机在BIOS中设置PostBehavior->keyboard Errors->Report,计算机就会停止初始化,显示出错信息;否则,认为键盘不存在,跳过该设备,计算机初始化结束后该设备不能用。当多台计算机与一个键盘相连时,必须给没有与键盘物理连接的计算机建立虚拟的键盘。这个虚拟外设能够完成与计算机的数据交换,帮助计算机顺利通过BIOS检测。同样,对于鼠标,也必须建立虚拟鼠标使计算机通过BIOS检测。虚拟键盘和虚拟鼠标这些虚拟外设,在计算机给出命令时,应答命令,使计算机确信该外设存在。

    BIOS检测完成后,计算机进入系统初始化过程。在这个过程中,操作系统要对外部设备的具体参数进行设置。键盘要设置机打速率/延迟(typematic rate/delay);鼠标要设置采样率(sample rate),读取设备类型(不同类型的鼠标有不同的ID),设置分辨率(resolution,设置为每mm多少个计数点counts/mm),比例(scaling),设置数据报告禁止/允许。同样,对于计算机必须建立虚拟外设,使系统确认外设存在,以通过初始化。

    当上述过程完成后,系统就顺利通过了初始化。显示器显示一台计算机的画面,该画面对应的计算机称为前台计算机,不被显示画面的计算机为后台计算机。按下共享控制器上的切换按钮,外设选择一后台计算机,把其置前成为前台计算机,此时,显示器显示该计算机的画面,键盘鼠标响应该计算机。原先的前台计算机变为后台工作。

    启动过程的程序流程图见图4。

    本文用Keil C开发,它提供了丰富的数据类型,极大地增强了程序处理能力和灵活性,它能够自动实现中断服务程序的现场保护和恢复,目标程序效率高、可移植性好,是一种高级语言,可读性强,维护使用方便灵活。软件由主程序和中断服务子程序组成。主程序完成系统的初始化和计算机命令的响应、键盘鼠标数据的发送。中断程序主要包括键盘热键切换、外部按键切换。软件功能模块结构清晰可读。程序流程图见图4和图5。

     系统上电,外设共享控制器上电并开始对AT89S8252初始化。包括对变量、串口、定时器、中断控制、看门狗进行初始化操作。在这个过程中还需要对外部的计算机的PS/2外设进行初始化应答。并且自动扫描启动计算机,PS/2、VGA外设连接启动计算机,并显示启动计算机的画面。

    当完成BIOS检测和操作系统检测应答后,单片机进入主程序,执行正常键盘鼠标的操作功能。读取P1.1上键盘给主机的数据看是否有“切换前/后台计算机”的热键按下,如果是,将切换;否则,连接当前计算机。

3 设计小结

    本论文完成了主机1和主机2的键盘、鼠标、显示器几种外设的共享,解决了PS/2口、VGA接口共享时遇到的问题。实物经过筛选试验、环境适应性试验、电磁兼容试验,性能良好,安全可靠。

关键字:Atmel  单片机  共享控制器 引用地址:基于单片机的共享控制器的设计与实现‎

上一篇:基于LTC6802的锂电池组均衡电路设计
下一篇:基于ZigBee协议无线抄表智能电网终端设计‎

推荐阅读最新更新时间:2024-03-16 13:29

Atmel maXTouch T系列控制器成为新款 Windows 8.1 产品的首选
中国北京,2013年10月30日- 全球微控制器和触控解决方案领域的领导者Atmel®公司(纳斯达克:ATML)今日宣布其 maXTouch®T 系列控制器已为市场上最新发布的诸多 Windows 8.1 触控型产品采用。随着 Windows 8.1 平台的进一步普及,该系列控制器有望进一步扩大其领先地位。 由于maXTouch控制器帮助打造了超过115款采用 Win 8 及 8.1 系统的平板电脑、超极本和笔记本的触摸屏,因此 Atmel 在Windows®8 认证方面的领先地位非常显著。第二季度发布的首批maXTouch T系列控制器 —— 2952T和1664T ,为8.9”到15.6”的触摸屏提供了一组单芯片解决
[手机便携]
dsPIC30F6010单片机的原理及应用
1 前言 随着电子技术的发展以及集成电路规模的不断扩大,工业等各应用领域对于核心芯片的要求越来越苛刻。因而,计算机芯片也朝着高速化、专业化、模块化、功能化、低功耗、低电压工作等方向不断地发展、更新。 Microchip公司的PIC系列单片机以其内置Flash以及精简指令集等技术特点成为中低档8位单片机的主流产品,但是在一些复杂系统应用中,它仍存在一些缺陷和不足。为此,Microchip公司新推出了dsPIC30F系列16位单片机。它是一种具有单片机和DSP综合功能的16位CPU,不但保留了单片机的基本性能、丰富了外围模块,还兼具DSP的高速运算能力,是嵌入式系统设计的最佳解决方案之一。由于集多种功能于单一芯片,从而大大节省了电
[单片机]
51单片机实现在主函数while循环中驱动数码管的动态扫描程序
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: LED-74HC595 ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200604 ---- @ModifiedTime: 20200604
[单片机]
51<font color='red'>单片机</font>实现在主函数while循环中驱动数码管的动态扫描程序
单片机驱动EC11编码器
EC11编码器 EC11编码器通常又被称为旋转编码器,一般主要是用于亮度,温度,频率,音量调节等参数控制。 三只脚中的C脚接地,AB脚接上拉电阻后,当左转或右转时,AB脚就有脉冲信号输出。S1和S2脚为按压开关,按下时导通。 旋转编码器的引脚图和原理图为: 顺时针和逆时针旋转AB引脚输出波形图 和单片机通信的程序为: EC11.h #ifndef EC11 #define EC11 EC11.c #include All.h uchar EC11_Value = 125; // 获取旋转的值 /********************************* * @函数名:EC11
[单片机]
<font color='red'>单片机</font>驱动EC11编码器
AVR单片机详细介绍
ATMEL公司的AVR单片机,是增强型RISC内载Flash的单片机,芯片上的Flash存储器附在用户的产品中,可随时编程,再编程,使用户的产品设计容易,更新换代方便。AVR单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。AVR单片机工作电压为2.7-6.0V,可以实现耗电最优化。AVR的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。 ATMEL公司的90系列单片机 是基于新的精简指令RISC结构的。这种结构是在90年代开发出来的,综合了半导体集成技术和软件性能的新结构。这种结构使得在8位微处理器市场上
[单片机]
AVR<font color='red'>单片机</font>详细介绍
瑞萨电子推出升级版R-Car V3H,满足包括驾乘人员监控系统的最新NCAP要求
全球半导体解决方案供应商瑞萨电子集团(TSE:6723)今日宣布,推出最新升级版R-Car V3H片上系统(SoC),为智能摄像头应用带来显著提升的深度学习性能,包括驾驶员/乘客监控系统(DMS/OMS)、车载前置摄像头、环视系统以及最高可达Level 2+级适用于大部分车辆的自动泊车功能。升级后的SoC集成了实时域上的传感器融合、高达ASIL C级指标和针对智能计算机视觉进行优化的体系结构。它以极具竞争力的系统成本为OEM和一级供应商提供高性能、低功耗解决方案,并支持最新的NCAP 2020要求及向NCAP 2025 3星级技术路线图的迁移。 基于2018年2月发布的SoC,融合了用于卷积神经网络(CNN)的集成IP等最新识
[汽车电子]
51单片机的简介——特殊功能寄存器(SFR)
上一篇文章我介绍了AT89C51单片机的几个重要的引脚,这一次我来介绍一下AT89C51单片机中的特殊功能寄存器(SFR),SFR不是一个寄存器而是一组寄存器的总称,SFR包括如下寄存器: 寄存器符号 寄存器地址 地址区间 功能介绍 B F0H F0H~FFH B寄存器 ACC E0H E0H~EFH 累加器 PSW D0H D0H~DFH 程序状态字 TH2* CDH 定时器/计数器2(高8位) TL2* CCH 定时器/计数器2(低8位
[单片机]
基于C8051F060单片机和K9F2808UOC存储器实现数据采集系统的设计
从上个世纪九十年代起,电子技术在钻井井下得到应用。但井下钻具的振动会给很多传感器带来不利影响。 特别是对测量井下钻头姿态的惯性导航传感器影响巨大,在随钻振动环境中,如果对信号不作处理,根本就不能测量出正确的井斜角和方位角,也就无法实现井眼轨迹随钻控制的要求。本文介绍应用SoC芯片中的DMA技术对振动的高速采集和存储功能的实现方法,并给出了钻井环境中测试的结果。 1 方法的提出 传统的数据采集方法采用CPU直接控制的方式进行数据采集,数据传送需要经过CPU的中转才能存入存储器,传送速度慢且采集速率受到CPU的限制,极大影响了系统的采样频率,不能满足对振动信号高速采集的要求。而在DMA传送方式下,数据传送不经过CPU,由DMA
[单片机]
基于C8051F060<font color='red'>单片机</font>和K9F2808UOC存储器实现数据采集系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved