PC键盘输入及显示过程

  • 格式:docx
  • 大小:119.77 KB
  • 文档页数:4

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PC键盘输入及显示过程原理

摘要:键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母、数字、标点

符号等输入到计算机中,从而向计算机发出命令、输入数据等。而显示器也可以将通过键盘输入的字符、数据等显示出来。在此报告中我们将讨论计算机识别键盘输入的信息并通过显示器来显示信息的过程。

关键词:键盘;输入;显示

从计算机识别键盘输入的原理来说,键盘分为全编码键盘和非编码键盘两类。全编码键盘是由硬件完成键盘识别功能的,它通过识别键是否按下以及所按下键的位置,由全编码电路产生一个唯一对应的编码信息(如ASCII码)。由于其线路和编码的唯一性,这种键盘是不存在键位冲突的问题的,但是编码键盘结构复杂,成本非常之高现在基本上已经被淘汰了,现在多用非编码键盘。

一、非编码键盘的输入原理

非编码键盘是由软件完成键盘识别功能的,它利用简单的硬件和一套专用键盘编码程序来识别按键的位置,然后由CPU将位置码通过查表程序转换成相应的编码信息。

PC键盘主要由单片机、译码器和键开关矩阵三大部分组成。由于键盘排列成矩阵格式,被按键的识别和行列位置扫描码的产生,是由键盘内部的单片机通过译码器来实现的。单片机在周期性扫描行、列的同时,读回扫描信号线结果,判断是否有键按下,并计算按键的位置以获得扫描码。当有键按下时,键盘分两次将位置扫描码发送到键盘接口;按下一次,叫接通扫描码;释放时再发一次,叫断开扫描码。因此可以用硬件或软件的方法对键盘的行、列分别进行扫视,去查找按下的键,输出扫描位置码,通过查表转换为ASCII码返回。

现在常用的薄膜接触式键盘就是非编码键盘,它任何一个按键都有上下两层薄膜的触点,在任何一层薄膜上的导线数都少于按键数,每一条导线都同时连通多个按键的触点,上层和下层的任何两条导线都最多只在一个按键上重合。也就

是说,上层的1号导线可能会同时经过1、2、3、4、5……等按键,而下层的1号导线可能同时经过1、Q、A、Z……等按键,且两条导线只在1键上重合。

根据上层薄膜和下层薄膜所经过的按键,就可以排出一个类似下面的表格:薄膜接触式键盘的接口控制电路中,就存储着这样一张表格,当按下某个按键,例如“Q”时,那么在这一点上,上下两个触点就会连通,反映到接口电路中,就会检测到上层导线1与下层导线2被连通了。相对应在表中一查,就会知道,被按下的是字母“Q”,然后通过接口输出其ASCII码。

二、键盘设备发送数据到主机的过程

数据和时钟线都是集电极开路的。在+5V 和每根线之间连接着一个电阻,所以总线的空闲状态是高电平。当键盘或者鼠标想发送数据时,它首先必须检查时钟线,确认它处于高电平。如果不是,主机禁止通信,设备必须缓冲任何要发送

的数据,直到主机释放时钟。在设备开始传输数据之前,时钟线必须持续为高电平的时间必须至50ms。当时钟为高电平时,键盘/鼠标写一个bit到数据线上;当时钟为低电平时,主机从数据线上读取这个bit 。当时钟位高时,数据线改变状态;当时钟位低时,数据线上的数据是有效的。时钟频率是10-16.7KHz。从时钟脉冲的上升沿到数据跳变的时间必须至少5ms。从数据跳变到时钟脉冲的

下降沿必须至5ms,且不超过25ms。主机可在任何时间禁止通信,只需要将时钟线下拉位低电平超过100ms即可。如果在第11个脉冲时禁止传输,设备必须中止当前的传输,准备重新传输当前的数据"chunk(块)"当主机释放时钟时。一个数据块可能是通码,断码,设备ID,鼠标移动包等等。举个例子,如果当发送一个两字节断码的第2个字节时,键盘被中断,它将需要重新发送此断码的两个字节,而不仅仅时被中断掉的那个字节。如果在第一个高->低时钟跳变时,(或者在最后一个时钟脉冲的下降沿之后)主机将时钟拉低,键盘/鼠标不必重新传输任何数据。但是,如果新产生的数据需要传输,它必须将数据缓冲,知道主机释放时钟。键盘有一个16字节的缓冲区。如果有超过16个字节的击键存在,更多的击键将被忽略,直到缓冲区有空地。鼠标只能缓冲最近的一个要传输的(移

动)数据包。

辅助设备(指键盘) 检查时钟线,如果时低电平,禁止发送数据。设备检查数据线,如果是低电平,那么控制器从系统接收数据。

设备在传输过程中检查时钟线间隔不超过100us。如果设备发现主机系统将电平拉低,就终止传输。在传输过程的前10个时钟周期的任何时候,主机系统可以中止传输。终止传输的最后一个检查要持续至少5us。系统拉低时钟线,将禁止下一次传输。系统如果有一个字节要传输给设备,可以拉低数据线。当开始位(总是0)放置到数据线时,数据线被拉低。系统拉高时钟将允许下一次传输。首先,PS/2设备总是产生时钟信号。如果主机想发送数据,它必须先将时钟线和数据线设置成"Request-to-send"状态:1)拉低时钟线至少100us来禁止

通信;2)拉低数据线,请求 "Request-to-send", 然后释放时钟。设备应该在不超过10ms的间隔内就要检查一次这个状态。当设备检测到这个状态,它将开始产生时钟信号,只有当时钟线为低的时候,主机才可以改变数据线(也就是将数据写入到数据线)。数据将在时钟为高电平的时候被设备读取。在收到停止位之后,设备将通过拉低数据线,生成最后一个时钟脉冲来应答收到的字节。在第11个时钟脉冲之后,如果主机并没有释放数据线,设备将继续产生时钟脉冲,直到数据线被释放(然后设备将产生一个错误)。在第11个脉冲之前(回应位),主机可以随时中止传输,只要拉低时钟持续100us即可。

三、输入字符显示过程

键盘被按下后,产生了硬件中断信号。键盘发送脉冲给主机,主机里面运行的操作系统会接收到,这一步是操作系统发现信号有变化。计算机高级中断控制器(IOAPIC)选择CPU处理核心以及软件中断编号,并发送给中断描述符表(IDT)处理,即操作系统接收后根据信号分析按了什么键,这个是操作系统内部有信号和按键对应的映射。计算机根据IDT选择中断处理函数。处理函数处理并通知端口驱动获取按键的信息。端口驱动将数据封装,以IRP(I/O request package)形式传递给上层处理程序。等待输入的进程获得数据,处理并交给目标进程。最后目标进程显示输入。