PS-2 PC键盘编程参考资料
### PS-2 PC键盘编程参考资料知识点详解 #### 一、PS-2键盘接口电气特性 PS-2键盘接口是一种常见的接口标准,用于连接个人电脑及其键盘。PS-2接口共有六个针脚,其中两个未使用(标记为n/c),其余四个分别为: 1. **DATA (数据)**:用于数据传输,数据的发送与接收均通过该引脚完成。 2. **n/c (未连接)**:不使用。 3. **GND (接地)**:作为电路的地线。 4. **VCC (电源)**:提供+5V DC电压供电源使用。 5. **CLK (时钟)**:用于同步数据传输的时钟信号。 6. **n/c (未连接)**:不使用。 #### 二、数据格式 PS-2键盘接口的数据格式包括: - **1个起始位**:始终为逻辑0,表示数据帧的开始。 - **8个数据位**:低位在前(LSB),高位在后(MSB)。例如,如果数据为0x5A(二进制为01011010),则首先传输的是最低位“0”。 - **1个奇偶校验位**:实现奇校验功能,确保数据位中的“1”的总数为奇数。例如,如果8个数据位中有4个“1”,则校验位为“1”,使得“1”的总数为奇数。 - **1个停止位**:始终为逻辑1,表示数据帧的结束。 - **1个应答位**:仅用于主机对设备的通信过程中,表示主机已成功接收数据。 #### 三、PS-2发送数据到PC的时序 PS-2键盘向PC发送数据时,遵循特定的时序: 1. **检测时钟线电平**:如果时钟线为低,则等待50微秒。 2. **检测时钟信号**:若时钟信号为高,则继续执行;若为低,则回到第一步。 3. **检测数据线状态**:若数据线为高,则继续;若为低,则放弃发送,因为此时PC可能正在向PS-2设备发送数据。 4. **延时**:发送起始位前延时20微秒,若正在发送起始位则延时40微秒。 5. **发送起始位**:输出逻辑0至数据线。 6. **发送数据位**:依次发送8个数据位。 7. **发送校验位**:根据之前的数据位确定校验位为“1”或“0”。 8. **发送停止位**:输出逻辑1。 9. **延时**:发送停止位后延时30微秒,若同时释放时钟信号,则延时50微秒。 #### 四、PS-2设备从PC接收数据 PS-2设备从PC接收数据时,需遵循以下步骤: 1. **等待时钟线为高**。 2. **检查数据线状态**:若为高则表示错误;若为低则继续。 3. **读取数据内容**:共8位,每读取一位后需检测时钟线是否被PC拉低。 4. **读取校验位**:共1位。 5. **读取停止位**。 6. **检查停止位**:若数据线仍为低电平,则继续产生时钟信号直至接收到停止位1,并输出错误信号。 7. **发送应答位**。 8. **校验位验证**:如果校验失败,则输出错误信号。 9. **延时**:等待45微秒以准备下一次传输。 #### 五、键盘返回值介绍 PS-2键盘的返回值并非与ASCII码对应,而是通过扫描码来表示按键。扫描码分为两种类型:通码和断码。 - **通码**:当键被按下或持续按住时发送。 - **断码**:当键被释放时发送。 现代键盘通常使用第二套扫描码集。大多数通码为一字节宽度,少数扩展键的通码为两字节或四字节宽度,此类通码的第一个字节通常是`E0h`。每个键都有其独特的通码和断码,主机通过查找这些扫描码来识别具体的按键。 PS-2键盘接口不仅在硬件层面上具有明确的电气特性定义,在软件层面上也有一套完整的数据传输协议和扫描码体系,为用户提供了稳定可靠的输入手段。
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助