PS2协议

article/2025/10/9 5:10:12

概述

PS2鼠标和键盘实现了一个双向同步串行协议。当SCL和SDA两根信号线都为高(OC),表示总线为空闲状态。只有总线在空闲状态时,键盘和鼠标才允许进行数据传输。主机对总线有最终的控制权,可以在任何时候通过拉低时钟线强迫总线禁止通信。

设备会一直产生时钟信号。如果主机想要发送数据,它必须首先通过拉低时钟信号禁止通信。然后,主机拉低数据线,然后释放时钟信号。这就是所谓的“请求-发送”状态,然后发送信号给设备,开始产生时钟脉冲。


Data时钟状态
空闲状态
禁止通讯
主机请求-发送

数据传输时,每次传输一个字节,每次发送的数据为一帧,每帧数据由11-12位组成。帧结构如下:

位序名称描述
0起始位起始位始终为0
1-8数据位高位在前,低位在后
9奇偶校验位
10终止位
11应答位仅仅适用于主机到设备通讯

如果数据中有偶数个1,那么奇偶校验位置1;如果数据中有奇数个1,那么奇偶校验位置0。数据中1的个数加上奇偶校验位的总和总是一个奇数(奇校验)。奇偶校验可以用于错误检测。键盘/鼠标必须检查奇偶校验位,如果不正确,应该反馈接收到了一个无效的命令。

当从设备向主机发送数据时,在时钟的下降沿采样数据;当数据从主机向设备发送时,在时钟的上升沿采样数据。总线的时钟频率必须为10~16.7kHz。这意味着时钟高维持时间为30-50微秒,低维持时间为30-50微秒。如果设计键盘,鼠标或者主机模拟器,那么应该每个周期的中间采样数据线,比如,在时钟跳变发生后15-25微秒的时刻。同时,键盘/鼠标应当一直发出时钟信号,但是主机总是掌握着通讯的控制权。

时许是绝对重要的。

从设备到主机的通讯

数据线和时钟线都是OC接口,都需要接上拉电阻到+5V,因此在空闲状态时总线都为高电平。当键盘/鼠标需要发送数据时,首先需要确保时钟线为高电平,如果为低电平,表明主机正在禁止通讯,设备必须缓存需要发送的信息,直到主机释放时钟。在设备开始传输数据前,时钟线必须保持高电平至少50微秒。


在这里插入图片描述


上图为设备到主机通信示意图,当时钟为高时,数据线发生变化;当时钟为低时,数据有效。

在这里插入图片描述

上图为“Q”键(15h)从键盘发送到电脑的测量信号图。通道A为时钟信号,通道B为数据信号。从图中可以看出每个时钟为低采样得到的位流序列:01010100001.

时钟频率范围为10-16.7kHz。从时钟上升沿到数据传输的时间间隔必须至少为5微秒;从数据传输到时钟下降沿的时间间隔大于5微秒而小于25微秒。

主机在任何情况下都可以通过拉低时钟信号持续时间大于100微秒来禁止总线通信。如果在第11个时钟脉冲前数据传输被禁止,那么设备必须放弃当前的数据传输。在主机释放时钟线后,重新传输当前的数据块。数据块可以“Make”码,“break”码,设备ID,鼠标移动包等。比如,如果键盘在发送一个2字节break码的第二个字节时被中断,那么它需要在主机释放时钟线后,重新整个break码(而不是仅仅发送被中断的字节)。

如果主机在第一个时钟下降沿前或在最后一个时钟脉冲下降沿后拉低了时钟线,键盘/鼠标并不会重新传输任何数据。然而,如果有新的数据被创建需要传输,那么新数据传输需要等待主机释放时钟线后进行。键盘拥有一个16字节的buffer来缓存数据。如果数据超过16字节,那么丢弃新产生的数据,直到buffer中有新的空间产生。鼠标仅仅存储最当前的移动数据包以便传输。

主机到设备的通讯

从主机到设备的数据包与从设备到主机略有差异。

首先,PS2设备需要一直产生时钟信号。如果主机想要发送数据,必须配置总线到请求-发送状态:

  1. 拉低时钟线持续100微秒以上,禁止通讯
  2. 设置请求-发送状态:拉低数据线,释放时钟线

设备应该以大于10毫秒的间隔检查请求-发送状态。当设备侦测到该状态,设备开始产生时钟信号,8个数据时钟和1个停止位时钟。主机仅仅在时钟线为低时改变数据线,仅仅在时钟线为高时读取数据。这与从设备到主机通讯模式相反。

在接收到停止位后,设备将会通过拉低数据线进行应答,并产生最后一个时钟脉冲。如果主机在第11个时钟脉冲后不释放数据线,那么设备将会继续产生时钟脉冲直到数据线被释放(然后设备将产生一个错误)。

主机可以在第11个时钟脉冲前(应答位)中止数据传输通过拉低时钟线100微秒。

简单的说,主机发送数据到PS2设备的流程如下:

  1. 主机拉低时钟线至少100微秒
  2. 主机拉低数据线
  3. 主机释放时钟线
  4. 主机等待设备拉低时钟线
  5. 改变数据线以便发送第一个数据位
  6. 等待设备拉高时钟
  7. 等待设备拉低时钟
  8. 重复5-7步骤,发送其他7个数据位和奇偶校验位
  9. 释放数据线
  10. 等待设备拉低数据线
  11. 等待设备拉低时钟
  12. 等待设备释放时钟和数据线

在这里插入图片描述
上图显示了主机到设备的通讯时序图。
在这里插入图片描述
上图将主机产生的信号与设备产生的信号进行区分。注意应答位的时序:数据跳变发生在时钟线为高时。

从上图中看出,有两个时间参数需要注意。

  1. 主机从拉低时钟线到设备开始产生时钟的时间间隔应不大于15毫秒
  2. 主机用来发送数据包的时间应不大于2毫秒

如果这两个时间限制有一个不满足,那么主机应该产生一个错误。

在处理数据时,在主机接收到应答位后立即拉低时钟线禁止通讯。

如果主机发送的命令需要应答,那么应答必须在主机释放时钟线20毫秒内接收到。

如果上述条件不满足,那么主机产生一个错误。


http://chatgpt.dhexx.cn/article/uRUWJZm7.shtml

相关文章

IP协议以及VRP

网络层IP协议: 版本:4bit,version。表示协议版本,在这里被设为4(0100)。 IHL:4bit,header length。首部长度,用于指明首部有多长(定长部分选项)。…

RIPv2协议配置

RIPv2协议配置 实验目的 通过本实验,可以掌握以下技能: 配置接口IP地址。配置RIPv2协议。验证RIPv2协议配置。 设备需求 Cisco路由器3台,分别命名为twins、sa和gill。其中twins具有2个以太网接口;sa具有2个以太网接口&#x…

华为交换机RRPP环协议

配置RRPP单实例单环示例 组网需求 如图1所示,在组网中存在由SwitchA、SwitchB、SwitchC组成的环网结构。对于这种组网结构,需要当环网完整时,可以避免报文成环;当环网发生故障时,可以实现快速收敛迅速恢复环网上各节…

VRRP协议基础

参考文章https://blog.csdn.net/u013920085/article/details/21184143 VRRP(Virtual Router Redundancy Protocol)即和可靠,它是一种容错协议,它保证当用户设备的下一跳路由器失效时,可以及时的由另一台路由器来替代,从而保持通讯…

RPL协议介绍

RPL是IPv6 Routing Protocol for Low-Power and Lossy Networks的简称。 低功耗及有损网络(LLN)是一类内部链接和路由器都受限的网络,该网络下的路由器的处理器功能、内存及系统功耗(电池供电)都可能受到较大的限制&am…

RIPv2协议

RIPv2协议 RIPv2是增强了的RIP协议,定义在RFC 1721和RFC 1722(1994)中。RIPv2基本上还是一个距离矢量路由一协议,但是有三方面的改进。 1、使用组播而不是广播来传播路由更新报文,并且采用了触发更新(triggered upda…

RIP协议包括V1、V2版本

R2已经完成了RIPv2配置并在其GE0/0/0接口上激活了RIPv2,如果R1采用如下配置,那么R2路由表中存在多少条RIP路由,分别是什么? R1配置: [R1]rip 1 [R1-rip-1]version 2 [R1-rip-1]network 172.16.0.0 在RIP V2 版本中 V…

HRP协议详解

今天继续给大家介绍HCIE安全系列相关内容。本文给大家介绍HRP协议的相关理论知识,包括概述、数据备份范围、数据备份方式、备份通道状态和备份通道选择五个方面。 阅读本文,您需要有一定的防火墙基础知识,如果您对此存在困惑,欢迎…

RSVP协议介绍

Internet是一种互连网络,网络中存在着大量的中间节点(即路由器)。如果用户使用无连接协议来传输数据流,则该数据流的各个数据报在通过中间节点转发时可能会产生两个问题,一是各个数据报的转发路径不同,并非顺序到达目的端&#xf…

VRRP协议的作用

文章目录 一、VRRP概述1.1 VRRP概述1.2 应用1.3VRP工作原理1.4选举依据 二、VRRP术语2.1虚拟路由器 三、虚拟MAC地址3.1虚拟MAC地址3.2选举出master、backup 选举的依据3.3PC怎么找到虚拟的IP地址3.4master3.5backup 四、VRRP协议的状态共有三种五、Master/Backup路由器六、VRR…

VRRP协议概述

目录 一.作用 二.优点 三.工作原理 总结 一.作用 出口网关的备份,保证出口网关的高可用性 二.优点 1.主路由器失效后,备份路由器立即顶替主路由器的工作,保证数据的不丢失 2.两个不同的路由器成为不同组的主路由器,相互备…

VRRP协议

目录 一.基本概述: 二.VRRP实验 三.VRRP实现主备切换和负载分担 实现主备切换 端口跟踪 抢占时延 实现负载分担 就是为了防止三层设备出现单点故障,做备用网关的 一.基本概述: 1.VRRP能在不改变组网的情况下,将路由器虚拟…

VRRP协议详解

1 概述 1.1 产生背景 随着Internet的发展,人们对网络可靠性的要求越来越高。特别是对于终端用户来说,能够实时与网络其他部分保持联系是非常重要的。一般来说,主机通过设置默认网关来与外部网络联系,如图1所示: 图…

RRPP协议

RRPP协议 产生背景 在网络规划和实际组网应用中,大多采用环网来提供高可靠性。环网技术简单来说,就是将一些网络设备通过环的形状连接到一起,实现相互通信的一种技术。 为了避免环网中产生广播风暴,最初采用了已被普遍应用的STP协…

VRRP协议介绍

目录 一.VRRP协议 1.1 VRRP协议介绍 1.2 VRRP的功能 二.VRRP术语 2.1 VRRP路由器 2.2 VRRP组 2.3 虚拟路由器 2.4 虚拟IP地址、MAC地址: 2.5 Master、 Backup路由器: 2.6 Backup路由器: 2.7 虚拟MAC地址 三.VRRP状态机 四.Master/Backup路由器 4.1 …

小程序分享(转发)功能

小程序官方文档: 页面内发起转发 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html#%E9%A1%B5%E9%9D%A2%E5%86%85%E5%8F%91%E8%B5%B7%E8%BD%AC%E5%8F%91 1,页面内发起转发 通过给 button 组件设置属性 open-type…

WeChat小程序如何实现转发功能?

官网文档:链接: https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share.html. 一、点击小程序转发 1. 不加参数 //转发onShareAppMessage: function() {let users wx.getStorageSync(user);if (res.from button) {}return {title: …

微信小程序开发中怎么设置转发(分享)的信息

如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({onShareAppMessage: function () {return {title: 做任务赢积分,image…

实现微信小程序的分享转发功能(可以从分享页返回小程序首页)

先附上官方文档&#xff1a;微信小程序转发文档 最简单是做法就是在转发按钮上添加上这句open-type“share” <button open-type"share">转发按钮</button>这样点击这个按钮的时候就已经有转发功能了&#xff0c;但是这种转发是只能查看转发页&#xff…

微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面

微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面 首先&#xff0c;小程序官网地址&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/short-link/generateShortLink.html#%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F 官…