- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PS2键盘FPGA程序
转发?? 评论
2011-04-28 14:30
????
PS2的接口如上图,除了Pin 5 和 Pin 1 其他的引脚对解码没有什么意义。而下图是PS2协议的时序图。PS2协议对数据的移位是“Clock 的下降沿”有效。PS2时钟的频率比较慢,大约是10Khz左右。
第N位:0???????????? 1---8???????? 9??????????? 10?????????? ?11
取值: 0?????????????x---x??????? ?x???????????? 1???????????? x
意义:开始位???????? 数据位???? 寄偶校验位?????停止位??????? 应答位
PS2的一帧是12位。对PS2进行解码时,除了第1~8位数据位以外,其余的位都可以无视。
键盘的编码有“通码”(Make)和“断码”(Break)之分。看得简单一点就是,“通码”是某按键的“按下事件”,“断码”是某按键的“释放事件”。
假设,我按下“W”键不放,每秒大约会输出10个“0x1d”的“通码”。然后我释放“W”键,就会输出 “0xF0 0x1d” 的“断码”。 编码键盘还有一个老规则,就是一次只有一个输出。
再假设我按下“W”键不放,然后我再按下“X”键不放,那么会输出“0x1d”“0x22”“0x22”........ 的通码。如果此时我放开“X”键,就会输出“0xf0 0x22”的“断码”,此时“W”键的“通码”已经无效。但是当我释放“W”键的时候,依然会输出“0xf0 0x1d”, “W”键的“断码”。
至于组合键 “ Shift + ?” ,“ Ctrl + ?”都是软件的工作,还需要详解。
FPGA模拟PS2协议??/kingst/
2010-10-14 09:40:58|??分类: fpga |??标签:ps2_clkr??data2??fpga??rst??reg?? |字号大中小?订阅
/*出处/kingst/*/
在以前使用单片机对PS2进行解码的时候,一句话就是苦。 如果是CPLD 或者 FPGA 的前提下,PS2的解码才有意义。
PS2的接口如上图,除了Pin 5 和 Pin 1 其他的引脚对解码没有什么意义。而下图是PS2协议的时序图。PS2协议对数据的移位是“Clock 的下降沿”有效。PS2时钟的频率比较慢,大约是10Khz左右。
?第N位
属性
0
开始位
1~8
数据位
9
校验位
10
结束位
PS2的一帧是11位。对PS2进行解码时,除了第1~8位数据位以外,其余的位都可以无视。
对编码键盘“键盘码”的简单认识
普通计算机采用的都是“编码键盘”,但是“编码键盘”的“编码方式”有分为“第一套”“第二套”和“第三套”。“第二套”的编码使用较为普遍,大致上的民用键盘都是采用“第二套”编码方式。
?
键盘的编码有“通码”(Make)和“断码”(Break)之分。看得简单一点就是,“通码”是某按键的“按下事件”,“断码”是某按键的“释放事件”。
假设,我按下“W”键不放,每秒大约会输出10个“0x1d”的“通码”。然后我释放“W”键,就会输出 “0xF0 0x1d” 的“断码”。 编码键盘还有一个老规则,就是一次只有一个输出。
再假设我按下“W”键不放,然后我再按下“X”键不放,那么会输出“0x1d”“0x22”“0x22”........ 的通码。如果此时我放开“X”键,就会输出“0xf0 0x22”的“断码”,此时“W”键的“通码”已经无效。但是当我释放“W”键的时候,依然会输出“0xf0 0x1d”, “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_decode_module.v 最主要的核心是在第31~55行。同样这个模块也是采用“仿顺序操作”的写法。步骤i一开始会停留在0(33行),当检查到 H2L_Sig 的变化,我们知道PS2一帧数据的第第0位是开始位,所以无视。在接下来的8个位都是数据位,PS2的数据位是从最低位开始,最高位结束。然后对 PS2_Data
文档评论(0)