集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1073|回复: 2

PS2数据发送时序

[复制链接]
fpga_feixiang 发表于 2019-9-22 14:40:34 | 显示全部楼层 |阅读模式
键盘接口时序(a) 键盘发送时序;(b) 键盘接收时序
    从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。

    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)释放数据线。
晓灰灰 发表于 2019-9-23 10:08:27 | 显示全部楼层
PS2数据发送时序
大鹏 发表于 2019-10-12 12:34:31 | 显示全部楼层
PS2数据发送时序
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-26 14:36 , Processed in 0.076235 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表