在咱们的电子体系中,当需求用到很多的按键输入时,一般的独立按键和矩阵键盘现已无法满意咱们的输入需求,这个时分,咱们需求运用一种功用愈加强壮的键盘,来协助咱们输入更多的信息。在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 独立按键检测试验内部信号阐明