Pmod PS2参考手册
下载本参考手册
特性
-
标准的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 | 接地* | 地面电源* |
为警告
键盘和鼠标界面
键盘和鼠标都使用相同的信号计时。两者都使用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论坛.