每日一点硬件小知识—PS/2接口
1、 PS/2接口概述
PS/2是在较早电脑上常见的接口之一,用于鼠标、键盘等设备。
PS/2的命名来自于1987年时IBM所推出的个人电脑:PS/2系列。
PS/2接口是输入装置接口,而不是传输接口。所以PS2口没有传输速率的概念,只有扫描速率。在Windows环境下,PS/2鼠标的采样率默认为60次/秒,USB鼠标的采样率为120次/秒。较高的采样率理论上可以提高鼠标的移动精度。PS/2接口设备不支持热插拔,强行带电插拔有可能烧毁主板。
1984年IBM推出了IBM AT键盘接口标准,该标准定义了84~101键,采用5脚DIN连接器和双向串行通讯协议,设有8个主机到键盘的命令。
1987年,IBM又推出了PS/2键盘接口标准。该标准仍旧定义了84~101键,但是采用6脚mini-DIN连接器,支持17个主机到键盘的命令。
具有五脚连接器的键盘称之为AT键盘,而具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。
2、鼠标和键盘PS/2口的区别
PS/2通过电位的大小来接受不同时间设备传输的信息。
鼠标的PS/2的接口是绿色,而键盘的PS/2接口是紫色。二者不能接反。
由于鼠标需要对位移信息进行传输,故与键盘有所不同。另外,键盘有用5脚din接口的,而鼠标没有。
移动时,鼠标会输出一组时钟和数据信号;而在静止时,时钟和数据信号将一直保持为逻辑高电平,表示处于空闲状态。每次移时鼠标会想主机发送不同的信息并基于PS/2协议的鼠标采用相对坐标的形式来追踪它的移动轨迹。而键盘并不需要对位移信息进行处理,故与鼠标协议有所不同。
另外键盘的PS/2口真正实现物理全键无冲。
3、PS/2口键盘读取设计
1)电气连接
PS/2两种连接器都只有四个脚有意义。它们分别是Clock(时钟脚)、Data数据脚、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以了。PS/2键盘靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上
浮到高电平。
2)数据包结构
键盘的状态每改变一次,键盘至少会发出三个字节的数据包,在有键按下时会向主机发送该键的通码(MakeCode),当键释放时发送断码(BreakCode)。例如:键“A”的通码为0x1C,键“A”的断码为:0xF0,0x1C,因此当要传送键“A”时,键盘发送的数据包的代码是:0x1C,0xF0,0x1C。)
3)数据包解析
如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。
PS/2设备的Clock和Data都是集电极开路的,平时都是高电平。当PS/2设备等待发送数据时,它首先检查Clock是否为高。如果为低,则认为PC抑制了通讯,此时它缓冲数据直到获得总线的控制权。如果Clock为高电平,PS/2则开始向PC发送数据。
一般都是由PS/2设备产生时钟信号。发送按帧格式。数据位在Clock为高电平时准备好,在Clock下降沿被PC读入。
数据从键盘/鼠标发送到主机或从主机发送到键盘/鼠标,时钟都是PS/2设备产生.主机对时钟控制有优先权,即主机想发送控制指令给PS/2设备时,可以拉低时钟线至少100μS,然后再下拉数据线,最后释放时钟线为高。PS/2设备的时钟线和数据线都是集电极开路的,容易实现拉低电平。
4)接口时序
PS/2协议是一种双向半双工串行通信协议,时钟信号由键盘产生,最大时钟频率为33kHz,推荐频率在15kHz。通信两端通过Clock同步,通过Data交换数据,任何一方如果想禁止另一方通信时,只需将Clock拉到低电平。其传输时序根据传输的方向不同分为发送和接收两个不同时序逻辑。
当键盘要向主机通信时,键盘总是首先检查时钟线是否为高电平,如果不是则表明是主机正在通信,必须缓冲要发送的数据直到重新获得总线的控制权(键盘有16个字节的缓冲区),即等到时钟线是高电平才能发送数据。而且从键盘到主机的数据只能在时钟的下降沿时才能被读取。当主机到键盘进行通信时,主机会首先把时钟线和数据线设置为“请求发送”状态。具体方式为:首先下拉时钟线至少100μs来抑制通信,然后下拉数据线“请求发送”,最后释放时钟。在此过程中,键盘在不超过10μs的间隔内就会检查这个状态。当键盘检查到这个状态时,就开始产生时钟。和键盘发送的数据读取方式不一样,主机发送的数据必须在时钟的上升沿读取。
4、PS/2口EMC电路
主板中PS/2口接TVS管等器件,然后与NCT6796D之类的接口芯片通信