当前所在位置: 首页 > 论文范文 > 正文

浅谈PS/2接口协议的剖析(第2页)

本文共计5192个字,预计阅读时长18分钟。【 字体:

论文指导服务

毕业论文网专业团队提供毕业设计、论文写作指导及相关咨询服务

论文指导 毕业设计 答辩咨询
微信号已复制到剪贴板

  上述讨论中传输的数据是指对特定键盘的.编码或者对特定命令的编码。一般采用第二套扫描码集所规定的码值来编码。其中键盘码分为通码(Make)和断码(Break)。通码是按键接通时所发送的编码,用两位十六进制数来表示,断码通常是按键断开时所发送的编码,用四位十六进制数来表示。
  3 PS/2接口的嵌入式软件编程方法
  PS/2设备主要用于产生同步时钟信号和读写数据。
  3.1 PS/2向PC机发送一个字节

    从PS/2向PC机发送一个字节可按照下面的步骤进行:
  (1)检测时钟线电平,如果时钟线为低,则延时50μs; 
  (2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);
  (3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);
  (4)延时20μs(如果此时正在发送起始位,则应延时40μs);
  (5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;
  (6)输出8个数据位到数据线上;
  (7)输出校验位;
  (8)输出停止位(1);
  (9)延时30μs(如果在发送停止位时释放时钟信号则应延时50μs);
  通过以下步骤可发送单个位:
  (1)准备数据位(将需要发送的数据位放到数据线上);
  (2)延时20μs;
  (3)把时钟线拉低;
  (4)延时40μs;
  (5)释放时钟线;
  (6)延时20μs。
  3.2 PS/2设备从PC机接收一个字节
  由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。而PS/2设备则要配合PC机才能读到准确的数据。具体连接步骤如下:
  (1)等待时钟线为高电平。
  (2)判断数据线是否为低,为高则错误退出,否则继续执行。
  (3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。
  (4)读地址线上的校验位内容,1个bit。
  (5)读停止位。
  (6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。
  (7 输出应答位。
  (8) 检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。
  (9)延时45 μs,以便PC机进行下一次传输。
  读数据线的步骤如下:
  (1)延时20μs;
  (2)把时钟线拉低?
  (3)延时40μs?
  (4)释放时钟线?
  (5)延时20μs?
  (6)读数据线。
  下面的步骤可用于发出应答位;
  (1)延时15μs;
  (2)把数据线拉低;
  (3)延时5μs;
  (4)把时钟线拉低;
  (5)延时40μs;
  (6)释放时钟线;
  (7)延时5μs;
  (8)释放数据线。

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