【原创】PS/2接口协议浅析
【原创】PS/2接口协议浅析
写在最前面:这不是什么大牛的巨作,如果你要关注大牛巨作,请绕道。我只是一个菜鸟,只是想把我的菜鸟经验告诉后来的菜鸟,因为我知道菜鸟的学习是很艰苦的。整理了一些资料,和大家分享。还有官话一句:所有的下载资料图片都来自互联网,版权归他们所有。
学前废话:PS/2是什么东西?干什么用?如果你百度一下,出来的百分之九十九都是索尼的游戏机。我们这里说的不是这个游戏机,是一个接口协议。有图有真相:
PS/2键盘:紫色的就是PS/2接口。
据说PS/2接口协议最初是由IBM公司制定的(这个本人没有考究过),现在广泛用于鼠标,键盘和条码扫描仪等设备当中,但是网上的完整技术文档并不多,出版的技术文档也很少见。在USB如日中天之时,不支持热插拔的PS/2还占有一席之地,可见它还是有自己的优势的,比如说接口简单又能达到要求。题外话,当年我有一同学,非要花大钱买一套USB的键鼠,就是不愿意用PS/2的,原因是PS/2的不支持热插拔。谁没事干拔鼠标干什么?他买回来插上去后就没有拔下来过。。。
大体感受:PS/2接口一共有6根线,4根有效连接线:2根电源线(+5V电源线和Ground电源地)、1根数据线(DATA)、1根时钟线(CLK)。PS/2键盘鼠标与电脑的物理连接上只要保证上述四根线一一对应就可以了。如下图:
(左图是键盘鼠标上的公口,右边是主板上的母口。其实定义得还是很形象的,公口是针,母口是槽)
PS/2键盘鼠标没有独立电源,靠电脑的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。现在比较常用的连接器如下图:
数据线和时钟线的集电极开路接口。数据和时钟分别由微控制器的A端口和B端口读入。这两条线通常保持+5V,但可以往端口C和D写入1来拉到地。结果是,数据Data是D的反相,时钟Clock是C的反相。
研读spec:其实PS/2的spec说白了就是两个timing,只要把这两个时序看明白了就搞定。
1、设备到主机的通讯过程:
每次传送的数据帧11〜12位组成, 分别为起始位、8位数据、校验位、终止位。
1位起始位:总是0;
8数据位:低位在前,高位在后;
1校验位:奇校验方式,即与数据位一起算,1的个数为单数;
1停止位:总是1;
1应答位:由主机到设备时,该位由设备产生。
2、主机到设备的通讯过程:
最后回眸:

浙公网安备 33010602011771号