浅谈PS2接口协议的剖析_第1页
浅谈PS2接口协议的剖析_第2页
浅谈PS2接口协议的剖析_第3页
浅谈PS2接口协议的剖析_第4页
浅谈PS2接口协议的剖析_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、浅谈PS/2接口协议的剖析浅谈PS/2接口协议的剖析论文摘要:文中详细介绍了PS/2接口协议的内容、电气特性和标准键盘的第二套键盘扫描码集。给出了基于嵌入式系统的PS/2接口的软、硬件实现方法,并介绍了工控PC外接双键盘的解决方案。通过使用模拟开关CD4052巧妙地解决了工控PC外接双键盘的冲突问题。1PS/2接口标准的发展过程随着计算机工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBMPC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBMAT键盘

2、接口标准。该标准定义了84101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84101键,但是采用6脚m1n1DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。现在,市面上的键盘都和PS/2及AT键盘兼容,只是功能不同而已。2PS/2接口硬件2.1物理连接器一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚m1n1-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它

3、们分别是Clock(时钟脚)、Data?数据脚?、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data?数据脚?都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如图1所示。2.2电气特性PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到

4、低电平。如果是PC机和PS/2键盘问的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在1020kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40仙s。每一数据帧包含1112个位,具体含义如表1所列。表1数据帧格式说明1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为

5、0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。2.3PS/2设备和PC机的通讯PS/2设备的Clock(时钟脚)和Data?数据脚?都是集电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock(时钟脚)以确认其是否为高电平。如果是低电平,则认为是PC机抑制了通讯,此时它必须缓冲需要发送的数据直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区,而PS/2鼠标只有一个缓冲区仅存储最后一个要发送的数据)。如果Clock(时钟脚)为高电平,PS/2设备便开始将数据发送到PC机。一般都是由PS/2设备产生时钟信号。发送时一般都是按照数据帧格

6、式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在C1。ck(时钟脚)的下降沿被PC机读入。PS/2设备到PC机的通讯时序如图2所示。当时钟频率为15kHz时,从C1。ck(时钟脚)的上升沿到数据位转变时间至少要5仙so数据变化到Clock(时钟脚)下降沿的时间至少也有5仙s,但不能大于25叱s,这是由PS/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。上述讨论中传输的数据是指对特定键盘的编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(Make)和断码(Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示

7、,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。3PS/2接口的嵌入式软件编程方法PS/2设备主要用于产生同步时钟信号和读写数据。3.1PS/2向PC机发送一个字节从PS/2向PC机发送一个字节可按照下面的步骤进行:(1)检测时钟线电平,如果时钟线为低,则延时5Os;(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);(4)延时20仙s(如果此时正在发送起始位,则应延时4Os);(5)输出起始位(0)到数据线上。这里

8、要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;(6)输出8个数据位到数据线上;(7)输出校验位;(8)输出停止位(1);(9)延时30仙s(如果在发送停止位时释放时钟信号则应延时50以s);通过以下步骤可发送单个位:(1)准备数据位(将需要发送的数据位放到数据线上);(2)延时20ns;(3)把时钟线拉低;(4)延时40ns;(5)释放时钟线;(6)延时20ns。3.2PS/2设备从PC机接收一个字节由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100仙s来抑

9、制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:(1)等待时钟线为高电平。(2)判断数据线是否为低,为高则错误退出,否则继续执行。(3)读地址线上的数据内容,共8个b1t,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。(4)读地址线上的校验位内容,1个bit。(5)读停止位。(6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟

10、,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。(7输出应答位。(8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。(9)延时45ns,以便PC机进行下一次传输。读数据线的步骤如下:(1)延时20ns;(2)把时钟线拉低?(3)延时40ns?(4)释放时钟线?(5)延时20ns?(6)读数据线。卜面的步骤可用于发出应答位;(1)延时15仙s;(2)把数据线拉低;(3)延时5仙s;(4)把时钟线拉低;(5)延时40s;(6)释放时钟线;(7)延时5仙s;(8)释放数据线。4用于工控机的双键盘设计工控机通常要接标准键盘,

11、但是为了方便操作,常常需要外接一个专用键盘。此实例介绍了在工控PC机到PS/2总线上再接入一个自制专用键盘的应用方法。该设计应能保证两个键盘单独工作,而且相互不能影响。因此,不能直接把专用键盘和标准键盘一起接到工控PC的PS/2口。鉴于这种情况,本设计使用模拟开关CD4052并通过时分复用工控PC的PS/2口,来使在同一个时刻只有一个键盘有效,从而解决上述问题。其硬件原理图如图3所示。其中P2口和P1口用于键盘扫描电路(图中未画出),P0.0为数据端,P0.1为时钟端,P0.2为模拟开关选通端。由于专用键盘不需要接收工控PC机的命令,所以软件中并不需要写这部分相应的代码。通过软件可在专用键盘复

12、位后把P0.2清0,以使模拟开关CD4052打开相应的通道。这时工控PC的标准键盘将开始工作。标准键盘可以完成工控PC刚启动时对外设检测的应答。复位后的专用键盘不停地扫描有没有按键,如果有键按下则识别按键,并且按照预先的设计进行编码,同时调用发送程序并通过PS/2口发送到工控PC。此时模拟开关关闭相应通道(将P0.2置1),专用键盘接入工控PCPS/2口的时钟线和数据线而工作,但标准键盘被模拟开关从PS/2的时钟线和数据线中断而不工作,这样,双键盘便可时分复用同一个工控PC机的PS/2口。相应的发送子程序如下:# define# define# defineH端# define# define

13、义键DATAPOO用PO.0做数据线CLKPO1用PO.1做时钟线INHIBITP02用PO.2做CD4052的INPORTRP1用Pl口做读入口PORTWP2用P2口做写出口可以实现64个自定void send end a char u c h a rbit fl(ucharx)/*functionda-ta*/i,temp,char_tcmp;ag_chcck=l;standardINHIBIT=1;/disab1eddclay_ms(3);temp=x;for(i=0;il;CLK=1;/send1toPlthenreadPlwhile(!CLK)/ifCLKislowwait;CLK=

14、1;DATA=1;/send1toPlthenreadP1if(CLK=1)de1ay_us(30);/if(CLK=l&DATA=l)/senddataDATA=0;/startbit0delay_us(10);CLK=0;de1ay_us(5);/temp=x;for(i=0;il;CLK=1;/sendcheckbitdelay_us(5);?DATA=f1ag_chcck;delay_us(10);?CLK=0;delay_us(5)CLK=1;/sendstopbitdelay_us(5);?DATA=1;delayus?l0?CLK=0?delay_us(5);?CLK=1;delay_us(30);?CLK=1;DATA=1;/send1toPlthenreadP1if(CLK=1&DATA=0)return;/pcissendingd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论