了解原理先从了解协议标准开始。
PS/2接口标准的发展过程
随着计算器工业的发展,作为计算机最常用输入设备的键盘也日新月异。1981年IBM推出了IBM PC/XT键盘及其接口标准。该标准定义了83键,采用5脚DIN连接器和简单的串行协议。实际上,第一套键盘扫描码集并没有主机到键盘的命令。为此,1984年IBM推出了IBM AT键盘接口标准。该标准定义了84~101键,采用5脚DIN连接器和双向串行通讯协议,此协议依照第二套键盘扫描码集设有8个主机到键盘的命令。到了1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-DIN连接器,该连接器在封装上更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。
PS/2接口硬件
物理连接器
一般,具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。其实这两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、Data数据脚、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2埠提供+5V电源,另外两个脚Clock(时钟脚)和Data资料脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。
电气特性
PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。
由此可以看出,传输数据的反应灵敏度是由PS/2键盘电路中的RLC振荡电路所决定。我们可以通过一些特殊设计改变PS/2和PC间同步反应灵敏度,从而达到改变键盘速度的目的。目前市场上的键盘,还是完全一成不便的按照81年的设计,此设计已远远不能满足使用者对于键盘的需求。为了满足消费者此需求,双飞燕投入大量的人力物力,终于研制出了世界上第一只可以变速的X7-G500键盘。此设计的键盘最大限度的满足广大消费者对于键盘速度的需求。
为什么通过软件调整重复率不稳定,为什么CS,劲乐、劲舞、俄罗斯方块、极品飞车、拳皇等游戏高手不喜欢用早期的软件加速或者只修改重复速率的键盘。
传输中,每一数据帧包含11~12个位,具体含义如表1所列。
表1 数据帧格式说明
1个起始位 总是逻辑0
8个数据位 (LSB)低位在前
1个奇偶校验位 奇校验
1个停止位 总是逻辑1
1个应答位 仅用在主机对设备的通讯中
表中,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。
PS/2设备和PC机的通讯
由于各键盘的发送速率不同以及按键的速度不一致,并为了提高兼容性,又在异步通信的基础上增加了同步时钟,在时钟的下降沿对数据进行采样。
PC机与键盘的通信只有经过握手后才能进行,KBDCLK可能作为清除发送线,当PC机将KBDCLK接为低电平时,键盘将不能发送数据给PC机,而是将要发送的数据放入发送数缓冲区中,直到KBDCLK为高电平时才开始发送数据。当KBDDATA和KBDCLK同时为高电平时(没有数据传送时KBDDATA和KBDCLK保持为高电平)
键盘可以发送字节给PC机,键盘将KBDDATA拉为低电平(即PC机接收键盘数据的起始位),通知PC机应接收来自键盘的数据。如果PC机将KBDDATA拉为低电平时(即键盘接收PC机数据的起始位),表明PC机将发送字节给键盘。这就说明PC机具有较高的优先权,可以控制PC机和键盘的通信方向。