毕业设计(论文)-PS2键盘鼠标识别器的设计.doc_第1页
毕业设计(论文)-PS2键盘鼠标识别器的设计.doc_第2页
毕业设计(论文)-PS2键盘鼠标识别器的设计.doc_第3页
毕业设计(论文)-PS2键盘鼠标识别器的设计.doc_第4页
毕业设计(论文)-PS2键盘鼠标识别器的设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书(论文)作 者: 赵宏志 学 号: 0906220242 学 院: 信息工程学院 专 业: 通信工程 题 目: PS/2键盘鼠标识别器的设计 指导者: 赵立权 副教授 (姓 名) (专业技术职务)评阅者: (姓 名) (专业技术职务) 2013 年 6 月 吉 林毕业设计说明书(论文)中文摘要键盘是嵌入式系统的最重要的输入设备之一,是实现人机交互的重要途径,设计者除了可以自行设计扫描式矩阵键盘之外,还可以选择标准PS/2键盘实现人机交互。标准PS/2键盘由于接口通信协议简单,在系统中占用软硬件资源少,高可靠性,表达信息量大而得到了越来越广泛的应用。PS/2接口作为传统的鼠标键盘接口已经被大部分人所熟知,虽然随着USB接口键鼠的普及,绝大多数PC用户均选择了USB的键鼠,但目前主流PC中依旧保留了PS/2键鼠的接口,由于PS/2接口实现简单,使用方便的特点,在许多领域如工控机等仍旧采用PS/2接口来完成基本的人机交互。本文分析了当前市场上主流PS/2键盘鼠标的工作协议,阐述了PS/2接口键盘识别器的工作原理。关键词 嵌入式系统 PS/2键盘鼠标 矩阵键盘 通信协议1毕业设计说明书(论文)外文摘要Title PS2 keyboard mouse recognizer AbstractKeyboard is one of the most important input device of the embedded system, is the important way to realize the human-computer interaction, the designers in addition to the design matrix keyboard scanning, you can also select the standard PS/2 keyboard to realize human-computer interaction. Standard PS/2 keyboard because of its simple interface communication protocol, software and hardware resources occupancy in the system, high reliability, express information and has been more and more widely used. PS/2 interface as a traditional mouse and keyboard interface has been known by most people, although with the popularity of USB keyboard, the vast majority of PC users are chose a USB keyboard, but still keeps the current mainstream PC PS/2 keyboard interface, because of the PS/2 interface implementation is simple, easy to use, in many fields such as industrial PC, still use the PS/2 interface to complete basic human-computer interaction.This paper analyzes the current mainstream on the market a PS/2 keyboard mouse work agreement, expounds the working principle of PS/2 keyboard interface identifier.Keywords embedded system PS/2 keyboard,the mouse Matrix keyboard Communication protocol 1目 录目 录摘要IAbstractII第1章 绪 论11.1 选题的背景11.2 课题研究的目的和意义21.3 PS/2的现状与发展3第2章 PS/2鼠标、键盘协议42.1 PS/2的物理接口 42.2 PS/2键盘鼠标协议42.3 设备到主机的通讯过程52.4 主机到设备的通讯72.5 本章小结 9第3章 PS/2键盘接口设计103.1 PS/2键盘接口特性103.1.1 PS/2键盘接口概述103.1.2 扫描码103.1.3 通码断码和机打重复率103.2 硬件接口设计113.2.1 单片机的基础知识113.2.2 单片机的发展123.2.3 单片机AT89C51的特性123.2.4 硬件电路图163.3 软件程序设计173.3.1 单片机与键盘间的PS/2通信程序的设计173.3.2 键盘键盘初始化程序193.4 本章小结20第4章 PS/2鼠标接口设计214.1 PS/2鼠标接口特性214.1.1 输入、分辨率和缩放比例214.1.2 位移数据包214.1.3 PS/2鼠标工作模式224.1.4 PS/2鼠标的数据传送帧过程详解224.2 单片机和PS/2鼠标的硬件接口234.3 PS/2鼠标的软件设计244.4 本章小结25总 结26参考文献27致谢28附录291第1章 绪 论第1章 绪 论1.1 选题的背景PS/2接口是计算机发展到一定阶段的一种接口规范,是1987年,IBM推出的键盘接口标准,支持双向串行通讯协议。键盘和鼠标上的口是Male(公的),称为Plug(插头)。主板上的接口是Female(母的),称为Socket(插座)。因此,这两个就分别是Plug Socket,简称PS而已,又因为其支持双向通信协议,故称为PS/2接口。PS/2是在较早电脑上常见的接口之一,用于鼠标、键盘等设备。一般情况下,PS/2接口的鼠标为绿色,键盘为紫色。以前完全开放的PC标准让IBM觉得利益受了损失。所以IBM设计了PS/2这种电脑,目的是重新定义PC标准,不再采用开放标准的方式。在这种电脑上IBM使用了新型MCA总线,新的OS/2操作系统。PS/2电脑上使用的键盘鼠标接口就是现在的PS/2接口。因为标准不开放,PS/2电脑在市场中失败了。只有PS/2接口一直沿用到今天1。PS/2设备接口用于许多的现代的鼠标和键盘,它是由IBM开发并且最初出现在IBM技术参考手册里。标准PS/2键盘由于接口通信协议简单,在系统中占用的软硬件资源少,可靠性高,表达信息量大而得到越来越广泛的应用2。目前,在嵌入式智能仪器仪表中,常用LCD加键盘实现人机接口,在实际应用中人机界面需要显示汉字,笔者从事的一个电力保护项目中还需要输入并保存汉字以标注线路号的信息,如果用简单的控制键盘实现英文甚至汉字的输入,则程序比较复杂,笔者考虑到PC上用的标准PS/2键盘,可通过简单的接口实现与MCU的连接,利用成熟且普及的PC键盘,可实现复杂的输入,对于MCU并不占用很多口线,甚至口线复用,可仅在需要输入时再接上键盘,是一种廉价的键盘解决方案。键盘是嵌入式系统的重要的输入设备,是实现人机交互的重要的手段之一,随着标准PS/2键盘急速成熟和价格不断下降,在嵌入式系统的设计中,用标准PS/2键盘取代自制简易的扫描式矩阵式键盘称为可能3。在单片机系统中,经常使用的键盘都是专用键盘。此类键盘为单独设计制作的,成本高,使用硬件连接线多,而且可靠性不高,这一状况在那些要求键盘按键较多的应用系统中更为突出。与此相比,在PC系统中广泛应用PS/2键盘具有价格低,通用可靠而且连接线少(仅使用2根信号线)的特点,并且可满足多种系统的要求。因此在单片机系统中应用PS/2键盘是一种很好的选择。1.2 课题研究的目的和意义 PS/2接口是输入装置接口,而不是传输接口。所以PS/2口根本没有传输速率的概念,只有扫描速率。在Windows环境下,PS/2鼠标的采样率默认为60次/秒,USB鼠标的采样率为120次/秒。较高的采样率理论上可以提高鼠标的移动精度。PS/2接口设备不支持热插拔,强行带电插拔有可能烧毁主板。PS/2可以与USB接口互转,即PS/2接口设备可以转成USB,USB接口设备也可以转成PS/2。早期,在PS/2键盘中,包含了一个嵌入式的微控制器(如InDl,8048系列),以用来执行各项的工作并减少整个系统工作中的负担。微控制器所要作的工作就是监测所有的按键,以及当按键被按下或放开时,就回报给主机。在单片机的嵌入式应用中,有时需要输入较多的参数,来完成程序或数据参数的设定操作,在对信息安全要求较高的场所(比如银行系统的一些智能设备),有时需要输入一些敏感的数字或字母资料,有十多个按键的位置及常规输入设备由于很容易被别人看到操作作者按按键的位置及顺序从而使得数据失密。PS/2接口的鼠标是被现代个人微机广泛采用的外部定点输入设备,它易于操作而且价格廉价。如果能够利用PS/2鼠标的标准接口特性,在单片机应用系统中设计一个PS/2接口作为系统的输入设备,不仅占用资源少,成本低而且操作简单,同时具有保密性好的优点。1.3 PS/2的现状与发展随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84-101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84-101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS/2及AT键盘兼容,只是功能不同而已。一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、DATA(数据脚)、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和DATA(数据脚)都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。PS/2接口是一种PC兼容电脑系统上的接口,可以用来链接键盘及鼠标。PS/2的命名来自于1987年IBM所推出的个人电脑:PS/2系列。PS/2鼠标连接通常用来取代旧式的串行鼠标接口(DB -9 RS-232);而PS/2键盘连接则是用来取代为IBM PC/AT所设计的大型5-pin DIN接口。PS/2的键盘及鼠标接口在电气特性上十分相似,其中主要的差别在于键盘接口需要双向沟通。在早期如果对调键盘和鼠标的插槽,大部分的台式机主板将不能识别出键盘及鼠标。现在已经没有关系了4。目前PS/2接口已经慢慢的被USB所取代,只有少部分的台式机仍然提供PS/2接口。有些鼠标可以使用转换器将接口由USB转换成PS/2,亦有可以从USB分接成键盘鼠标用PS/2接口的转接线。PS/2接口不支持热插拔。可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。- 31 -第2章 PS/2鼠标、键盘协议第2章 PS/2鼠标、键盘协议2.1 PS/2的物理接口物理上的PS/2端口是两类连接器中的一种:5脚的DIN或6脚的Mini-DIN。这两种连接器(在电气特性上)是十分类似的,实际上两者只有一点不同那就是管脚的排列。这就意味着这两类连接器可以很容易用一种简单的硬件连线的适配器来转换。这种适配器大约每个值6美元,或者你可以根据任意两种连接器的对应管脚关系做你自己的适配器。DIN标准是由德国标准化组织(Deutsches Institut Fuer Norm)建立的。PC键盘可以有6脚的mini-DIN或5脚的DIN连接器6。如果你的键盘是6脚的mini-DIN而你的计算机是5脚的DIN(或者相反),这两类连接器可以用上面提到的适配器来兼容。具有6脚mini-DIN的键盘通常被叫做“PS/2”键盘,而那些有5脚DIN叫做“AT”设备(“XT”键盘也使用5脚DIN,但它们非常古老并且多年前就不生产了)。所有现代的为PC建造的键盘不是PS/2,AT就是USB的。这篇文章不适用于USB,设备它们使用了一种完全不同的接口。鼠标流行着大量的形状和大小(和接口),最流行的类型可能算是PS/2鼠标,现在USB鼠标渐渐开始流行起来了。串行鼠标同样非常流行,但计算机工业放弃了它们转而支持USB和PS/2设备。每种连接器的引脚定义如下所示图2-1 5脚DIN连接器图2-2 6脚DIN连接器2.2 PS/2键盘鼠标协议 在刚才提到连接器上有四个有趣的管脚;电源地、5V、数据和时钟。Host(计算机)提供+5V,并且键盘/鼠标的地连接到host的电源地上。数据和时钟都是集电极开路的,这就意味着它们通常保持高电平而且很容易下拉到地(逻辑0)。任何你连接到PS/2鼠标、键盘或host的设备在时钟和数据线上要有一个大的上拉电阻。置“0” 就把线拉低,置“1”就让线上浮成高电平。(注意:如果你打算使用象PIC这样的微控制器,由于它们的I/O管脚是双向的,你可以跳过晶体管和缓冲门,并且通用同一个管脚进行输入和输出。在这种组态情况下,要设置管脚为输入就写入1使得电阻上拉线上的电平,要改变管脚为输出就写入0到那个管脚,把线路下拉到地。) PS/2鼠标和键盘履行一种双向同步串行协议。换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。键盘、鼠标可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。 从键盘、鼠标发送到主机的数据在时钟信号的下降沿(当时钟从高变到低的时候)被读取;从主机发送到键盘、鼠标的数据在上升沿(当时钟从低变到高的时候)被读取。不管通讯的方向怎样,键盘、鼠标总是产生时钟信号。如果主机要发送数据,它必须首先告诉设备开始产生时钟信号(这个过程在下一章节中被描述)最大的时钟频率是 33KHZ,而且大多数设备工作在10-20KHZ。如果你要制作一个PS/2设备,我推荐你把频率控制在15KHZ左右。这就意味着时钟应该是高40微秒低40微秒。所有数据安排在字节中,每个字节为一帧,包含了11-12个位。这些位的含义如下:表2-1 数据帧格式说明1个起始位总是为0 8个数据位低位在前1个校验位奇校验1 个停止位 总是为11 个应答位 仅在主机对设备的通讯中 如果数据位中包含偶数个1,校验位就会置1;如果数据位中包含奇数个1,校验位就会置0。数据位中1的个数加上校验位总是为奇数(这就是奇校验)这是用来进行错误检测的。 当主机发送数据给键盘、鼠标时,设备回送一个握手信号来应答数据包已经收到。这个位不会出现在设备发送数据到主机的过程中。2.3 设备到主机的通讯过程 数据和时钟线都是集电极开路结构(正常保持高电平)。当键盘或鼠标等待发送数据时,它首先检查时钟以确认它是否是高电平。如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据直到重新获得总线的控制权(键盘有16字节的缓冲区,而鼠标的缓冲区仅存储最后一个要发送的数据包)。如果时钟线是高电平,设备就可以开始传送数据。 如我在上一节提及的,键盘和鼠标使用一种每帧包含11位的串行协议7。这些位含义是:表2-2 数据帧格式说明1 个起始位总是为 08 个数据位低位在前1 个校验位奇校验1 个停止位总是为 1 每位在时钟的下降沿被主机读入,如图2-3:图2-3:设备到主机 当时钟为高时,设备驱动数据线改变状态,在时钟信号的下降沿数据被控制器锁存。 时钟频率为1016.7KHZ,从时钟脉冲的上升沿到一个数据转变的时间至少要有5微秒。数据变化到时钟脉冲的下降沿的时间至少要有5微秒并且不大于25微秒。这个定时非常重要。主机可以在第11个时钟脉冲(停止位)之前把线拉低,导致设备放弃发送当前字节(这是非常罕见的)。在停止位发送之后,设备在发送下个包前至少应该等待50毫秒。这将给主机时间当它处理接收到的字节时抑制发送(主机在收到每个包时,通常自动做这个)。在主机释放抑制后,设备至少应该在发送任何数据前等50毫秒。按下面的过程发送一个单一字节从PS/2到主机:(1)检测时钟线电平,如果时钟线为低,则延时50微秒;检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);(2)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);(3)延时20微秒(如果此时正在发送起始位,则应延时40微秒);(4)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;(5)输出8个数据位到数据线上;(6)输出校验位;(7)输出停止位(1);(8)延时30微秒(如果在发送停止位时释放时钟信号则应延时50微秒); 按如下的过程发送单个位:(1)准备数据位(将需要发送的数据位放到数据线上)(2)延迟20微秒(3)把时钟拉低(4)延迟40微秒(5)释放时钟(6)延迟20微秒2.4 主机到设备的通讯 被发送的包有点不同于主机到设备通讯过程。首先,PS/2设备总是产生时钟信号。如果主机要发送数据,它必须首先把时钟和数据线设置为“请求发送”状态,如下示:1)通过下拉时钟线至少100微秒来抑制通讯。2)通过下拉数据线来应用“请求发送”然后释放时钟。 设备应该在不超过10毫秒的间隔内就要检查这个状态。当设备检测到这个状态,它将开始产生时钟信号,并且时钟脉冲标记下输入八个数据位和一个停止位。主机仅当时钟线为低的时候改变数据线,而数据在时钟脉冲的上升沿被锁存。当发生在设备到主机通讯的过程中时正好相反。 在停止位发送后,设备要应答接收到的字节,就把数据线拉低并产生最后一个时钟脉冲。如果主机在第11个时钟脉冲后不释放数据线,设备将继续产生时钟脉冲直到数据线被释放(然后设备将产生一个错误)。 主机可以在第11个时钟脉冲(应答位)前中止一次传送,只要下拉时钟线至少100微秒。 要使得这个过程易于理解,主机必须按下面的步骤发送数据到PS/2设备:(1)把时钟线拉低至少100微秒(2) 把数据线拉低(3) 释放数据线(4) 等待设备把时钟线拉低(5) 设置/复位数据线发送第一个数据位(6) 等待设备把时钟拉高 (7) 等待设备把时钟拉低(8) 重复5-7步 发送剩下的7个数据位和校验位(9) 释放数据线(10)等待设备把数据线拉低(11)等待设备把时钟线拉低(12) 等待设备释放数据线和时钟线。 图2-4用图形表示,图2-5以单独的时序表示了由主机产生的信号及由PS/2设备产生的信号。注意应答位时序的改变,数据的改变发生在时钟线为高的时候,不同于其它11位是当它为低的时候。图2-4 主机到设备的通信图2-5 主机到设备通讯的详细过程 图3-5描述了两个重要的定时条件(a)和(b)。(a)在主机最初把数据线拉低后,设备开始产生时钟脉冲的时间,必须不大于15毫秒;(b)数据包被发送的时间必须不大于2ms。如果这两个条件不满足,主机将产生一个错误。在包收到后,主机为了处理数据立刻把时钟线拉低来抑制通讯。如果主机发送的命令要求有一个回应,这个回应必须在主机释放时钟线后20毫秒之内被收到。如果没有收到,则主机产生一个错误。在设备到主机通讯的情况中,时钟改变后的5微秒内不应该发生数据改变的情况。 如果要仿真一个鼠标或键盘,则按如下的过程从主机读入数据: 在你的主程序中,至少每10毫秒检测数据线是否为低,如果数据线已被主机拉低,则从主机读取一个字节。(1)等待时钟线为高电平; (2)判断数据线是否为低,为高则错误退出,否则继续执行;(3)读地址线上的数据内容,共8个Bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收 ;(4)读地址线上的校验位内容,1个Bit; (5)读入停止位; (6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错);(7)输出应答位;(8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误;(9)延时45微秒,以便PC机进行下一次传输 8 。 按如下次序读取每位(8个数据位、检验位和停止位):(1)延迟20微秒(2)把时钟拉低 (3)延迟40微秒(4)释放时钟(5)延迟20微秒(6)读数据线 按如下次序发送应答位:(1) 延迟15微秒(2)把数据线拉低(3)延迟5微秒(4)把时钟线拉低(5)延迟40微秒(6)释放时钟线(7)延迟5微秒(8)释放数据2.5 本章小结 PS/2键盘、鼠标协议包括物理上的连接器以及它的电气特性。具体分为设备到主机的通讯和主机到设备的通讯。本章节还具体阐述了两者之间的不同点和工作流程以及工作原理。第3章 PS/2键盘接口设计第3章 PS/2键盘接口设计3.1 PS/2键盘接口特性 现今仍在使用中的绝大多数流行的键盘包括:USB键盘,它最后出现的键盘被所有新式的计算机支持(Macintosh和IBM/及其兼容机)。它们有自己相关的复杂接口并且不包含这篇文章中。IBM机器兼容键盘,也叫做“AT键盘”或“PS/2键盘”,所有现代的PC都支持这个设备。它们是最容易使用的接口,也是本文的主题。ADB键盘,连接到老式Macintosh系统的Apple桌面总线。3.1.1 PS/2键盘接口概述 键盘上包含了一个大型的按键矩阵,它们是由安装在电路板上的处理器(叫做“键盘编码器”)来监视的。具体的处理器在键盘与键盘之间是多样化的,大概好似它们基本上都做着同样的事情:监视哪些按键被按下或释放了,并传送适当的时候到主机。如果有必要,处理器处理所有的去抖动并在它的16 字节缓冲区里缓冲数据9。你的主板包含了一个“键盘控制器”负责解码所有来自键盘的数据,并告诉你的软件什么事件发生了。在主机和键盘之间的通讯使用IBM 的协议。3.1.2 扫描码键盘的处理器花费很多的时间来扫描或监视按键矩阵。如果它发现有键被按下,释放或按住,键盘将发送“扫描码”的信息包到计算机。扫描码有两种不同的类型:“通码”和“断码”。当一个键被按下或按住就发送通码;当一个键被释放就发送断码。每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键。每个键一整套的通断码组成了“扫描码集”。有三套标准的扫描码集,分别是第一套、第二套和第三套。所有现代的键盘默认使用第二套扫描码。第一套扫描码集:原始的XT扫描码集;现在某些键盘还支持;第二套扫描码集:所有现代键盘默认的扫描码集;第三套扫描码集:可选的PS/2扫描码集(很少使用);3.1.3 通码断码和机打重复率 只要一个键被按下,这个键的通码就被发送到计算机。记住通码只表示键盘上的一个按键,它不表示印刷在按键上的那个字符。这就意味着在通码和ASCII 码之间没有已定义的关联。直到主机把扫描码翻译成一个字符或命令。虽然多数第二套通码都只有一个字节宽,但也有少数“扩展按键”的通码是两字节或四字节宽。这类的通码第一个字节总是为E0h。正如键按下通码就被发往计算机一样,只要键一释放,断码就会被发送。每个键都有它自己唯一的通码,它们也都有唯一的断码。幸运的是,你不用总是通过查表来找出按键的断码,在通码和断码之间存在着必然的联系。多数第二套断码有两字节长,它们的第一个字节是F0h,第二个字节是这个键的通码。扩展按键的断码通常有三个字节,它们前两个字节是E0h,F0h,最后一个字节是这个按键通码的最后一个字节。作为一个例子,我在下面列出了几个按键的第二套通码和断码:表3-1 个别第二套的通码断码Key(Set 2)Mark Code(Set 2)Break Code“A”1CF0,1C“5”2EF0,2E“F10”09F0,09Right ArrowE0,74E0,F0,74Right “Ctrl”E0,14E0,F0,14 例如:通码和断码是以什么样的序列发送到你的计算机,使得字符“G”出现在你的字处理软件里呢?因为这是一个大写字母,需要发生这样的事件次序:按下“Shift”键按下“G”键,释放“G”键,释放“Shift”键。与这些时间相关的扫描码如下“Shift”键的通码(12h),“G”键的通码(34h),“G”键的断码(F0h,34h),“Shift”键的断码(F0h,12h)。因此,发送到你的计算机的数据应该是:12h,34h ,F0h,34h,F0h,12h。如果你按了一个键,这个键的通码被发送到计算机。当你按下并按住这个键,则这个键就变成了机打,这就意味着键盘将一直发送这个键的通码直到它被释放或者其他键被按下。要想证实这点,只要打开一个文本编辑器并按下“A”键。当你首先按下这个键,字符“a ”立刻出现在你的屏幕上。在一个短暂的延迟后,接着出现一整串的“a ”直到你释放“A ”键。这里有两个重要的参数:机打延时,是第一个和第二个“a”之间的延迟:机打速率是在机打延时后每秒有多少字符出现你的屏幕上。机打延时的范围可以从0.25 秒到1.00 秒;机打速率的范围可以从2.0cps(字符每秒)到30.0cps。你可以用“Set Typematic Rate/Delay ”(0xF3)命令来改变机打速率和延时10。机打的数据不被键盘所缓冲。在多个键被按下的情况下,只有最后一个按下的键变成机打。当这个键被释放时,机打重复就停止了,甚至于其他的键依然还按着。3.2 硬件接口设计 总体来说本文本研究课题所设计的PS/2键盘鼠标识别器是基于单片机控制的,并且是以美国ATMEL公司的AT89C51为核心。3.2.1 单片机的基础知识 单片机就是在一块半导体硅片上集成了微处理器(CPU),存储器(RAM,ROM,EPROM)和各种输入、输出接口(定时器/计数器,并行I/O口,串行口,A/D转换器以及脉宽调制器PWM等),这样一块集成电路芯片具有一台计算机的特性,因而被称为单片微型计算机,简称单片机。单片机主要应用于测控领域,用以实现各种测试和控制功能。为了强调其控制属性,在国际上,多把单片机称为微控制器MCU(MicroController Unit)。由于单片机在使用时,通常是处于测控系统的核心地位并嵌入其中,所以,通常也把单片机称为嵌入式控制器EMCU(Embedded MicroController Unit)。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:CPU(Central Processing Unit,中央处理器)、存储器和I/O接口电路等。因此,单片机只需要与适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可。3.2.2 单片机的发展早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评11 。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机12。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。3.2.3 单片机AT89C51的特性AT89C系列单片机是ATMEL公司生产的一款标准型单片机。其中数字9表示内含Flash存储器,C表示CMOS工艺。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 1.主要性能参数与MCS-51产品指令系统完全兼容;4k字节可重擦写Flash闪速存储器;1000次擦写周期;有10年数据保留时间;全静态操作:0Hz24MHz;三级加密程序存储器;1288字节内部RAM;32个可编程I/O口线;2个16位定时/计数器;6个中断源;可编程串行UART通道;低功耗空闲和掉电模式;片内振荡器和时钟电路13。AT89C51管脚图如图3-1所示。图3-1 AT89C51单片机管脚图 2.功能引脚说明VCC:电源电压。GND:接地。P0:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O口,Pl口的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流ILL。Flash编程和程序校验期间,P1接收低8位地址。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。FLASH编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:表3-2 引脚及其功能端口引脚第二功能P3.0RXD(串行输入口P3.1TXD(串行输出口)P3.2(外中断0P3.3(外中断l)P3.4TO(定时/计数器0外部输入)P3.5Tl(定时/计数器l外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,表3-3 8051的初始态特殊功能寄存器 初始态 特殊功能寄存器 初始态 ACC 00H B 00H PSW 00H SP 07H DPH 00H TH0 00H DPL 00H TL0 00H IP xxx00000B TH1 00H IE 0xx00000B TL1 00H TMOD 00H TCON 00H SCON xxxxxxxxB SBUF 00H P0-P3 1111111B PCON 0xxxxxxxB ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位。可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效14。PSEN:程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL1:来自反向振荡器的输出。 3.振荡器特性及芯片擦除 AT89C5l 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2.4 硬件电路图PS/2键盘与AT89C51单片机的连接方式如图4-2所示。P3.0接PS/2数据线;P3.2(INT0)接PS/2时钟线。因为单片机的P3口内部是带上拉电阻的,所以PS/2的时钟线和数据线可以直接与单片机的P.0,P3.2相连接。图3-2 PS/2键盘与单片机连接图考虑到时钟脉冲信号总由键盘产生,因此,采用这种方案:键盘的CLOCK接主机的一外部中断(INTO),数据线,接任一I/O口线(P3.0,为兼容用串口方式故接在RxD0上)。在数据线及时钟线上加10K的大电阻上拉,试验中,首先使用最原始的查寻方式,即MCU在释放总线控制权后(置CLOCK为高),一直查询CLOCK状态,由图3知键盘需要发送数据时,取得总线控制权,产生时钟的下降沿,主机继续查询CLOCK当检测到下降沿,即从DATA读入一个数据,循环往复,直至接收完8位数据位,一个奇校验位,一个停止位。此种方式通过后,即在程序中改为CLOCK触发产生中断方式,即主机释放总线控制权后,开外部中断,CLOCK下降沿产生中断信号,进人中断服务程序接收数据,但此种方案的不足在于,中断频繁,耗费资源。考虑到键盘与主机采用串行传输,类似于MCU的UART传输,故可DAT接MCU的RxD0这样主机每接收到数据才中断一次,减少了资源的耗费,不过,键盘等 PS/2设备一般工作在10-20kHz(依厂家设备不同),故要求主机与设备的波特率同步自适应,才能正确接收数据(波特率自适应的实现:键盘上电自检时要发送状态码,利用时钟脉冲的中断,由定时器测量脉冲周期,可得时钟频率,从而得到波特率,实现波特率的自适应)3.3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论