浅谈ps/2键盘

文章目录

  • 说明
  • 基础知识
    • 操作系统中断
      • 类型
      • 工作机制
      • 优点
      • 应用
    • CPU对IO设备的轮询机制
      • 轮询机制的工作原理
      • 轮询机制的特点
      • 轮询机制的优、缺点
      • 与中断机制的对比
    • N-Key Roller(全键无冲)
      • 应用领域
      • 实现原理
      • 技术限制
  • PS/2接口简介
  • USB设备&PS/2设备的工作机制
  • PS/2键盘优&缺点
    • 系统相应级别高
    • 兼容性好
    • 支持N-Key Roller(全键无冲)
    • 安全性高
  • 不支持热插拔
  • USB键盘VSPS/2键盘

说明

  • 本文章学习自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热插拔;普遍适用性高;扩展性好
缺点不支持热插拔;插槽数量有限;逐渐被淘汰可能的输入延迟;电源管理问题;共享带宽
适用性适合需要高精度和低延迟的专业应用适合日常使用和现代电脑配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/318875.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11个2024年热门的AI编码助手

大家好,人工智能(AI)领域的大型语言模型(LLMs)已经逐渐发展成熟,并且深入到了我们日常的工作当中。在众多AI应用中,编码助手尤为突出,是开发人员编写更高效、准确无误代码的必备辅助…

预训练模型介绍

一、什么是GPT GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务 二、 为…

STM32单片机实战开发笔记-EXIT外部中断检测

嵌入式单片机开发实战例程合集: 链接:https://pan.baidu.com/s/11av8rV45dtHO0EHf8e_Q0Q?pwd28ab 提取码:28ab EXIT模块测试 功能描述 外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置输入类型&a…

软件测试(实验五)——Jmeter的使用

目录 实验目的 一、使用JMeter演示取样器、监听器、配置元件、断言的使用; 1、取样器 2、监听器 3、配置元件的使用 ① 用户定义的变量 ②HTTP信息头管理器 ③HTTP请求默认值 ④CSV数据文件设置 4、断言 ①响应断言 ②JSON断言 ③断言持续时间 二、使用…

设计模式之代理模式ProxyPattern(六)

一、代理模式介绍 1、什么是代理模式? 代理模式是一种结构型设计模式,它允许为其他对象提供一个替代品或占位符,以控制对这个对象的访问。 2、代理模式的角色构成 抽象主题(Subject):定义了真实主题和代…

基础IO认识

回顾文件 我们之前认识文件只是在语言程度上理解&#xff0c;但是我们理解的不够彻底&#xff0c;要想真正理解文件要在os上理解。 简单代码认识 1 #include<stdio.h>2 int main(){3 FILE* fpfopen("log.txt","w");4 if(fpNULL){5 p…

Java 类与对象

目录 1 类是什么 1.1 面向对象 1.2 面向对象与面向过程 2 类定义和使用 2.1 类的定义格式 2.2 练习定义一个狗类 3 类的实例化 4 this引用 5 对象的构造与初始化 5.1 构造方法与初始化 5.2 默认初始化 5.3 就地初始化 1 类是什么 关于类是什么&#xff0c;我们需要对…

vs2019 - 用自定义对话框消息框替代MessageBox

文章目录 vs2019 - 用自定义对话框消息框替代MessageBox概述笔记效果用法调用方代码实现MessageBoxDialog.hMessageBoxDialog.cppEND vs2019 - 用自定义对话框消息框替代MessageBox 概述 当工程被逆向时&#xff0c;如果存在AfxMessageBox(), ::MessageBox()的调用&#xff0…

【深度学习】第一门课 神经网络和深度学习 Week 4 深层神经网络

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;深度学习 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对…

Jupyter Notebook魔术命令

Jupyter Notebook是一个基于网页的交互式笔记本&#xff0c;支持运行多种编程语言。 Jupyter Notebook 的本质式一个Web应用程序&#xff0c;便于创建和共享文学化程序文档&#xff0c;支持实现代码&#xff0c;数学方程&#xff0c;可视化和markdown。用途包括&#xff1a;数据…

spring cloud eureka 初始化报错(A bean with that name has already been defined)

报错内容 The bean ‘eurekaRegistration’, defined in class path resource [org/springframework/cloud/netflix/eureka/EurekaClientAutoConfiguration E u r e k a C l i e n t C o n f i g u r a t i o n . c l a s s ] , c o u l d n o t b e r e g i s t e r e d . A …

Adobe PS 2023、Adobe Photoshop 2023下载教程、安装教程

Adobe Photoshop &#xff08;<-下载连接&#xff09;简介&#xff1a; Adobe Photoshop是一款广泛使用的图像处理软件&#xff0c;由Adobe公司开发。它提供了许多强大的工具和功能&#xff0c;可以用于图像编辑、合成、修饰、设计等各个领域。用户可以使用Photoshop来调整…

golang学习笔记(协程的基础知识)

golang的协程 协程是一种轻量级的线程&#xff0c;它可以实现并发执行的并行操作。协程是Go语言中的一个核心特性&#xff0c;它使得程序能够以并发的方式运行&#xff0c;并且非常高效。与传统的线程相比&#xff0c;协程的创建和销毁成本非常低&#xff0c;可以方便地启动大…

k8s 资源组版本支持列表

1 kubernetes的资源注册表 kube-apiserver组件启动后的第一件事情是将Kubernetes所支持的资源注册到Scheme资源注册表中,这样后面启动的逻辑才能够从Scheme资源注册表中拿到资源信息并启动和运行API服务。 kube-apiserver资源注册分为两步:第1步,初始化Scheme资源注册表;…

thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程

介绍 thinkphp家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单安装教程 上门预约服务派单小程序家政小程序同城预约开源代码独立版安装教程 程序完整&#xff0c;经过安装检测&#xff0c;可放心下载安装。 适合本地的一款上门预约服务小程序&#xff0…

数据结构------栈的介绍和实现

目录 1.栈的一些初步认识 2.栈的实现 3.相关的函数介绍 &#xff08;1&#xff09;栈的初始化 &#xff08;2&#xff09;栈的销毁 &#xff08;3&#xff09;栈的数据插入 &#xff08;6&#xff09;判断是否为空 &#xff08;7&#xff09;栈的大小 4.栈的实现完整…

iBarcoder for Mac:一站式条形码生成软件

在数字化时代&#xff0c;条形码的应用越来越广泛。iBarcoder for Mac作为一款专业的条形码生成软件&#xff0c;为用户提供了一站式的解决方案。无论是零售、出版还是物流等行业&#xff0c;iBarcoder都能轻松应对&#xff0c;助力用户实现高效管理。 iBarcoder for Mac v3.14…

win11 Terminal 部分窗口美化

需求及分析&#xff1a;因为在 cmd、anaconda prompt 窗口中输入命令较多&#xff0c;而命令输入行和输出结果都是同一个颜色&#xff0c;不易阅读&#xff0c;故将需求定性为「美化窗口」。 美化结束后&#xff0c;我在想是否能不安装任何软件&#xff0c;简单地通过调整主题颜…

windows驱动开发-PNP管理器

PNP技术是由Microsoft提出的&#xff0c;英文Plug and play的缩写&#xff0c;中译即插即用&#xff0c;意思是系统自动侦测周边设备和板卡并自动安装设备驱动程序&#xff0c;做到插上就能用&#xff0c;无须人工干预&#xff0c;是Windows自带的一项技术。所谓即插即用是指将…

从零开始搭建一个vue项目

从零开始搭建一个vue项目 一、环境准备 1.1 安装node.js 选择合适的LTS版本&#xff0c;然后下载安装&#xff0c;安装地址&#xff1a;https://nodejs.org/en/download 在命令行中查看已安装的node.js版本 node -v v14.14.01.2 切换为淘宝的镜像源 解决国内下载慢的问题,…