PS2接口通信协议分析.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PS/2接口通信协议分析 * PS/2 键盘通信原理 PS/2设备履行一种双向同步串行协议 PS/2键盘的通信可分为: 键盘——〉主机 主机——〉键盘 主机可以是计算机、实验板等,这里我们特指FPGA实验板。 * 键盘各针的定义 1、数据输入、输出 2、未定义 3、地 4、电源(+5V) 5、键盘时钟 6、未定义 * PS/2键盘接口协议分析 每按一个键会产生如下数据 按下产生一组串行数据; 松开产生两组串行数据 每组串行数据11-12位,从低位开始传输; 每组数据包括 1位起始位,低电平; 8位数据位(即扫描码),从低位开始传输; 1位奇偶校验位 如果扫描码中1的个数为奇数,该位取0; 如果扫描码中1的个数为偶数,该位取1。 1位结束位,高电平; 1位回执位(仅用于主机到键盘通信); 本次实验只用到键盘到主机的通信。 * PS/2键盘接口协议分析 (续) 扫描码 扫描码分为通码和断码,一般用16进制表示 通码和断码 当一个键被按下就发送通码(Make) 当一个键被释放就发送断码(Break) 每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是按下哪个键 扫描码包含在每组串行数据中 * 键盘扫描码 * PS/2键盘接口协议分析 (续) 一次按键过程产生的数据分析 举例:按下和松开一次“A”键时产生的数据,注意低位在前 第1组:00011100001(按下,扫描码1C ) 第2组:00000111111(松开前一组,扫描码F0) 第3组:00011100001(松开后一组,扫描码1C ) * 用数字示波器记录键盘时钟及键盘数据信号 * 松开A健时记录的串行数据波形 键盘时钟 串行数据 低位在前 * PS/2键盘接口程序模块分析 PS/2键盘接口程序分为两个主要模块: 模块1:键盘数据接收及分析 滤波:键盘产生的数据具有毛刺,需要滤波 接收数据 接收11个串行数据,串并转换。 奇偶校验 提取其中8位扫描码 模块2:键盘数据译码及输出 译码 对接收来的数据注意区分是通码还是断码 专门处理左右shift键(对简单计算器项目) 对0到9等数字以及符号键进行译码 输出:将译码得到的字符输出 PS/2键盘接口程序片段(滤除毛刺) entity PS2 is port( in_data :in std_logic; --键盘读入数据 in_clk :in std_logic; --键盘时钟 ……… ); end PS2; architecture behave of PS2 is signal ps_data,d :std_logic; --滤波后的键盘数据 signal ps_clk,c :std_logic; --滤波后的键盘时钟 signal clock :std_logic; --5M begin PROCESS(clock) BEGIN IF clock‘event and clock=’1‘ THEN --滤除键盘信号中的毛刺 ps_clk= in_clk; ps_data= in_data; END IF; END PROCESS; 思考一下,以上程序为何可滤除信号中毛刺? 根据PS/2原理,如何设计键盘数据读取、串并转换、扫描码译码等程序?

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档