热度 11
2015-8-3 16:59
777 次阅读|
0 个评论
1. PS2 键盘解码实验 PS: 详情可以参考 ps2_key 文件夹 该实验要实现 CPLD 通过 PS2 接收键盘的数据,然后把接收到的大写字母 A-Z 的键值转换成相应的 ASC2 码,再通过串口传送给 PC 机。只要字母被按下,就能在串口调试助手里显示相应字母。 该实验的目的是使用 verilogHDL 来做 PS2 解码实验,可以帮我们把 PS2 的传输协议理解的更加透彻一点。 注意: PS2 接口为 6pin 的接口,不是 USB 接口 数据帧格式: 数据帧格式中,起始位为低电平,停止位为高电平,应答位仅用在主机对设备的通讯中使用,如果数据位中 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 ),以及键盘当前状态的锁存和松键标志。