小梅哥和你一起深入学习FPGA之PS2键盘驱动珠宝盒
2022-09-20 10:51
小梅哥和你一起深入学习FPGA之PS2键盘驱动
在我们的电子系统中,当需要用到大量的按键输入时,普通的独立按键和矩阵键盘已经无法满足我们的输入需求,这个时候,我们需要使用一种功能更加强大的键盘,来帮助我们输入更多的信息。在pc机上,我们经常使用104键的键盘,这种键盘与pc机的接口,可分为USB接口和PS2接口,我们FPGA要实现USB接口比较困难,因为USB的接口线路,不是标准的TTL电平,而PS2接口,则使用标准的TTL电平,那么我们今天就使用FPGA来解码驱动一个采用PS2制动机接口的pc机键盘,用这个键盘来扩展我们FPGA的输入系统,以使我们能够方便的焊接设备输入更多的信息。
一、 实验目的
实现采用PS2协议的PC机键盘的解码,最终将PS2键盘作为FPGA系统的一个标准输入设备。
二、 实验原理
PS2键盘的内部结构我们不需要过多的去关注,我们只需要关心其接口协议,正确的解码其发送过来的按键信息即可,至于解码到的按键信息该怎么处理,不同的应用有不同的处理方式,这里就不做过多的介绍。PS2协议的简单描述如下:
PS2协议总共由两根线组成,一根时钟线和一根数据线。这里我们将采用PS2协议的键盘称为从机,将控制和解码PS2协议的一方成为主机,生活中最常见的主机便是我们的PC机。PS2总线协议的两根线中,时钟线传输时钟信号,该时钟信号始终由从机,即键盘产生。PS2协议发送一个字节的数据总共有11位,分别为
1位起始位
8位数据位
1位校验位
1位停止位
PS2从机发送一个完整数据包的时序图如下所示:
图2-1 PS2从机发送数据时序图
相信熟悉UART协议的同学一眼就能看出来,PS2协议和我们最熟悉的UART通信协议非常相似,那么我们的工作就简单了,既然键盘按照这个协议发送数据,我们FPGA作为主机,只需要正确的实现该协议的解码,将其中的8位数据位读取出来即可。由图可知,数据在时钟的下降沿处是稳定的,因此我们只需要去捕获时钟信号的下降沿,并在检测到这个下降沿时去读取数据线上的电平,就能够正确的读到数据。
以上是PS2协议中从机到主机的一个通讯过程,实际在PS2协议中,包含了从机到主机和主机到从机的通信时序,只是在我们进行脱毛器PS2键盘的解码时,可以不需要进行主机到从机的通信,因此这部分内容小梅哥就不在这里讲解了,如果大家以后要解码PS2鼠标的话,就会用到主机到从机的通信了。
上面只是简单的介绍了PS2从机到主机的通信协议,我们知道了键盘是一个字节一个字节的往主机发送数据的,但是,每个字节代表了什么内容呢,我们还需要对照键盘编码对照表来查看。
键盘扫描码分为第一套扫描码、第二套扫描码和第三套扫描码,我们日常生活中常见的扫描码绝大多数采用第二套扫描码,因此这里小梅哥就只附上第二套扫描码的内容。
实际一个按键由按下到释放时键盘将按照如下的规定往主机发送数据:
只要一个键被按下,这个键的通码(MAKE)就被发送到计算机。通码只表示键盘上的一个按键,它不表示印刷在按键上的那个字符。 这就意味着在通码和ASCII码之间没有已定义好的关联, 直到主机把扫描码翻译成一个字符或命令。
虽然多数第二套通码都只有一个字节宽,但也有少数“ 扩展按键”的通码是两字节或四字节宽,这类的通码第一个字节总是为E0H(如“END”、“HOME”……)。正如键按下通码就被发往计算机一样, 只要键一释放, 断码就会被发送。每个键都有它自己唯一的通码,它们也都有唯一的断码。 幸运的是,你不用总是通过查表来找出按键的断码―― 在通码和断码之间存在着必然的联系。 多数第二套断码有两字节长,它们的第一个字节是F0H, 第二个字节是这个键的通码。
例如,当我们按下键盘上的“A”键时,键盘就会往主机发送”A”键对应的通码(MAKE)”1C”,如果你一直按下这个按键不释放,那么在一个短暂的延时之后,键盘会再次开始,以一定的速率持续向主机发送”1C“,直到该按键被释放。在该按键被释放后,键盘将会向主机发送“A ”的断码(Break),即首先发送“F0”,然后下一个字节再马上发送“1C”。
如果我们按下的是“END”、“PAGE UP”等扩展按键时,会怎么样呢?这里,以”END”键举例。当”END“键被按下后,键盘会首先向主机发送“E0”,发送完成后,又会接着发送下一个字节“69”,释放时也与前面的普通按键类似,先发送“E0”,然后发送“F0”,最后再发送“69”。
由上述分析可知,我们FPGA在解码到一次数据后,还需要对这个数据进行分析判断,判断该数据是否为断码标志“F0”以及扩展码标志”E0“。
三、 硬件设计
PS2电路结构简单,因此这里就略去。
四、 架构设计
本实验我们进行PS2键盘的解码实验,并将解码到的结果显示在数码管上,同时,为了使我们更加直观的感受到按键被按下和释放,小梅哥在这里增加了一个蜂鸣器,当有按键按下或释放(包括长按时每接收到一个通码)时,蜂鸣器发出一个短暂的响声,来反馈给操作者,让我们成型鞋底知道我们的解码模块解码到了按键信息。设计结构如下图所示:
图4-1 led实验模块组织结构图
详细端口名及其意义如下
表4-1 独立按键检测实验端口说明
因为存在模块间的连接,因此有部分内部信号,下表为内部信号的名称和功能说明
表4-2 独立按键检测实验内部信号说明
五、 代码分析
这里,解码的关键是PS2接口的时钟信号,该时钟为异步时钟,我们需要通过边沿检测的方式来检测其下降沿,以便根据下降沿的个数来确定每个时钟我们因该做什么,边沿检测的电路,前面几个实验已经讲过很多次了,这里便不再做过多的解释,贴上代码即可:
以下是代码片段:
reg PS2_Clk_Tmp0,PS2_Clk_Tmp1,PS2_Clk_Tmp2,PS2_Clk_Tmp3;
wire nedge_PS2_Clk; /*PS2从机时钟下降沿检测标志信号*/
always @ (posedge Clk or negedge Rst_n)
if(!Rst_n) begin
PS2_Clk_Tmp0
七、 下板验证
这里,小梅哥在至芯科技ZX2的板子上验证通过,如下图:
其中,第三个数码管,为0表示普通按键通码,为2表示普通按键断码,为1表示扩展按键通码,为3表示扩展按键断码。
重庆治疗输卵管堵塞专业的医院
南京可以治疗输卵管堵塞的医院
南宁有名的治疗性病医院
太原治甲状腺的专业医院
一、 实验目的
实现采用PS2协议的PC机键盘的解码,最终将PS2键盘作为FPGA系统的一个标准输入设备。
二、 实验原理
PS2键盘的内部结构我们不需要过多的去关注,我们只需要关心其接口协议,正确的解码其发送过来的按键信息即可,至于解码到的按键信息该怎么处理,不同的应用有不同的处理方式,这里就不做过多的介绍。PS2协议的简单描述如下:
PS2协议总共由两根线组成,一根时钟线和一根数据线。这里我们将采用PS2协议的键盘称为从机,将控制和解码PS2协议的一方成为主机,生活中最常见的主机便是我们的PC机。PS2总线协议的两根线中,时钟线传输时钟信号,该时钟信号始终由从机,即键盘产生。PS2协议发送一个字节的数据总共有11位,分别为
1位起始位
8位数据位
1位校验位
1位停止位
PS2从机发送一个完整数据包的时序图如下所示:
图2-1 PS2从机发送数据时序图
相信熟悉UART协议的同学一眼就能看出来,PS2协议和我们最熟悉的UART通信协议非常相似,那么我们的工作就简单了,既然键盘按照这个协议发送数据,我们FPGA作为主机,只需要正确的实现该协议的解码,将其中的8位数据位读取出来即可。由图可知,数据在时钟的下降沿处是稳定的,因此我们只需要去捕获时钟信号的下降沿,并在检测到这个下降沿时去读取数据线上的电平,就能够正确的读到数据。
以上是PS2协议中从机到主机的一个通讯过程,实际在PS2协议中,包含了从机到主机和主机到从机的通信时序,只是在我们进行脱毛器PS2键盘的解码时,可以不需要进行主机到从机的通信,因此这部分内容小梅哥就不在这里讲解了,如果大家以后要解码PS2鼠标的话,就会用到主机到从机的通信了。
上面只是简单的介绍了PS2从机到主机的通信协议,我们知道了键盘是一个字节一个字节的往主机发送数据的,但是,每个字节代表了什么内容呢,我们还需要对照键盘编码对照表来查看。
键盘扫描码分为第一套扫描码、第二套扫描码和第三套扫描码,我们日常生活中常见的扫描码绝大多数采用第二套扫描码,因此这里小梅哥就只附上第二套扫描码的内容。
实际一个按键由按下到释放时键盘将按照如下的规定往主机发送数据:
只要一个键被按下,这个键的通码(MAKE)就被发送到计算机。通码只表示键盘上的一个按键,它不表示印刷在按键上的那个字符。 这就意味着在通码和ASCII码之间没有已定义好的关联, 直到主机把扫描码翻译成一个字符或命令。
虽然多数第二套通码都只有一个字节宽,但也有少数“ 扩展按键”的通码是两字节或四字节宽,这类的通码第一个字节总是为E0H(如“END”、“HOME”……)。正如键按下通码就被发往计算机一样, 只要键一释放, 断码就会被发送。每个键都有它自己唯一的通码,它们也都有唯一的断码。 幸运的是,你不用总是通过查表来找出按键的断码―― 在通码和断码之间存在着必然的联系。 多数第二套断码有两字节长,它们的第一个字节是F0H, 第二个字节是这个键的通码。
例如,当我们按下键盘上的“A”键时,键盘就会往主机发送”A”键对应的通码(MAKE)”1C”,如果你一直按下这个按键不释放,那么在一个短暂的延时之后,键盘会再次开始,以一定的速率持续向主机发送”1C“,直到该按键被释放。在该按键被释放后,键盘将会向主机发送“A ”的断码(Break),即首先发送“F0”,然后下一个字节再马上发送“1C”。
如果我们按下的是“END”、“PAGE UP”等扩展按键时,会怎么样呢?这里,以”END”键举例。当”END“键被按下后,键盘会首先向主机发送“E0”,发送完成后,又会接着发送下一个字节“69”,释放时也与前面的普通按键类似,先发送“E0”,然后发送“F0”,最后再发送“69”。
由上述分析可知,我们FPGA在解码到一次数据后,还需要对这个数据进行分析判断,判断该数据是否为断码标志“F0”以及扩展码标志”E0“。
三、 硬件设计
PS2电路结构简单,因此这里就略去。
四、 架构设计
本实验我们进行PS2键盘的解码实验,并将解码到的结果显示在数码管上,同时,为了使我们更加直观的感受到按键被按下和释放,小梅哥在这里增加了一个蜂鸣器,当有按键按下或释放(包括长按时每接收到一个通码)时,蜂鸣器发出一个短暂的响声,来反馈给操作者,让我们成型鞋底知道我们的解码模块解码到了按键信息。设计结构如下图所示:
图4-1 led实验模块组织结构图
详细端口名及其意义如下
表4-1 独立按键检测实验端口说明
因为存在模块间的连接,因此有部分内部信号,下表为内部信号的名称和功能说明
表4-2 独立按键检测实验内部信号说明
五、 代码分析
这里,解码的关键是PS2接口的时钟信号,该时钟为异步时钟,我们需要通过边沿检测的方式来检测其下降沿,以便根据下降沿的个数来确定每个时钟我们因该做什么,边沿检测的电路,前面几个实验已经讲过很多次了,这里便不再做过多的解释,贴上代码即可:
以下是代码片段:
reg PS2_Clk_Tmp0,PS2_Clk_Tmp1,PS2_Clk_Tmp2,PS2_Clk_Tmp3;
wire nedge_PS2_Clk; /*PS2从机时钟下降沿检测标志信号*/
always @ (posedge Clk or negedge Rst_n)
if(!Rst_n) begin
PS2_Clk_Tmp0
七、 下板验证
这里,小梅哥在至芯科技ZX2的板子上验证通过,如下图:
其中,第三个数码管,为0表示普通按键通码,为2表示普通按键断码,为1表示扩展按键通码,为3表示扩展按键断码。
重庆治疗输卵管堵塞专业的医院
南京可以治疗输卵管堵塞的医院
南宁有名的治疗性病医院
太原治甲状腺的专业医院
相关阅读
-
高效液相色谱法测定喘静片的3种主要成分压力泵电动玩具混色机合金粉末专业童车Trp
高效液相色谱法测定喘静片的3种主要成分采用高效液相色谱法同时测定喘静片中的3种主要成分:茶碱、异戊巴比妥和盐酸甲基麻黄UD带与FiberForm工艺的奇妙组合碱。以ODS汽车空调作固定相,通过均匀设计方法选择的最佳流动相为
2024-04-18 07:09
-
环氧树脂新产品跻身安徽省级重点新产品老玩具晋城电机阀热量表高考家教Trp
环氧树脂新产品跻身安徽省级重点新产品环氧树脂新产品跻身安徽省级重点新产品2008年10月29日【中国涂料资讯】最近黄山市有5个产品,跻身2008减速机年度省级重点新产品。据介绍,近日安徽省科技厅,下达的2008年度安徽省重点
2024-04-18 05:06
-
远红外碳纤维灭菌技术首用于均温消毒柜家电涂料济宁切胶机插座电源柴油Trp
远红外碳纤维灭菌技术首用于均温消毒柜美的最新推出七点均温系列110升双二星级消毒柜,首次将远红外碳纤维灭菌技术应用于消毒柜产品中,保证柜内七个散布监测点达到国标温度要求,保证每一个角落纯净无菌。美有专家提
2024-04-18 03:30
-
电子阅读时代精美印刷典藏书依然走俏0常州风钻微滤膜保险管安装Trp
电子阅读时代 精美印刷典藏书依然走俏7月28日,湖南美术出版社历时3年编纂出版的《黄永玉全集》在京首发。此书正式发行之前,限量珍藏版已在上预售。此次共印制1000套精装图插件线书,售价13800元每套,另有200套特精装图书
2024-04-18 01:24
-
北方白酒包装现状宁德条码设备钢尺电饭煲铰链TRp
北方白酒包装现状近日,国内较知名的白酒经销商代表和相关包装企业与厂家代表对北方白酒包装的现状和特点做出了评述和分析。其一,国际市场的回暖北方地区大多比较重视外包装的色调,要求色调显得丰富手套一些,同时
2024-04-03 05:59
-
数控车床安全注意事项阻抗表嘉峪关水电改造负压风机封箱机TRp
数控车床安全注意事项 1.1确保操纵板和电气控制柜的门都已管好。 1.2确保机床周围是没有障碍物。 1.3先接通主电源隔离开关,再接通操纵板上的电源“ON”(开)开关。 2、 卡盘注意事项 2.1一定要先色彩
2024-04-03 03:20
友情链接
万能试验机
西装定做
常州眼科医院
家庭常备药
上海夫妻离婚财产分割
上海离婚继承律师热线
锦星服装定制
花椒水和姜泡脚能治灰指甲吗
寻医问药
大理白癜风医院
离婚律师律所
三门峡癫痫病专科医院哪家好
离婚案件
怀化治疗癫痫病医院哪家好
知名离婚诉讼律师
衡阳治疗妇科专科医院
湖州妇科
公司治理
Material
好修网
福州服装定做厂家
西宁工作服定制
Hardness Tester
Medical Supply
Cable Wire
Size
寻医问药
太原皮肤病专科医院排行榜
山东好的多动症医院
成都哪家治疗癫痫病医院好
温州男科医院地址
山东治不孕不育哪家医院好
唐山资讯
Manufacturers In China