Pmod PS2参考手册

该Digilent Pmod PS/2(修订C)是一个模块,允许用户附加一个PS/2兼容的键盘或鼠标到他们的系统板。

下载本参考手册

特性

  • 标准的PS / 2端口
  • 跳线允许外部电源
  • 6pin Pmod连接器,GPIO接口

功能描述

Pmod PS/2模块是一个标准的PS/2连接器,其本质上支持N-KEY翻转。这是一个保证每一个动作和按键都能被接收和处理的功能。当然,按键是否会实际执行一个功能取决于软件,但系统板仍然会接收所有的输入。


与Pmod接口

Pmod PS/2通过接口与主机板通信GPIO协议.键盘和鼠标都将使用数据和时钟线将它们的信息传递给系统板。关于如何做到这一点的具体细节可以在下面各自的章节中找到。

销描述表

头J2 (Pmod) 头为J1 (PS2) JP1
标签 描述 标签 描述 位置 描述
1 数据 数据通信线路 1 数据 数据通信线路 VB -VCC PS2连接器从主机板接收正电源
2 数据- 数据通信线(一般未使用) 2 数据- 数据通信线(一般未使用) VE -VCC PS2连接器接收外部电源的正供电
3. 时钟 串行时钟 3. 接地 地面电源 JP2
4 钟, 串行时钟(一般不使用) 4 VCC 积极的电源 信号 描述
5 接地 地面电源 5 时钟 串行时钟 1 VE * 正外部电源输入*
6 VB 主机板的正电源 6 钟, 串行时钟(一般不使用) 2 接地 地面电源*

为警告

*—VE和接地Pmod PS2上的丝印标签不正确,应颠倒。靠近Pmod 6-pin头的引脚应该标记为接地靠近PS2接头的引脚标记为VE。下面提供了一个棋盘外观的对比图。

当前错误的丝网印刷未来正确的丝网印刷

键盘和鼠标界面


键盘和鼠标都使用相同的信号计时。两者都使用11位字,包括开始、停止和奇偶校验位,但数据包的组织方式不同,而且键盘接口允许双向数据传输(因此主机设备可以照亮键盘上的状态led)。总线计时如下所示。时钟和数据信号只有在数据传输发生时才被驱动,否则它们在逻辑' 1 '时处于“空闲”状态。时序定义了鼠标到主机通信和双向键盘通信的信号要求。


象征 参数 最小值 马克斯
Tck 时钟时间 30我们 美国50州
Tsu Data-to-clock设置时间 5我们 25我们
Thld Clock-to-data保存时间 5我们 25我们

键盘

键盘使用开放收集器驱动程序,这样键盘或附加的主机设备都可以驱动双线总线(如果主机设备不向键盘发送数据,那么主机可以使用简单的输入端口)。

PS/2风格的键盘使用扫描码来交流按键数据(几乎所有的键盘在今天使用的是PS/2风格)。每个键都有一个单独的,唯一的扫描码,当相应的键被按下时发送。如果按下并按住该键,扫描码将会每100ms左右重复发送一次。当一个密钥被释放时,会发送一个“F0”key-up码,然后是释放的密钥的扫描码。如果一个键可以被“移位”以产生一个新的字符(比如一个大写字母),那么除了原始的扫描码之外,还会发送一个移位字符,并且主机设备必须决定使用哪个字符。有些键称为扩展键,在扫描码之前发送一个“E0”(它们可能发送多个扫描码)。当扩展键被释放时,一个“E0 F0”键-up码被发送,然后是扫描码。大多数按键的扫描码显示在下面的键盘图中。

主机设备也可以向键盘发送数据。下面是一些常用命令的简短列表。

艾德 设置“数字锁定”、“大写锁定”和“滚动锁定”指示灯。在收到一个“ED”后,键盘返回一个“FA”,然后主机发送一个字节来设置领导的地位。第0位设置Scroll Lock,第1位设置Num Lock;Bit 2设置“Caps lock”。第3到7位被忽略。
EE 的回声。在收到echo命令时,键盘会以“EE”作为回应。
F3 设置扫描码重复速率。键盘通过返回一个“FA”来确认收到“F3”,然后主机发送第二个字节
重新发送。接收到FE后,键盘重新发送上次发送的扫描码。
FF 重置。重置键盘。


只有当数据线和时钟线都高(或空闲)时,键盘才向主机发送数据。由于主机是“总线主机”,键盘在驱动总线之前会检查主机是否在发送数据。为了方便这一点,时钟线可以用作“清除发送”信号。如果主机拉低时钟线,键盘将不会发送任何数据,直到时钟释放。

键盘以11位字的形式向主机发送数据,其中包含一个' 0 '开始位,后跟8位扫描码(LSB先),后跟一个奇偶校验位,最后以' 1 '停止位结束。当数据发送时,键盘会产生11个时钟转换(大约20 - 30KHz),在时钟下降边缘数据是有效的。

鼠标

鼠标移动时输出时钟和数据信号,否则这些信号保持在逻辑' 1 '。每次移动鼠标,三个11位的单词就会从鼠标发送到主机设备。每个11位的单词包含一个“0”开始位,后面跟着8位数据(LSB在前面),后面跟着一个奇偶校验位,最后以“1”停止位结束。因此,每次数据传输包含33位,其中0位、11位和22位是‘0’的起始位,11位、21位和33位是‘1’的停止位。三个8位数据字段包含如下所示的移动数据。时钟下降沿数据有效,时钟周期为20 ~ 30KHz。

鼠标采用了一个相对坐标系,在这个坐标系中,鼠标向右移动会在X域中产生一个正数,向左移动会产生一个负数。同样,鼠标向上移动Y字段会生成一个正数,向下移动则表示一个负数(状态字节中的XS和YS位是符号位——“1”表示负数)。X和Y数字的大小表示鼠标移动的速度——数字越大,鼠标移动的速度就越快(状态字节中的XV和YV位是移动溢出指示器——“1”表示已经发生溢出)。如果鼠标连续移动,33位的传输每隔50ms左右重复一次。状态字节中的L和R字段表示左键和右键按下(' 1 '表示按钮被按下)。



物理维度

销头上的销间隔为100密。PCB是1英寸长,在侧面平行于引脚头和0.8英寸长,在侧面垂直于引脚头。


额外的信息

Pmod PS/2的原理图可用在这里.在给键盘或鼠标上外接电源之前,请检查组件的额定电压,通常是3.3V或5V,以确保组件没有损坏。

可以找到演示如何从Pmod PS/2获取信息的示例代码在这里

如果你有任何关于Pmod PS/2的问题或评论,请随时将它们张贴在适当的部分(“附加板”)Digilent论坛