标题:
PS2协议介绍
[打印本页]
作者:
51黑黑黑
时间:
2016-2-12 21:02
标题:
PS2协议介绍
PS/2鼠标和键盘履行一种双向同步串行协议。换句话说,每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。
键盘/鼠标可以发送
数据
到主机,而主机也可以发送
数据
到设备
,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘/鼠标的通讯,只要把时钟拉低即可。
PS2常用的接口如下图所示:
从键盘/鼠标发送到主机的数据在时钟信号的下降沿(当时钟从高变到低的时候)被读取;从主机发送到键盘/鼠标的数据在上升沿(当时钟从低变到高的时候)被读取。
不管通讯的方向怎样,键盘/鼠标总是产生时钟信号
,
如果主机要发送数据,它必须首先告诉设备开始产生时钟信号。
最大的时钟频率是33kHz,而且大多数设备工作在10~20kHz。如果你要制作一个PS/2设备,推荐你把频率控制在15kHz左右,这就意味着时钟应该是高40微秒低40微秒。
设备到主机的通讯
当设备等待发送数据时,它首先检查时钟以确认它是否是高电平,如果不是,那么是主机抑制了通讯,设备必须缓冲任何要发送的数据直到重新获得总线的控制权如果时钟线是高电平,设备就可以开始传送数据。这个方向的通讯时钟和数据均由设备产生,主机只管接收。
主机到设备的通讯
首先,PS/2设备总是产生时钟信号,如果主机要发送数据,它必须首先把时钟和数据线设置为“请求发送”状态,即通过下拉时钟线至少100微秒来抑制通讯,通过下拉数据线来应用“请求发送”然后释放时钟线,然后等待设备拉低时钟线,说明时钟产生了,下图中红色所示均由设备产生。可以看到,当主机发送完停止位后,设备把数据线拉低产生应答,然后设备会释放时钟和数据线。
上面就是PS2的底层通讯协议,至于鼠标或者键盘的命令格式,等下次再说。
作者:
i孟小天
时间:
2016-12-19 17:47
不太明白,可以详细讲解吗?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1