kmac pad支持ps2协议的应答位吗


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩10页未读 继续阅读
仅用在主机对设备的通讯中

表中如果数据位中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机发送┅个字节可按照下面的步骤进行:

由于PS/2设备能提供串行同步时钟,因此如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号然后释放时钟。当PS/2设备检测到需要接收的数据时它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数據到数据线并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据具体连接步骤如下:

下面的步骤可用于发絀应答位;

(1)延时15μs; (2)把数据线拉低;(3)延时5μs;(4)把时钟线拉低;(5)延时40μs;(6)释放时钟线;(7)延时5μs; (8)释放数据线。

键盘的处理器如果发现有键被按下或释放将发送扫描码的信息包到计算机扫描码有两种不同嘚类型:通码和断码。当一个键被按下就发送通码当一个键被释放就发送断码。每个按键被分配了唯一的通码和断码这样主机通过查找唯一的扫描码就可以测定是哪个按键。每个键一整套的通断码组成了扫描码集有三套标准的扫描码集:分别是第一套,第二套和第三套所有现代的键盘默认使用第二套扫描码。
       虽然多数第二套通码都只有一个字节宽但也有少数扩展按键的通码是两字节或四字节宽。這类的通码第一个字节总是为E0
       正如键按下通码就被发往计算机一样,只要键一释放断码就会被发送每个键都有它自己唯一的通码和断碼。幸运的是你不用总是通过查表来找出按键的断码在通码和断码之间存在着必然的联系。多数第二套断码有两字节长它们的第一个芓节是F0 ,第二个字节是这个键的通码扩展按键的断码通常有三个字节,它们前两个字节是E0h,F0h 最后一个字节是这个按键通码的最后一个字節。下面列出了几个按键的第二套通码和断码:

一个键盘发送值的例子:
      通码和断码是以什么样的序列发送到你的计算机从而使得字符G 出现茬你的字处理软件里的呢因为这是一个大写字母,需要发生这样的事件次序:按下Shift 键-按下G键-释放G 键-释放Shift 键与这些时间相关的扫描码如丅:Shift 键的通码12h,G 键的通码34h G 键的断码F0h 34h ,Shift 键的断码F0h 12h 因此发送到你的计算机的数据应该是:

0

上面三个图分别是PS2的键盘鼠标鉯及电脑机箱的PS2接口(图中的红色区域)

 PS/2接口设备不支持热插拔,强行带电插拔有可能烧毁主板   

PS/2可以与USB接口互转,即PS/2接口设备可鉯转成USBUSB接口设备也可以转成PS/2。

位数据并且每在时钟线上发一个脉冲就被读入键盘/鼠标可以发送数据到主机而主 
机也可以发送数据到设備,但主机总是在总线上有优先权它可以在任何时候抑制 
来自于键盘/鼠标的通讯,只要把时钟拉低即可

下图是数据线和时钟线在如下狀态的时候的通讯。

从键盘/鼠标发送到主机的数据在时 钟信号的下降沿当时钟从高变到低的时候被读取,从主机发送到键盘/鼠标的数据 
茬上升沿当时钟从低变到高的时候被读取。不管通讯的方向怎样键盘/鼠标总是 
产生时钟信号。如果主机要发送数据它必须首先告诉設备开始产生时钟信号。最 
大的时钟频率是33kHz而且大多数设备工作在1020kHz如果你要制作一个PS/2设备我 
推荐你把频率控制在15kHz左右这就意味着时钟应该昰高40微秒低40微秒 

位就会置0数据位中1的个数加上校验位总为奇数,这就是奇校验这是用来错误 
    当主机发送数据给键盘/鼠标时,设备回送┅个握手信号来应答数据包已经收 
到这个位不会出现在设备发送数据到主机的过程中,设备到主机的通讯过程数据 
和时钟线都是集电极開路结构正常保持高电平当键盘或鼠标等待发送数据时它首 
先检查时钟以确认它是否是高电平,如果不是那么是主机抑制了通讯,设備必须 
缓冲任何要发送的数据直到重新获得总线的控制权键盘有16字节的缓冲区而鼠标 
的缓冲区仅存储最后一个要发送的数据包,如果时鍾线是高电平设备就可以开始传 
到一个数据转变的时间至少要有5微秒数据变化到时钟脉冲的下降沿的时间至少要 
有5微秒并且不大于25微秒,这个定时非常重要你应该严格遵循它!主机可以在第11 
个时钟脉冲停止位之前把线拉低导致设备放弃发送当前字节。这是非常罕见的 
茬停止位发送后,设备在发送下个包前至少应该等待50毫秒这将给主机时间,当 
它处理接收到的字节时抑制发送主机在收到每个包时通瑺自动做这个,在主机释 
放抑制后设备至少应该在发送任何数据前等50毫秒 

外设----主机时序图如下所示

号如果主机要发送数据它必须首先把時钟和数据线设置为请求发送状态,如下: 
放时钟设备应该在不超过10毫秒的间隔内就要检查这个状态当设备检测到这个状 
态它将开始产苼时钟信号并且时钟脉冲标记下输入八个数据位和一个停止位,主机 
仅当时钟线为低的时候改变数据线而数据在时钟脉冲的上升沿被锁存,这在发生 
在设备到主机通讯的过程中正好相反在停止位发送后设备要应答接收到的字节就 
把数据线拉低并产生最后一个时钟脉冲,洳果主机在第11个时钟脉冲后不释放数据 
线设备将继续产生时钟脉冲直到数据线被释放,然后设备将产生一个错误主机 
可以在第11个时钟脈冲应答位前中止一次传送,只要下拉时钟线至少100微秒要使 
得这个过程易于理解主机必须按下面的步骤发送数据到PS/2设备 
    设备产生的信号紸意应答位时序的改变,数据改变发生在时钟线为高的时候 
不同于其它11位是当它为低的时候,在主机最初把数据线拉低后,设备开始产生時钟 
脉冲的时间必须步大于15ms数据包被发送的时间必须不大于2ms,如果这两个条 
件不满足主机将产生一个错误,在包收到后主机为了处理數据立刻把时钟线拉低 
来抑制通讯如果主机发送的命令要求有一个回应,这个回应必须在主机释放时钟 
线后20ms之内被收到,如果没有收到則主机产生一个错误,在设备到主机通讯的情 
况中时钟改变后的5微秒内不应该发生数据改变的情况如果你要仿真一个鼠标或键 
盘我推荐伱按如下的过程从主机读入数据,在你的主程序中至少每10毫秒检测数据 
线是否为低如果数据线已被主机拉低则从主机读取一个字节 

主机----設备时序图如下所示

设备到主机的通信 
标准的PS/2鼠标发送位移和按键信息给主机采用如下的3字节数据包格式: 

    位移计数器是一个9位2的补码整數。它的最高位作为符号位出现在位移数据包 
的第一个字节里这些计数器在鼠标读取输入发现有位移时被更新。这些值是自从 
最后一次發送位移数据包给主机后位移的累计量(即最后一次包发给主机后位移计 
数器被复位)位移计数器可表示的值的范围是-255到+255,如果超过了范围相 
应的溢出位就被设置,并且在复位前计数器不会增减。正如我前面提及的一旦位 
移数据包成功地发送给主机位移计数器就会複位,同样鼠标在收到主机不是 
下面是PS2键盘的部分按键表

按键设计的基本流程图如下:

我要回帖

更多关于 ps2接口协议 的文章

 

随机推荐