PS2通信协议说明与接口定义(键盘和鼠标)
PS2鼠标接口协议

PS2鼠标接口协议协议名称:PS2鼠标接口协议协议编号:[编号]生效日期:[日期]1. 引言本协议旨在规范PS2鼠标接口的通信协议,以确保不同品牌、型号的鼠标能够在兼容的计算机系统上正常工作。
本协议适合于使用PS2鼠标接口的所有硬件设备和软件应用。
2. 定义2.1 PS2鼠标接口:指使用PS2接口连接的鼠标设备。
2.2 主机:指连接鼠标的计算机系统。
2.3 鼠标:指使用PS2鼠标接口连接的输入设备。
3. 通信协议3.1 信号线3.1.1 时钟线(CLK):传输时钟信号,由主机发起。
3.1.2 数据线(DATA):传输数据信号,由鼠标和主机交替发起。
3.2 初始化过程3.2.1 主机向鼠标发送复位命令。
3.2.2 鼠标接收到复位命令后,进行初始化操作。
3.2.3 鼠标向主机发送初始化完成信号。
3.3 数据传输3.3.1 数据帧格式数据帧由一个起始位、8位数据位、1位校验位和一个住手位组成,共11位。
3.3.2 数据传输流程3.3.2.1 主机发起数据传输请求。
3.3.2.2 鼠标接收到请求后,发送数据帧。
3.3.2.3 主机接收到数据帧后,进行校验。
3.3.2.4 校验通过后,主机发送确认信号给鼠标。
4. 命令集4.1 命令格式命令由一个起始位、8位命令位、1位校验位和一个住手位组成,共11位。
4.2 命令列表4.2.1 复位命令:用于初始化鼠标。
4.2.2 读取鼠标ID命令:用于获取鼠标的惟一标识符。
4.2.3 设置鼠标工作模式命令:用于设置鼠标的工作模式。
4.2.4 读取鼠标状态命令:用于获取鼠标的状态信息。
5. 错误处理5.1 通信错误5.1.1 如果主机在规定时间内未收到鼠标的响应,主机应重新发送命令。
5.1.2 如果鼠标在规定时间内未收到主机的响应,鼠标应重新发送数据帧。
6. 兼容性6.1 本协议兼容所有符合PS2鼠标接口标准的硬件设备和软件应用。
6.2 鼠标厂商和软件开辟者应遵守本协议的规定,确保其产品与其他符合本协议的设备和应用兼容。
PS2_USB键盘鼠标针脚定义

USB 各型插座插头引脚分布最近画USB的电路,老是忘记它的引脚排列,每次都要去翻手册,很麻烦,索性整理了一下,以后用着也方便,这些图都来自USB标准上。
注:以下均为插座或插头的前视图,即将插座或插头面向自己。
USB A型插座和插头USB A型插座引脚分布USB A型插头引脚排列分布USB B型插座和插头USB B型插座引脚分布USB B型插头引脚分布USB mini-B 插座和插头USB mini-B型插座引脚分布USB mini-B型插头引脚分布关于插座插头的机械尺寸请参考USB标准上的典型机械尺寸,更可靠的是以连接器生产厂的尺寸为准。
PS2 接口鼠标键盘转USB硬件 2009-11-18 21:50 阅读98 评论0字号:大中小先谈谈为什么要抛弃PS/2,很简单就是因为USB端口绝对的方便,支持热插拔和即插即用,因此可以大大方便我们平时的使用。
每台电脑理论上可以支持127个USB接口,随着USB的发展成熟,USB很有可能统一计算机接口,另外陈旧的PS/2接口有其本身的弊端,抛开热插拔等不说,PS/2接口在插入的时候很不方便,6个细小的针脚很难对准,而且很容易造成针脚的弯曲、折断。
所以我们有理由通过改造去抛弃它。
仔细研究一下两种接口的针脚,PS/2的针脚是6针的,而USB针脚却是4针,两者都提供+5v的电压。
拆开键盘(小心里边的橡胶小帽儿,弄不好撒的到处都是,别说我没提醒你),里边竟然有4根线(黄、红、白、绿),这就说明真正起作用的也就是4个针脚,和U SB 应该是一一对应的。
有了这点我想改造基本上是可行的,马上找了相关针脚资料看看。
不过本着diy的精神,还是谨慎为好。
本人用万能表检测了一下,结果却大跌眼睛,幸亏没有按照上面这个针脚的定义直接胡来,否则肯定失败。
上面的是主板上的母接口图,按照本人的测试,鼠标上的针脚定义修正如下:键盘接线黄、红、白、绿对应的针脚如下黄3红4白6绿2USB的针脚定义如下图:(注:图示仅供参考,可能有错)USB对应的线与针脚间的连接如下:红4白3绿2黑1这样弄清楚了各个针脚的意义,我们就可以进行改造了。
PS2鼠标接口协议

PS2鼠标接口协议协议名称:PS2鼠标接口协议一、介绍PS2鼠标接口协议是一种用于连接计算机和鼠标之间的通信协议。
该协议规定了数据传输格式、通信流程以及错误处理等方面的内容,以确保计算机和鼠标之间的稳定通信。
二、数据传输格式1. 数据帧格式PS2鼠标接口协议使用异步串行通信方式传输数据,数据帧由8个bit组成,其中包括1个起始位、1个停止位和6个数据位。
数据帧的格式如下所示:起始位数据位0 数据位1 数据位2 数据位3 数据位4 数据位5 停止位2. 通信速率PS2鼠标接口协议支持的通信速率为1200bps。
三、通信流程1. 初始化计算机在启动时,需要向鼠标发送初始化命令,以建立通信连接。
初始化命令的格式如下所示:发送:0xFF接收:0xFA2. 数据传输一旦通信连接建立成功,计算机可以向鼠标发送指令,鼠标将根据指令执行相应的操作,并将结果返回给计算机。
指令的格式如下所示:发送:0xFX(X为指令码)接收:0xFA(表示指令执行成功)或0xFE(表示指令执行失败)3. 中断当鼠标有新的数据需要传输给计算机时,会发送一个中断信号,以通知计算机接收数据。
计算机在接收到中断信号后,可以通过读取数据寄存器来获取鼠标发送的数据。
四、错误处理1. 通信错误如果在通信过程中发生错误,计算机会发送复位命令给鼠标,以重新建立通信连接。
复位命令的格式如下所示:发送:0xFF接收:0xFA2. 指令错误如果鼠标接收到无法识别的指令,将返回错误码给计算机,表示指令执行失败。
计算机可以根据错误码来判断具体的错误类型,并进行相应的处理。
五、安全性考虑为了保证通信的安全性,PS2鼠标接口协议还提供了数据校验功能。
每个数据帧的最后一个bit是校验位,计算机和鼠标都会对数据进行校验,以确保数据的完整性和准确性。
六、总结PS2鼠标接口协议是一种用于连接计算机和鼠标之间的通信协议,它规定了数据传输格式、通信流程以及错误处理等方面的内容。
PS2键盘接口协议

PS2键盘接口协议一.电气特性DATA Key Data2n/c Not connected3GND Gnd4VCC Power , +5 VDC5CLK Clock6n/c Not connected二.数据格式1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。
PS2设备的clock和data都是集电极开路的,平时都是高电平。
当PS2设备等待发送数据时,它首先检查clock是否为高。
如果为低,则认为PC抑制了通讯,此时它缓冲数据直到获得总线的控制权。
如果clock为高电平,PS2则开始向PC发送数据。
一般都是由PS2设备产生时钟信号。
发送按帧格式。
数据位在clock为高电平时准备好,在clock下降沿被PC读入。
数据从键盘/鼠标发送到主机或从主机发送到键盘/鼠标,时钟都是PS2设备产生.主机对时钟控制有优先权,即主机想发送控制指令给PS2设备时,可以拉低时钟线至少100μS,然后再下拉数据线,最后释放时钟线为高。
PS2设备的时钟线和数据线都是集电极开路的,容易实现拉低电平。
PC在时钟的下降沿读取数据.PS: PS2协议是现在大多数鼠标,键盘与PC通讯的标准协议,鼠标的通讯更为简单些,只是传送的数据内容不一样而已。
三.数据发送时序键盘接口时序(a) 键盘发送时序;(b) 键盘接收时序从PS/2向PC机发送一个字节(1) 检测时钟线电平,如果时钟线为低,则延时50μs;(2) 检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);(3) 检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);(4) 延时20μs(如果此时正在发送起始位,则应延时40μs);(5) 输出起始位(0)到数据线上。
PS2通信协议说明与接口定义(键盘和鼠标)

PS2键盘与鼠标的接口定义针脚定义:原理PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送。方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据。在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产生通信时钟信号。如果主机要发送数据,它必须控制鼠标产生时钟信号。方法如下:主机首先下拉时钟线至少100μs 抑制通信,然后再下拉数据线,最后释放时钟线。通过这一时序控制鼠标产生时钟信号。当鼠标检测到这个时序状态,会在10ms内产生时钟信号。如图3中A 时序段。主机和鼠标之间,传输数据帧的时序如图2、图3所示。2.2 数据包结构在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数据位的判断和接收。在实验过程中,通过合适的编程,能够正确控制并接收鼠标数据。但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁,需要耗用大量的主机资源。PS/2鼠标的四种工作模式是:Reset模式,当鼠标上电或主机发复位命令0xFF给它时进入这种模式;Stream模式鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;Remote模式,只有在主机发送了模式设置命令0xF0后,鼠标才进入这种模式;Wrap模式,这种模式只用于测试鼠标与主机连接是否正确。PS/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的数据包格式如表1所示。Byte1中的Bit0、Bit1、Bit2分别表示左、右、中键的状态,状态值0表示释放,1表示按下。Byte2和Byte3分别表示X轴和Y轴方向的移动计量值,是二进制补码值。Byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的三键三维鼠标产生。若是不带滚轮的三键鼠标,产生的数据包没有Byte4 其余的相同。一.PS/2 鼠标键盘协议PC 键盘可以有6 脚的mini-DIN 或5 脚的DIN 连接器如果你的键盘是6 脚的mini-DIN 而你的计算机是5 脚的DIN 或者相反这两类连接器可以用上面提到的适配器来兼容具有6 脚mini-DIN 的键盘通常被叫做PS/2 键盘而那些有5 脚DIN 叫做AT 设备XT 键盘也使用5 脚DIN 但它们非常古老并且多年前就不生产了所有现代的为PC 建造的键盘不是PS/2,AT 就是USB 的这篇文章不适用于USB 设备它们使用了一种完全不同的接口。
PS2鼠标接口协议

PS2鼠标接口协议协议名称:PS2鼠标接口协议协议编号:[编号]生效日期:[日期]1. 引言本协议旨在规范PS2鼠标接口的通信协议,以确保各种PS2鼠标能够与计算机系统进行稳定和可靠的数据传输。
该协议适用于所有使用PS2鼠标接口的设备和系统。
2. 术语定义以下是本协议中使用的术语及其定义:- PS2鼠标接口:一种用于连接计算机系统和鼠标设备的串行接口标准。
- 主机:指连接鼠标设备的计算机系统。
- 鼠标设备:指使用PS2鼠标接口连接到计算机系统的鼠标。
- 命令:指由主机发送给鼠标设备的指令。
- 响应:指鼠标设备对主机发送的命令做出的相应动作或数据传输。
3. 物理连接3.1 接口类型PS2鼠标接口使用6针迷你DIN连接器,其中1号和4号引脚用于传输数据,2号引脚用于传输时钟信号,3号引脚用于地线,5号和6号引脚保留。
3.2 电气特性- 传输电压:5V DC。
- 传输速率:10-16 kHz。
- 信号电平:0V表示逻辑低电平,5V表示逻辑高电平。
- 传输距离:最大3米。
4. 数据传输协议4.1 通信格式PS2鼠标接口使用异步串行通信方式传输数据。
每个数据帧由一个起始位、8个数据位、一个奇偶校验位和一个停止位组成。
4.2 数据帧结构数据帧的结构如下所示:- 起始位:逻辑低电平,表示数据帧的开始。
- 数据位:8个位,表示传输的数据。
- 奇偶校验位:用于校验数据位的奇偶性,保证数据的完整性。
- 停止位:逻辑高电平,表示数据帧的结束。
4.3 通信流程4.3.1 鼠标设备初始化当鼠标设备连接到主机时,主机需要发送初始化命令以确保鼠标设备处于可用状态。
- 主机发送0xFF命令给鼠标设备。
- 鼠标设备接收到0xFF命令后,发送0xFA命令给主机,表示鼠标设备已准备好。
4.3.2 数据传输4.3.2.1 主机向鼠标设备发送命令- 主机发送命令给鼠标设备时,先发送一个起始位(逻辑低电平)。
- 接下来,主机发送8个数据位,表示要发送的命令。
PS2设备通信协议

电气特性
• PS/2通讯协议是一种双向同步串行通讯协议。通 讯的两端通过Clock(时钟脚)同步,并通过 DATA(数据脚)交换数据。任何一方如果想抑制另 外一方通讯时,只需要把Clock(时钟脚)拉到低电 平。如果是PC机和PS/2键盘间的通讯,则PC机 必须做主机,也就是说,PC机可以抑制PS/2键 盘发送数据,而PS/2键盘则不会抑制PC机发送数 据。一般两设备间传输数据的最大时钟频率是3 3kHz,大多数PS/2设备工作在10~20kHz。推 荐值在15kHz左右,也就是说,Clock(时钟脚)高、 低电平的持续时间都为40μs。每一数据帧包含 11~12个位,具体含义如表1所列。
PS2设备通信协议
时序图
PS2接口和协议
• 接口简介 • 1981年IBM推出了IBM PC/XT键盘及其接 口标准。 经过多年演变成6脚mini-DiN连 接器接口,封装上更小巧,用双向串行通 讯协议并且提供有可选择的第三套键盘扫 描码集,同时支持17个主机到键盘的命令。 现在,市面上的键盘都和PS/2及AT键盘兼 容
主机(即PC)到PS/2设备的传输
• 主机若想影响传输,必须能够控制总线时钟!对于 主机而言,控制PS/2总线有三种状态 状态 PS2D ATA 高 高 低 PS2 Note CLK 高 低 为了传输能够发送串 行数据到一位寄存器 高 输出端,控制器要求 PS2设备产生PTransmission Host Send Request
Ps2键盘
• 如果它发现有键被按下,释放或按住,键盘 将发送 扫描码的信息包到计算机。扫描码有 两种不同的类型 通码 和 断码 。当一个键被 按下或按住就发送通码,当一个键被释放就 发送断码。每个按键被分配了唯一的通码和 断码。这样主机通过查找唯一的扫描码就可 以测定是哪个按键。每个键一整套的通断码 组成了扫描码集,有三套标准的扫描码集分 别是第一套 第二套和第三套。 所有现代的 键盘默认使用第二套扫描码。
键盘鼠标ps2接口

一般键盘接口为紫色,鼠标接口为绿色。
它们的数据信号和时钟信号都由南桥芯片和I/O芯片输出,其主要组成部分如下:
*电源
*保险电感
*贴片电感
*排容
*排阻
*跳线
其针脚图及定义如下
电路原理图如下:
电源是通过跳线和保险电感L1电源给鼠标和键盘供电(第四针脚)。
同时,电源又通过排阻连接到鼠标和键盘的1、5针脚和南桥或I/O芯片,起到提升信号的作用,鼠标和键盘接口的第1、5针脚与南桥或I/O芯片之间连接有电感,在数据传输中起到缓冲的作用。
关于维修
一般故障由以下几个元件损坏引起:
*供电部分电感损坏
*供电部分电容损坏
*上拉电阻损坏
*滤波电容损坏
*数据线上电感损坏
1.滤波电容
损坏将导致无法正常传输数据,无法为键盘鼠标提供时钟信号,
观察电容是否鼓泡,漏液,烧坏,且用万用表测量
2.上拉电阻
损坏将导致数据信号变弱,使鼠标,键盘工作不稳定
万用表测阻值,与标称值对比,在外壳一般有标示
3.贴片电感
损坏将导致无法为鼠标键盘提供时钟信号,无法传输数据,严重时鼠键无法使用。
万用表蜂鸣档,测电感两端,若显示0,说明电感断路,若显示数字一直跳动,说明电感内部接触不良。
4.保险电阻
若烧毁,将无法为鼠键供电,
检测保险电阻的阻值,若阻值过大,说明烧毁。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PS2键盘与鼠标的接口定义针脚定义:原理PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送。方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据。在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产生通信时钟信号。如果主机要发送数据,它必须控制鼠标产生时钟信号。方法如下:主机首先下拉时钟线至少100μs 抑制通信,然后再下拉数据线,最后释放时钟线。通过这一时序控制鼠标产生时钟信号。当鼠标检测到这个时序状态,会在10ms内产生时钟信号。如图3中A 时序段。主机和鼠标之间,传输数据帧的时序如图2、图3所示。2.2 数据包结构在主机程序中,利用每个数据位的时钟脉冲触发中断,在中断例程中实现数据位的判断和接收。在实验过程中,通过合适的编程,能够正确控制并接收鼠标数据。但该方案有一点不足,由于每个CLOCK都要产生一次中断,中断频繁,需要耗用大量的主机资源。PS/2鼠标的四种工作模式是:Reset模式,当鼠标上电或主机发复位命令0xFF给它时进入这种模式;Stream模式鼠标的默认模式,当鼠标上电或复位完成后,自动进入此模式,鼠标基本上以此模式工作;Remote模式,只有在主机发送了模式设置命令0xF0后,鼠标才进入这种模式;Wrap模式,这种模式只用于测试鼠标与主机连接是否正确。PS/2鼠标在工作过程中,会及时把它的状态数据发送给主机。发送的数据包格式如表1所示。Byte1中的Bit0、Bit1、Bit2分别表示左、右、中键的状态,状态值0表示释放,1表示按下。Byte2和Byte3分别表示X轴和Y轴方向的移动计量值,是二进制补码值。Byte4的低四位表示滚轮的移动计量值,也是二进制补码值,高四位作为扩展符号位。这种数据包由带滚轮的三键三维鼠标产生。若是不带滚轮的三键鼠标,产生的数据包没有Byte4 其余的相同。一.PS/2 鼠标键盘协议PC 键盘可以有6 脚的mini-DIN 或5 脚的DIN 连接器如果你的键盘是6 脚的mini-DIN 而你的计算机是5 脚的DIN 或者相反这两类连接器可以用上面提到的适配器来兼容具有6 脚mini-DIN 的键盘通常被叫做PS/2 键盘而那些有5 脚DIN 叫做AT 设备XT 键盘也使用5 脚DIN 但它们非常古老并且多年前就不生产了所有现代的为PC 建造的键盘不是PS/2,AT 就是USB 的这篇文章不适用于USB 设备它们使用了一种完全不同的接口。
每种连接器的引脚定义如下所示在刚才提到连接器上有四个有趣的管脚电源地5V 数据和时钟host 计算机提供5V 并且键盘/鼠标的地连接到host 的电源地上数据和时钟都是集电极开路的这就意味着它们通常保持高电平而且很容易下拉到地逻辑0 任何你连接到PS/2 鼠标键盘或host 的设备在时钟和数据线上要PS/2 技术参考著Adam Chapweske 译Roy Show第4 页共4 页02-11-22发布有一个大的上拉电阻置0 就把线拉低置1 就让线上浮成高电平参考图1 中数据和时钟线的一般接口结构注意如果你打算使用象PIC 这样的微控制器由于它们的I/O 管脚是双向的你可以跳过晶体管和缓冲门并且通用同一个管脚进行输入和输出在这种组态情况下要设置管脚为输入就写入1 使得电阻上拉线上的电平要改变管脚为输出就写入0 到那个管脚把线路下拉到地。
)PS/2 鼠标和键盘履行一种双向同步串行协议。
换句话说每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。
键盘/鼠标可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。
从键盘/鼠标发送到主机的数据在时钟信号的下降沿当时钟从高变到低的时候被读取从主机发送到键盘/鼠标的数据在上升沿(当时钟从低变到高的时候)被读取;不管通讯的方向怎样键盘/鼠标总是产生时钟信号如果主机要发送数据它必须首先告诉设备开始产生时钟信号这个过程在下一章节中被描述)。
最大的时钟频率是33kHz ,而且大多数设备工作在10 20kHz 。
如果你要制作一个PS/2 设备。
我推荐你把频率控制在15kHz 左右。
这就意味着时钟应该是高40 微秒低40 微秒。
所有数据安排在字节中,每个字节为一帧,包含了11-12 个位。
这些位的含义如下:如果数据位中包含偶数个1,校验位就会置1;如果数据位中包含奇数个1,校验位就会置0 。
数据位中1 的个数加上校验位总为奇数(这就是奇校验)这是用来错误检测。
当主机发送数据给键盘/鼠标时,设备回送一个握手信号来应答数据包已经收到。
这个位不会出现在设备发送数据到主机的过程中。
设备到主机的通讯过程:数据和时钟线都是集电极开路结构(正常保持高电平)。
当键盘或鼠标等待发送数据时,它首先检查时钟以确认它是否是高电平。
如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据直到重新获得总线的控制权(键盘有16 字节的缓冲区而鼠标的缓冲区仅存储最后一个要发送的数据包)。
如果时钟线是高电平,设备就可以开始传送数据。
如我在上一节提及的,键盘和鼠标使用一种每帧包含11 位的串行协议。
这些位含义是:1 start bit. This is always 0. 1 个起始位总是为08 data bits, least significant bit first. 8 个数据位低位在前1 parity bit (odd parity). 1 个校验位奇校验1 stop bit. This is always 1. 1 个停止位总是为1每位在时钟的下降沿被主机读入,如图2 和3 所示时钟频率为10 16.7kHz。
从时钟脉冲的上升沿到一个数据转变的时间至少要有5 微秒。
数据变化到时钟脉冲的下降沿的时间至少要有5 微秒并且不大于25 微秒。
这个定时非常重要你应该严格遵循它。
主机可以在第11 个时钟脉冲(停止位)之前把线拉低,导致设备放弃发送当前字节(这是非常罕见的)。
在停止位发送后,设备在发送下个包前至少应该等待50 毫秒。
这将给主机时间当它处理接收到的字节时抑制发送(主机在收到每个包时,通常自动做这个)。
在主机释放抑制后,设备至少应该在发送任何数据前等50 毫秒。
我推荐下面的过程发送一个单一字节从仿真键盘/鼠标到主机:1) 等待Clock = high2) 延时50 微秒3) Clock s 仍旧为high? No—到第1 步4) Data = high? No—放弃(并且从主机读取字节)5) 延迟20 毫秒(=40 微秒to the time Clock is pulled low in sending the start bit.)6) 输出起始位(0) / 在发送所有这些位的每一位后7) 输出8 个数据位> 测试时钟确认主机是否把它拉低了8) 输出校验位/ 这说明主机要放弃这次10) 延迟30 毫秒(=50 微秒from the tim传送9) 输出停止位(1) e Clock is released in sending the stop bit)按如下的过程发送单个位:1) Set/Reset Data2) Delay 20 microseconds3) Bring Clock low4) Delay 40 microseconds5) Release Clock6) Delay 20 microseconds1) 设置/复位数据2) 延迟20 微秒3) 把时钟拉低4) 延迟40 微秒5) 释放时钟6) 延迟20 微秒主机到设备的通讯被发送的包有点不同于主机到设备通讯过程。
首先,PS/2 设备总是产生时钟信号。
如果主机要发送数据,它必须首先把时钟和数据线设置为‘请求发送’状态,如下示:通过下拉时钟线至少100 微秒来抑制通讯。
通过下拉数据线来应用‘请求发送’,然后释放时钟。
设备应该在不超过10 毫秒的间隔内就要检查这个状态。
当设备检测到这个状态,它将开始产生时钟信号,并且时钟脉冲标记下输入八个数据位和一个停止位。
主机仅当时钟线为低的时候改变数据线,而数据在时钟脉冲的上升沿被锁存。
这在发生在设备到主机通讯的过程中正好相反。
在停止位发送后,设备要应答接收到的字节,就把数据线拉低并产生最后一个时钟脉冲。
如果主机在第11 个时钟脉冲后不释放数据线,设备将继续产生时钟脉冲直到数据线被释放(然后设备将产生一个错误)。
主机可以在第11 个时钟脉冲(应答位)前中止一次传送,只要下拉时钟线至少100 微秒。
要使得这个过程易于理解,主机必须按下面的步骤发送数据到PS/2 设备:1) 把时钟线拉低至少100 微秒2) 把数据线拉低3) 释放数据线4) 等待设备把时钟线拉低5) 设置/复位数据线发送第一个数据位6) 等待设备把时钟拉高7) 等待设备把时钟拉低8) 重复5-7 步发送剩下的7 个数据位和校验位9) 释放数据线10) 等待设备把数据线拉低11) 等待设备把时钟线拉低12) 等待设备释放数据线和时钟线图3 用图形表示图4 以单独的时序表示了由主机产生的信号。
及由PS/2 设备产生的信号。
注意应答位时序的改变-数据改变发生在时钟线为高的时候(不同于其它11 位是当它为低的时候)。
图4 描述了两个重要的定时条件:a 和b 。
a 在主机最初把书记现拉低后,设备开始产生时钟脉冲的时间,必须步大于15ms ;b 数据包被发送的时间必须不大于2ms 。
如果这两个条件不满足,主机将产生一个错误。
在包收到后,主机为了处理数据立刻把时钟线拉低来抑制通讯。
如果主机发送的命令要求有一个回应,这个回应必须在书籍释放时钟线后20ms 之内被收到。
如果没有收到,则主机产生一个错误。
在设备到主机通讯的情况中,时钟改变后的5 微秒内不应该发生数据改变的情况。
如果呢要仿真一个鼠标或键盘,我推荐你按如下的过程从主机读入数据;在你的主程序中,至少每10 毫秒检测数据线是否为低。
如果数据线已被主机拉低,则从主机读取一个字节。
1) 等待时钟线为高2) 数据线仍然为低吗不-有错误发生;放弃。
3) 读入8 个数据位/ 在读入这些位后4) 读入校验位> 测试时钟线数否被主机拉低5) 读入停止位/ 这就意味着放弃这次传送6) 数据线仍旧为0 吗?是保持时钟直到数据=1 然后产生一个错误7) 输出应答位8) 检查校验位如果校验位不正确则产生一个错误9) 延迟45 微秒(给主机时间抑制下次的传送)按如下次序读取每位(8 个数据位检验位和停止位):1) 延迟20 微秒2) 把时钟拉低3) 延迟40 微秒4) 释放时钟5) 延迟20 微秒7) 读数据线按如下次序发送应答位:1) 延迟15 微秒2) 把数据线拉低3) 延迟5 微秒4) 把时钟线拉低5) 延迟40 微秒6) 释放时钟线7) 延迟5 微秒8) 释放数据线PS2接口协议及代码分析(2011-10-14 12:23:40)转载▼分类:嵌入式标签:ps2通信ps2协议it一.电气特性1DATA Key Data2n/c Not connected3GND Gnd4VCC Power , +5 VDC5CLK Clock6n/c Not connected二.数据格式1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。