原创 PS2键盘解码实验--读书笔记

2015-8-3 16:59 774 11 11 分类: FPGA/CPLD

1.PS2键盘解码实验

PS:详情可以参考ps2_key文件夹

该实验要实现CPLD通过PS2接收键盘的数据,然后把接收到的大写字母A-Z的键值转换成相应的ASC2码,再通过串口传送给PC机。只要字母被按下,就能在串口调试助手里显示相应字母。

该实验的目的是使用verilogHDL来做PS2解码实验,可以帮我们把PS2的传输协议理解的更加透彻一点。

注意:PS2接口为6pin的接口,不是USB接口

数据帧格式:20150727151248658.jpg

数据帧格式中,起始位为低电平,停止位为高电平,应答位仅用在主机对设备的通讯中使用,如果数据位中1的个数为偶数,校验位就为1;如果数据位中1的个数为奇数,校验位就为0;总之,数据位中1的个数加上校验位中1的个数总为奇数,因此总进行奇校验。

重点PC通过PS2接口与从设备通信时,总在时钟的下降沿读取数据。

不同点:键盘编码返回值跟一般ASC2码相对应。一般地,键盘默认使用第二套扫描码(网上可以查询)。比如,shift键的通码8'h12,shift的断码8'hf0  8'h12

该实验分三个底层模块,PS2传输处理模块(ps2scan,串口传输模块(my_uart_tx)以及串口波特率选择模块(speed_select

后两者跟串口通信一样,ps2scan三级缓存,过滤ps2的时钟信号ps2k_clk;计数和发送数据到发送寄存器端口,注意 根据num值依次发送;通码和断码的判断(shift键的通码8'h12,断码8'hf0  8'h12),以及键盘当前状态的锁存和松键标志。

文章评论0条评论)

登录后参与讨论
我要评论
0
11
关闭 站长推荐上一条 /2 下一条