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

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

时间:10-31 来源:互联网 点击:

,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接口共享时遇到的问题。实物经过筛选试验、环境适应性试验、电磁兼容试验,性能良好,安全可靠。

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

网站地图

Top