欢迎来到天天文库
浏览记录
ID:37417068
大小:477.62 KB
页数:13页
时间:2019-05-23
《ps2键盘fpga程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、PS2键盘FPGA程序转发 评论2011-04-2814:30 PS2的接口如上图,除了Pin5和Pin1其他的引脚对解码没有什么意义。而下图是PS2协议的时序图。PS2协议对数据的移位是“Clock的下降沿”有效。PS2时钟的频率比较慢,大约是10Khz左右。第N位:0 1---8 9 10 11取值:0 x---x x 1 x意义:开始位 数据位 寄偶校验位 停止位 应答位P
2、S2的一帧是12位。对PS2进行解码时,除了第1~8位数据位以外,其余的位都可以无视。键盘的编码有“通码”(Make)和“断码”(Break)之分。看得简单一点就是,“通码”是某按键的“按下事件”,“断码”是某按键的“释放事件”。假设,我按下“W”键不放,每秒大约会输出10个“0x1d”的“通码”。然后我释放“W”键,就会输出“0xF00x1d”的“断码”。编码键盘还有一个老规则,就是一次只有一个输出。再假设我按下“W”键不放,然后我再按下“X”键不放,那么会输出“0x1d”“0x22”“0x22”........的通码。如果此时我放开“X”键,就会输出“0xf00x22”的“断码
3、”,此时“W”键的“通码”已经无效。但是当我释放“W”键的时候,依然会输出“0xf00x1d”,“W”键的“断码”。至于组合键“Shift+?”,“Ctrl+?”都是软件的工作,还需要详解。FPGA模拟PS2协议 refertohttp://www.cnblogs.com/kingst/2010-10-1409:40:58
4、 分类:fpga
5、 标签:ps2_clkr data2 fpga rst reg
6、字号大中小 订阅/*出处http://www.cnblogs.com/kingst/*/在以前使用单片机对PS2进行解码的时候,一句话就是苦。如果是CPLD或者F
7、PGA的前提下,PS2的解码才有意义。PS2的接口如上图,除了Pin5和Pin1其他的引脚对解码没有什么意义。而下图是PS2协议的时序图。PS2协议对数据的移位是“Clock的下降沿”有效。PS2时钟的频率比较慢,大约是10Khz左右。 第N位属性0开始位1~8数据位9校验位10结束位PS2的一帧是11位。对PS2进行解码时,除了第1~8位数据位以外,其余的位都可以无视。对编码键盘“键盘码”的简单认识普通计算机采用的都是“编码键盘”,但是“编码键盘”的“编码方式”有分为“第一套”“第二套”和“第三套”。“第二套”的编码使用较为普遍,大致上的民用键盘都是采用“第二套”编码方式。 键盘
8、的编码有“通码”(Make)和“断码”(Break)之分。看得简单一点就是,“通码”是某按键的“按下事件”,“断码”是某按键的“释放事件”。假设,我按下“W”键不放,每秒大约会输出10个“0x1d”的“通码”。然后我释放“W”键,就会输出“0xF00x1d”的“断码”。编码键盘还有一个老规则,就是一次只有一个输出。再假设我按下“W”键不放,然后我再按下“X”键不放,那么会输出“0x1d”“0x22”“0x22”........的通码。如果此时我放开“X”键,就会输出“0xf00x22”的“断码”,此时“W”键的“通码”已经无效。但是当我释放“W”键的时候,依然会输出“0xf00x1
9、d”,“W”键的“断码”。至于组合键“Shift+?”,“Ctrl+?”都是软件的工作,我们就无视吧。在组合模块ps2_module.v中包含了两个功能块:“电平检测模块”detect_module.v和"ps2解码模块"ps2_decode_module。detect_module.v的添加时为了检查PS2时钟信号的“下降沿”,此外也是为了使模块的建立更简单。ps2_decode_module.v如字面上的意思,对每帧(十一位一组数据)的数据进行解码和过滤的行为,最后将一字节数据输出PS2_Data,然后PS2_Done_Sig产生一个高脉冲,表示完成一次性的操作。 ps2_d
10、ecode_module.v最主要的核心是在第31~55行。同样这个模块也是采用“仿顺序操作”的写法。步骤i一开始会停留在0(33行),当检查到H2L_Sig的变化,我们知道PS2一帧数据的第第0位是开始位,所以无视。在接下来的8个位都是数据位,PS2的数据位是从最低位开始,最高位结束。然后对PS2_Data_Pin_In引脚进行读值(第36~37行)。PS2一帧数据的第9~10位是校验位和结束位,执行无视操作(39~40行)。在i等于11的时候(42行),我们要进行
此文档下载收益归作者所有