基于可编程逻辑器件的PS/2键盘接口的实现方法

时间:2025-11-01  作者:Diven  阅读:0

(来源:微计算机信息,作者:魏军辉,王福源,周子昂,侯维岩 )

基于可编程逻辑器件的PS/2键盘接口的实现方法

键盘作为嵌入式系统的最常用人机接口设备,在嵌入式系统中有着相当的应用。但开发者一般均采用自行设计的简易矩阵键盘,这类键盘仅仅是按行、列排列起来的矩阵开关,往往需要单独设计并制作,通用性不强。当需要较多的按键时,则会占用较多的 I/O端口,在软件上则要进行上电复位按键扫描及通信处理,而且还要加上按键的去抖动处理,增大了系统的软硬件开销。而 PS/2键盘,内嵌自动去除按键抖动的设计,自动地识别键的按下与释放,软硬件可发简便,价格便宜,稳定可靠,将 PS/2键盘作为嵌入式系统的输入设备已经成为可行的方案。而目前关于 PS/2键盘控制的应用大部分采用单片机控制,与单片机相比,FPGA具有比单片机更加灵活,集成度更高,容易移植等特点。

本文在分析 PS/2协议和 PS/2键盘工作原理与特点的基础上,给出了在 ALTERA FLEX10K上对 PS/2键盘接口的实现方法。

1 PS/2接口协议

1.1 PS/2物理特性

PS/2设备接口用于许多现代的鼠标和键盘,最初由 IBM开发,最常见的为 6脚 mini-DIN,其引脚结构和外形如图 1 所示。

PS/2设备有主从之分,现在使用的 PS/2键盘鼠标均工作在从设备方式下。 PS/2接口的时钟与数据线都是集电极开路结构,必须外接上拉电阻,一般上拉电阻设置在主设备中,主从设备之间的数据通信采用双向同步方式传输,时钟信号一般由从设备产生。

1.2数据包的结构键盘的状态每改变一次,键盘至少会发出三个字节的数据包,在有键按下时会向主机发送该键的通码(Make Code),当键释放时发送断码( Break Code)。例如:键“ A”的通码为 0x1C,键“A”的断码为: 0xF0, 0x1C,因此当要传送键“ A”时,键盘发送的数据包的代码是:0x1C,0xF0, 0x1C。

1.3接口的时序逻辑

PS/2协议是双向半双工串行通信协议,时钟信号由键盘产生,最大时钟频率为 33kHz,推荐频率在 15kHz。通信两端通过 Clock同步,通过 Data 交换数据,任何一方如果想禁止另一方通信时,只需将 Clock拉到低电平。其传输时序根据传输的方向不同分为发送和接收两个不同时序逻辑,图 2是从键盘到主机的时序图。

其中:Start:起始位,总为‘0’(低电平)

Data0~Data7:8位数据位(低位在前,高位在后)

Parity:奇偶校验位(为奇校验)

Stop:停止位,总为‘ 1’(高电平)

当键盘要向主机通信时,键盘总是首先检查时钟线是否为高电平,如果不是则表明是主机正在通信,必须缓冲要发送的数据直到重新获得总线的控制权(键盘有 16个字节的缓冲区),即等到时钟线是高电平才能发送数据。而且从键盘到主机的数据只能在时钟的下降沿时才能被读取。

当主机到键盘进行通信时,主机会首先把时钟线和数据线设置为“请求发送”状态。具体方式为:首先下拉时钟线至少 100μs来抑制通信,然后下拉数据线“请求发送”,最后释放时钟。在此过程中,键盘在不超过 10μs的间隔内就会检查这个状态。当键盘检查到这个状态时,就开始产生时钟。和键盘发送的数据读取方式不一样,主机发送的数据必须在时钟的上升沿读取。

2 PS/2接口的设计实现

2.1逻辑仿真

本次设计采用了自上而下的模块设计方法,考虑需要设计以下几部分模块:串并转换模块,分拣接收模块,控制模块,封装发送模块等。这几部分的逻辑关系如图 3所示:

串并转换模块主要是接收和发送传输数据,能够把串行数据转变成所需要的并行数据。分拣接收模块功能是把串并转换模块传过来的数据包按照一定的要求进行分拣提取,从而得到有用的信息。控制模块是设计的核心, PS/2接口是半双工串行总线,因此其发送和接收不能同时进行,需要控制模块对其时序进行严格的控制。控制模块负责协调整个设计的全过程,在本设计中采用了状态机的设计思路。封装发送模块和分拣接收模块类似,只不过是把要传送的命令数据转变成 PS/2协议要求的发送数据包的格式。整个设计的流程图如图 4 所示:

当系统上电或复位时,主设备首先向键盘发送初始化信号,在得到键盘的应答信号后,系统进入到了总线空闲状态,可以进行数据的发送和接收,但主设备拥有更高的优先级,正处在接收状态时如果得到发送请求,会中断数据接收,直接进入数据发送状态。

使用 MAX+plusⅡ 10.2对设计进行了软件仿真,按照模块化的设计思路分别对每个模块独立进行了仿真。图 5是接收数据模块的仿真时序图。

2.2 硬件验证

硬件验证在 GW-48实验箱实现,在系统中用到复位电路,电源电路,FPGA芯片,程序下载电路,PS/2接口电路,数码显示电路等。

选取 FLEX10K系列 EPF10K10LC84-3 型 FPGA器件进行综合,将综合后的配置文件下载到开发板之后,系统上电,PS/2设备初始化后在实验箱正确观察到了键盘的输入。

3、结束语

FPGA的硬件验证表明,设计的各个模块成功地实现了复位后的数据传送过程,达到了预期的目标。VHDL语言的通用性决定了其具有移植性强的特点,对实际的应用具有一定的参考价值。

本文作者创新点:本文所作的研究是在利用单片机实现 PS/2接口的基础上,重新用 FPGA实现了对 PS/2接口的控制。该方法较传统的单片机实现方法具有实现简单,移植性强,便于集成等特点,该方法具有很好的推广价值。

猜您喜欢

现代电子设备中,电源效率和稳定性很重要。PFC(功率因数校正)电路整流后电容作为电源系统中的核心元件,是稳定电压输出、提升电源效率的关键配件。看似不起眼,却对设...
2024-11-17 00:00:00

LED灯以其节能环保的特点,已经走进了千家万户。但是,当你需要更换LED灯的驱动器时,你是否曾有过这样的疑问:这些驱动器可以通用吗?答案并不绝对,需要根据具体情...
2024-08-08 00:00:00

防浪涌电阻作为保护电子元件免受瞬间高电压冲击的重要器件,越来越受到重视。防浪涌电阻能够有效抑制电路中的浪涌电流,保障设备的稳定运行和使用寿命。本文将围绕宏达电子...
2013-02-04 06:41:30

贴片电阻在电路图中通常用两种符号表示,一种是国际标准的矩形符号,另一种是美标的之字形符号。国际标准的矩形符号是一个空心或实心的矩形,中间没有其标记。这种符号简洁...
2024-11-29 10:25:59

分流器作为重要的电流检测元件,有着着不可替代的作用。VITROHM作为知名的分流器品牌,高精度、高可靠性和多样化的规格选择,应用于各种工业和科研领域。本文将详细...
2023-08-30 00:09:59

静电消除设备在工业生产中是重要配件,尤其是在电子、塑料和纺织等行业。了解其主要参数对于选择合适的设备非常重要。消除范围是一个关键参数,通常以米为单位,表示设备能...
2010-04-20 00:00:00

环境光传感器是能够检测周围光线强度的设备,在我们的日常生活中有着着重要作用。这种传感器应用于智能手机、平板电脑等电子设备中,能够根据环境光的变化自动调节屏幕亮度...
2011-12-04 00:00:00

防撞条是有效的安全防护设施,应用于家庭、商场、医院等场所。其主要优势有以下几点:防撞条能够有效减少碰撞带来的伤害。尤其在儿童活动频繁的环境中,防撞条能有效保护孩...
2016-11-04 00:00:00

开关锁具是日常生活中常见的安全装置,主要用于保护门窗等出入口的安全。基本定义是通过机械或电子方式控制门锁的开启与关闭。开关锁具通常由锁体、锁芯、钥匙或密码输入装...
2009-12-21 00:00:00

12角套筒是应用于各类机械和维修工作的工具,因其独特的设计和优越的性能,受到众多行业的青睐。在汽车维修领域,12角套筒能够轻松应对各种螺栓和螺母,尤其适合狭小空...
2022-11-13 00:00:00