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),以及键盘当前状态的锁存和松键标志。
文章评论(0条评论)
登录后参与讨论