PS2通信协议详解:单片机与键盘交互

需积分: 35 3 下载量 33 浏览量 更新于2024-09-12 收藏 244KB DOC 举报
"本文主要介绍了PS2通信协议的电气特性和数据格式,以及数据发送时序,该协议常用于单片机与键盘的通信。" PS2通信协议是一种早期广泛应用于计算机与键盘、鼠标交互的标准协议。这个协议使得单片机能够有效地与键盘进行通信,理解其工作原理对于嵌入式系统开发者至关重要。 一、电气特性 PS2通信协议通过六根线进行数据传输,其中包括: 1. DAT线:用于传输数据,KeyData表示键盘数据。 2. n/c线:表示未连接。 3. GND线:接地线。 4. VCC线:提供+5V电源。 5. CLK线:时钟线,用于同步数据传输。 6. 另一根n/c线也未连接。 二、数据格式 - 起始位:始终为逻辑0,标志着数据传输的开始。 - 数据位:8位,低位在前(LSB,Least Significant Bit)。 - 奇偶校验位:根据数据位中1的数量,使得总和为奇数。 - 停止位:始终为逻辑1,标志着数据传输的结束。 - 应答位:仅在主机对设备通信中使用,用于确认接收。 奇偶校验的规则是:数据位中1的数量加上校验位中的1,总数应为奇数。这种机制用于检测数据传输中的错误。 三、数据发送时序 - PS2设备的clock线和data线是集电极开路的,平时保持高电平。 - 当设备准备发送数据时,会先检查clock线是否为高。若为低,表示主机正占用通信,设备会暂时保存数据。若clock线为高,设备将开始发送数据。 - 数据在clock的上升沿准备好,在下降沿被主机读取。 - 主机可以通过拉低时钟线至少100μS来控制通信,然后拉低数据线,最后恢复时钟线为高,以发送控制指令给PS2设备。 - 数据线和时钟线都是集电极开路,方便拉低电平操作。 四、键盘发送和接收时序 发送一个字节涉及以下几个步骤: 1. 检测时钟线电平,如果低,等待50μS。 2. 如果时钟线为高,继续下一步,否则回到第一步。 3. 检查数据线,如果为高,则准备发送,否则停止并切换到接收模式。 4. 延时一定时间后(取决于当前位),输出起始位(0)到数据线上。 5. 发送每位数据后,都需要检查时钟线状态,防止主机抑制设备的通信。 总结,PS2通信协议是基于异步串行通信的一种协议,其特点是数据传输速率较低,但可靠性较高。由于其简单和稳定性,即使在现代计算机中,PS2接口仍然在某些场景下被使用,尤其是键盘和鼠标通信。