浅谈ps/2键盘

发布于:2024-05-05 ⋅ 阅读:(34) ⋅ 点赞:(0)

说明

  • 本文章学习自UP主 VirtualMOD 主板上保留PS/2[非原视频名称]
  • 本作者并非搬运视频的内容,而是从一个计算机相关的学习者出发,正好复习一下和计算机组成原理相关的内容,所以写下这篇文章,希望能给大家分享一些有趣的内容
  • 在此,感谢UP VirtualMOD的无私贡献

基础知识

操作系统中断

  • 操作系统中的中断是计算机硬件或软件发出的信号,它会导致中央处理单元(CPU)暂停当前正在执行的任务,转而去处理更高优先级的特定事件或条件。
  • 中断是现代计算机系统中非常关键的一个概念,它允许操作系统更有效、更实时地响应外部和内部事件

类型

中断主要分为两大类:

  1. 硬件中断(外部中断)
    • 由计算机硬件发出的信号,例如键盘输入、鼠标移动、网络数据到达等。
    • 硬件中断是由外部设备直接发送到CPU或通过中断控制器来管理的。
  2. 软件中断(内部中断)
    • 由执行中的程序指令序列产生,如系统调用或软件异常(如除零错误、访问无效内存等)。
    • 软件中断通常是程序员显式地在代码中加入的中断点或异常处理逻辑。

工作机制

当中断发生时,操作系统将执行以下步骤:

  1. 中断信号的接收:CPU接收到中断信号,当前执行的指令完成后响应该中断。
  2. 当前状态保存:操作系统保存当前任务的状态,包括程序计数器、寄存器等信息,以便中断处理完成后能恢复执行。
  3. 中断处理:CPU根据中断类型跳转到对应的中断服务程序(ISR),执行必要的操作来处理中断。
  4. 状态恢复:中断处理完毕后,操作系统恢复之前保存的任务状态,继续执行被中断的任务。

优点

  • 响应速度:中断使得CPU可以立即响应外部事件,提高系统的响应速度和效率。
  • 多任务处理:通过中断,操作系统可以在多个任务之间高效地切换,实现多任务并发执行。
  • 资源有效管理:中断驱动的输入/输出操作允许CPU在等待外部设备时执行其他任务,有效地利用系统资源。

应用

  • 实时操作系统中,中断处理是非常关键的,因为它们需要在严格的时间限制内响应外部事件。
  • 网络通信中,硬件中断用于处理到达的数据包,确保数据的及时处理。
  • 多用户环境中,中断使得操作系统能平等地分配处理器时间给不同的用户和程序。

CPU对IO设备的轮询机制

  • 在计算机系统中,轮询(Polling)是一种用于从I/O(输入/输出)设备检测状态的技术,其中CPU定期检查设备是否需要注意,如是否有数据可读取,或是否可以接受新数据进行写入。这是一种同步I/O处理方法,与基于中断的异步I/O处理形成对比。
  • 轮询机制通常由操作系统或设备驱动程序控制。

轮询机制的工作原理

  1. 轮询循环:CPU按照一定的顺序不断循环检查一组I/O设备。
  2. 设备状态检查:对于每个设备,CPU读取其状态寄存器来判断设备是否准备好进行数据传输。
  3. 数据传输:如果设备准备好,CPU将执行数据的读取或写入操作。
  4. 等待或继续:如果设备未准备好,CPU会继续轮询下一个设备,直到所有设备都被检查。

轮询机制的特点

  • 简单:轮询机制相对简单,容易实现。
  • 占用CPU资源:CPU需要不断检查各设备的状态,这会占用CPU资源,尤其是当I/O设备较多时。
  • 实时性不高:由于CPU需要依次检查每个设备,因此对于每个具体的设备来说,响应时间可能较长。
  • 适用于特定场景:轮询方式适合于I/O操作较少且预测性强的系统中,例如在嵌入式系统中常见。

轮询机制的优、缺点

优点:

  • 结构和编程简单,容易理解和实现。
  • 对于无需快速响应的设备,能够有效地工作。

缺点:

  • 效率低:在没有I/O需求时,CPU仍在不断地检查,导致处理器时间的浪费。
  • 实时性差:对于需要快速响应的I/O操作,轮询可能无法及时响应。
  • 不适宜I/O密集型应用:对于I/O密集型任务,轮询方式的CPU开销会非常大。

与中断机制的对比

中断机制下,设备在需要CPU注意时会直接发出中断请求,CPU响应中断后,暂停当前任务,转而处理I/O事件。中断机制更有效率,因为它允许CPU专注于其他任务,只有在必要时才处理I/O任务。但中断机制相比轮询在设计和实现上更复杂,需要更精细的控制和错误处理机制。

总体而言,轮询通常用于简单或对实时性要求不高的环境,而需要快速和高效响应I/O请求的环境则更倾向于使用中断机制。

N-Key Roller(全键无冲)

  • N-Key Rollover(NKRO):指键盘在同一时间可以识别并正确处理所有按键的能力。简单来说,具有N-Key Rollover功能的键盘可以在任何时候同时识别所有被按下的按键,每个按键都会被独立地发送到计算机,不会发生按键冲突或遗漏。

应用领域

  • 对于快速打字者、程序员或游戏玩家,他们可能需要同时按下多个键而不丢失任何一个按键动作。例如,在某些高速或竞技游戏中,玩家可能需要同时按下多个方向键和功能键来执行复杂的操作。

  • 游戏:玩家在游戏中可能需要快速且准确地按下多个键。

  • 打字:打字快速者不希望因为键盘限制而减慢速度或产生错误。

  • 音乐制作:在使用键盘作为MIDI控制器时,可能需要同时按下多个键来演奏和弦。

实现原理

  • NKRO通常是通过矩阵布线实现的,这种设计使得键盘中的每一个键都有一个唯一的电路,避免了“键盘幽灵”现象——这是指在多键同时按下时,键盘错误地注册了未被按下的按键。

技术限制

  • 早期的USB键盘受到USB HID标准的限制,该标准一开始只允许6个键加上修饰键(如Shift、Ctrl等)的同时按下,被称为6-Key Rollover(6KRO)。不过,现代USB键盘通过特殊技巧可以克服这一限制,提供完整的N-Key Rollover。

PS/2接口简介

在这里插入图片描述

  • PS/2接口是一种用于连接计算机键盘和鼠标的接口。接口由IBM在1987年随Personal System/2系列计算机一起推出,因此得名PS/2。该接口是对之前的DIN(Deutsches Institut für Normung,即德国国家标准化组织)连接器的改进,后者在1980年代的IBM兼容计算机上非常常见。

PS/2接口的特性包括:

  • 形状和尺寸:PS/2端口是一个小圆形连接器,通常有6个针脚并呈现迷你DIN的形式。

  • 颜色代码:为了区分键盘和鼠标的接口,经常使用颜色编码——通常键盘端口是紫色的,鼠标端口是绿色的。一半是紫色,另一半是绿色,可以兼容键盘或鼠标的连接,可以将键盘或鼠标插入同一个端口。

  • 不支持热插拔:在大多数情况下,PS/2设备不支持热插拔,这意味着在连接或断开设备时,计算机应该处于关闭状态。

  • 双向通信PS/2接口支持全双工通信,设备和主机可以同时发送和接收信号。

  • IRQ线PS/2设备每个都有专用的中断请求(IRQ)线,允许键盘和鼠标直接向CPU发送中断信号,在理论上可以提供较低的输入延迟。

  • PS/2接口在21世纪初期逐渐被USB接口所取代,原因包括USB接口的热插拔能力支持更多设备类型及其能够通过集线器扩展更多端口的能力。

  • 尽管PS/2端口在新电脑上变得不那么常见,但在需要稳定连接和较低输入延迟的场合仍然可以找到它的身影。例如,笔记本自带的键盘通常采用ps/2接口形式,下面展示的是HP 战X的笔记本键盘设备就是使用的PS/2接口

在这里插入图片描述

USB设备&PS/2设备的工作机制

  • USB设备的工作依赖于计算机的轮询机制
    在这里插入图片描述

请添加图片描述

  • 常见USB键盘工作在125HZ,就是每秒向计算机报告125次键盘状态,理论延迟在0~8ms,平均延迟为4ms

  • 鼠标工作在不同频率,如125hz、250hz、500hz、1000hz,平均延迟分别在在4ms、2ms、1ms、0.5ms
    请添加图片描述

  • PS/2协议允许键盘和鼠标中断,CPU当前的操作及发送指令,理论上PS/2的延迟为0。
    请添加图片描述

PS/2键盘优&缺点

系统相应级别高

  • 在计算机资源紧张的时候,系统可能会降低对USB设备的轮询效率,甚至完全停止轮询,导致USB设备无法被正确识别。
  • 例如:Ctrl+At+Delete的组合键通常会产生一个不可屏蔽的中断以重启系统,但在某些极端电脑死亡的情况下,系统可能不会相应USB键盘的指令,而PS/2协议拥有更高的中断优先级,使用PS/2键盘就可以解决系统不响应Ctrl+At+Delete的组合键的问题。

兼容性好

  • PS/2设备在兼容性方面具有其他优势,相比于USB设备需要加载控制器驱动,并于计算机痛信以识别设备,PS/2接口专门为键鼠设计,需要在设备开机前插入键盘,并在设备启动后立刻被识别,在缺乏对USB支持的操作系统和BIOS中,PS/2键鼠可以正常工作。

支持N-Key Roller(全键无冲)

  • PS/2设备支持真正的N-Key Roller(全键无冲),意味着可以在键盘上同时按下多的按键并且同时被系统识别。
    在这里插入图片描述
  • 常见的USB键盘最多只支持6Key甚至是2Key-Rollover。当同时按下的按键超过限制时,USB类型键盘会停止工作或失去响应。当然,USB设备可以通过在系统设备中模拟多个多个键盘,来支持N-Key Roller(全键无冲),可能的缺陷是限制其他设备的数量。
    在这里插入图片描述

安全性高

  • 使用PS/2键鼠导致windows蓝屏或死机的概率远小于使用USB设备。USB设备在连接时需要加载带有签名的驱动程序,可能带来潜在的风险,使用PS/2键鼠可以禁用所有的USB端口,防止通过USB端口进行数据读写操作。这也是政府机构普遍采用PS/2+内网组合的原因之一。

不支持热插拔

  • 不支持热插拔:在大多数情况下,PS/2设备不支持热插拔,这意味着在连接或断开PS/2设备时,计算机应该处于关闭状态。

USB键盘VSPS/2键盘

  • PS/2键盘和USB键盘的主要区别、优点和缺点:
特性 PS/2键盘 USB键盘
接口类型 圆形的六针连接器 矩形连接器
识别方式 在BIOS级别工作,无需操作系统支持 由操作系统动态识别
插拔方式 不支持热插拔,可能需重启计算机 支持热插拔
优点 专用中断,低输入延迟;支持N-Key Rollover 热插拔;普遍适用性高;扩展性好
缺点 不支持热插拔;插槽数量有限;逐渐被淘汰 可能的输入延迟;电源管理问题;共享带宽
适用性 适合需要高精度和低延迟的专业应用 适合日常使用和现代电脑配置