电工、电子、电拖技能实训设备
立式通用电工、电子、电拖实训设备
电子技能及生产工艺实训设备
高性能电工、电子、电拖、电气实训设备
维修电工实训考核设备
供配电技术实训装置
农村通信系统线路实训装置
工厂电气控制供电实训装置
PLC可编程实训装置
PLC可编程实验室设备
家用电器实训设备
PLC控制液压与气动实训装置
机电一体化实训设备
变频调速、工业自动化实训装置
数控机床电气维修实训考核设备
普通机床实训设备
机床电气技能培训及考核装置
钳工实验台、焊铆工实训设备
智能楼宇实训设备
工程制图实验室设备
财会模拟实验室设备
化工过程控制实训装置
风能、太阳能发电实训装置
煤矿安全技术培训装置
轨道交通实训系统设备
船舶、智能数码产品实训装置
机械工程技能实训设备
工程机械模拟教学仪
汽车模拟驾驶器
汽车发动机实训设备
汽车全车电器实验台
汽车空调系统实验台
汽车实物解剖模型
汽车底盘实训设备
汽车变速器实训台
汽车发动机拆装及翻转架设备
汽车示教板
汽车程控电教板
透明汽车教学模型
汽车整车综合实训系统
汽车驾校培训设备
新能源汽车教学实训装置
汽车实验箱
立式通用电工、电子、电拖实验室成套设备
电工、模电、数电、电气控制实验室设备
高级电工、电子、电机实验室设备
电工、电子、电气、电机实验室设备
数控技术实验室设备
家用电器电子实验室设备
单片机微机实验装置
传感器综合实验台
空调制冷制热实验室设备
多媒体数字语音设备
透明仿真教学电梯模型
理化生实验室设备
环境工程实验装置
流体力学实验室设备
热工类教学实验装置
化工原理实验装置
化工单元操作实训装置
制药工程实验装置
采暖通风和空调制冷实验装置
化学工程化学工艺实验装置
教学实验箱
机械示教陈列柜
机械多媒体仿真设计综合实验装置
机械教学模型
中学理科教学仪器
机械教学挂图
机械试验设备
心肺复苏模拟人
教学类软件
新闻中心主页 > 技术文章 >

浅谈PS2接口键盘显示实验


发布时间:2024-06-06
一、  实验目的
1、学习用FPGA设计简单通信协议的方法。
2、学习PS2的工作原理,扫描码的ASCII码的转换。
3、掌握VHDL编写中的一些小技巧。
二、  实验原理
  PS2通信协议是一种双向同步串行通迅协议。通迅的两端通过CLOCK(时钟信号端)同步,并通过DATA(数据端口)交换数据。任何一方如果想要抑制另外一方的通迅时,只需要把CLOCK拉到低电平。
PS2标准,规范每笔数据传输包含起始位(start bit)、扫描码(scan code)、奇同位检查(odd parity)、以及终止位(stop bit)共计11位,并以双向串行数据传输的方式,达到通信的目的。且当主机端(host)或从机端(slave)并无传送或接收数据时,数据传输端口及频率均将升为高电位。图4-17-1所示为每一笔数据传输所包含之内容如下:
1.          起始位(“0”)
2.          8位数据宽度的扫描码( scan code )。
3.          奇同位检查,使扫描码与奇同位加起来1的数字为奇数个。
4.          终止位(“1”)
PS2 串行传输标准
 
 
 
图4-17-1  PS2 串行传输标准
 
PS2 端口脚位定义
图4-17-2   PS2 端口脚位定义
PS2控制接口仅使用到两条传输端口,一为频率端口,另一则为数据端口如图4-17-2所示,且此传输埠必为三态(Tri-State)并具有双向(bidirectional)特性。PS2 传输产品上,常见为鼠标与键盘,两者的驱动原理均相同,仅扫描码(scan code)不同。因此我们以PS2键盘为例进行说明。
键盘其实就是一个大型的按键矩阵,它们由安装在电路板上的处理器(叫做“键盘编码器”)来监视着。虽然不同的键盘可能采用不同的处理器,但是它们完成的任务都是一样的,即监视哪些按键被按下,哪些按键被释放了,并将这些信息传送到主机。如果有必要,处理器处理所有的去抖动,并在它的16字节的缓冲区里缓冲数据。主机端包含了一个“键盘控制器”与键盘处理器进行通讯,并解码来自键盘处理器的信息,然后高速系统当前按键对应的处理事情。主机与键盘之间的通讯仍旧采用IBM的协议。
键盘处理器花费很多时间来扫描或监视按键矩阵。如果发现有按键按下、释放或长按,键盘就发送“扫描码”的信息到主机。扫描码有两种不同的类型:“通码”和“断码”。当一个键被按下去或长按的时候,键盘就发送通码;当一个键被释放的时候,键盘就发送断码。每个键盘被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以确定是哪个按键被按下或释放。每个键一整套的通断码组成了“扫描码集”,现在所有的键盘都采用第二套扫描码。由于没有一个简单的公式可以计算扫描码,所以要知道某个特定按键的通码和断码,只能采用查表的方法来获得。需要特别注意的是,按键的通码值表示键盘上的一个按键,并不表示印刷在按键上的那个字符,这就意味着通码和ASCII码之间没有任何关联。
另外,第二套通码都只有一个字节宽,但也有少数“扩展按键”的通码是两字节或四字节宽,这类码的第一个字节总是0xE0。与通码一样,每个按键在释放的时候,键盘就会发送一个断码。每个键也都有它自己的唯一的断码,不过庆幸的是,断码与断码之间存在着必然的联系。多数第二套断码有两个字长,它们的第一个字节是0xF0,第二个字节就是对应按键的通码。扩展按键的断码通常有三个字节,前两个字节0xE0和0xF0,最后一个字节是这个按键通码的最后一个字节。表4-17-1列出了键盘按键的通码和断码。
 

键值 通码 断码 键值 通码 断码 键值 通码 断码
A 1C F0,1C 9 46 F0,46 [ 54 F0,54
B 32 F0,32 ` 0E F0,0E INSERT 67 F0,67
C 21 F0,21 - 4E F0,4E HOME 6E F0,6E
D 23 F0,23 = 55 F0,55 PG UP 6F F0,6F
E 24 F0,24 \ 5C F0,5C DELETE 64 F0,64
F 2B F0,2B BKSP 66 F0,66 END 65 F0,65
G 34 F0,34 SPACE 29 F0,29 PG DN 6D F0,6D
H 33 F0,33 TAB 0D F0,0D U ARROW 63 F0,63
I 43 F0,48 CAPS 14 F0,14 L ARROW 61 F0,61
J 3B F0,3B L SHFT 12 F0,12 D ARROW 60 F0,60
K 42 F0,42 L CTRL 11 F0,11 R ARROW 6A F0,6A
L 4B F0,4B L WIN 8B F0,8B NUM 76 F0,76
M 3A F0,3A L ALT 19 F0,19 KP / 4A F0,4A
N 31 F0,31 R SHFT 59 F0,59 KP * 7E F0,7E
O 44 F0,44 R CTRL 58 F0,58 KP - 4E F0,4E
P 4D F0,4D R WIN 8C F0,8C KP + 7C F0,7C
Q 15 F0,15 R ALT 39 F0,39 KP EN 79 F0,79
R 2D F0,2D APPS 8D F0,8D KP . 71 F0,71
S 1B F0,1B ENTER 5A F0,5A KP 0 70 F0,70
T 2C F0,2C ESC 08 F0,08 KP 1 69 F0,69
U 3C F0,3C F1 07 F0,07 KP 2 72 F0,72
V 2A F0,2A F2 0F F0,0F KP 3 7A F0,7A
W 1D F0,1D F3 17 F0,17 KP 4 6B F0,6B
X 22 F0,22 F4 1F F0,1F KP 5 73 F0,73
Y 35 F0,35 F5 27 F0,27 KP 6 74 F0,74
Z 1A F0,1A F6 2F F0,2F KP 7 6C F0,6C
0 45 F0,45 F7 37 F0,37 KP 8 75 F0,75
1 16 F0,16 F8 3F F0,3F KP 9 7D F0,7D
2 1E F0,1E F9 47 F0,47 ] 5B F0,5B
3 26 F0,26 F10 4F F0,4F ; 4C F0,4C
4 25 F0,25 F11 56 F0,56 ' 52 F0,52
5 2E F0,2E F12 5E F0,5E , 41 F0,41
6 36 F0,36 PRNT
SCRN
 57 F0,57 . 49 F0,49
7 3D F0,3D SCROLL 5F F0,5F / 4A F0,4A
8 3E F0,3E PAUSE 62 F0,62      
 
 
表4-17-1PS2 键盘扫描码
三、  实验内容
      本实验的任务就是利用PS2接口将键盘按键的通码在数码管上显示出来。
实验箱中用到PS2键盘接口与FPGA的接口电路如图4-17-3所示。
 
PS2键盘接口电路图
图4-17-3  PS2键盘接口电路图
 
四、  实验步骤
1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中提供的示例程序。示例程序共提供2个VHDL源程序。每一个源程序完成一定的功能。其具体的功能如下表4-17-2所示:

文件名称 完成功能
keyboard.VHD PS2键盘控制器电路设计。
DISPLAY.VHD 七段显示器译码电路设计。
 
表4-17-2   示例程序功能表
4、编写完VHDL程序后,保存起来。方法同实验一。
5、将自己编写的VHDL程序进行编译并生成模块符号文件,并对程序的错误进行修改,最终所有程序通过编译并生成模块符号文件。其具体方法请参照实验六。
6、新建一个图形编辑文件,将已生成的模块符号文件放入其中,并根据要求边接起来。完成后,如下图4-17-4所示。
编辑好的图形设计文件
图21-4  编辑好的图形设计文件
7、将自己编辑好的的程序进行编译仿真,并对程序的错误进行修改,最终通过编译。
8、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译一次,以使管脚分配生效。
9、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。
如果是调用的本书提供的VHDL代码,则实验连线如下:
      CLK: FPGA时钟,接数字时钟COLCK1并将其设为24M。
      DATA:PS2接口DATA信号,接PS2接口KDA端口。
      KYCLOCK:PS2接口CLK信号,接PS2接口KCL端口。
      RESET:复位信号,接核心板复位按键RST。
A、B、C、D、E、F、G:接七段码显示区的A、B、C、D、E、F和G
      SA、SB、SC:接七段码显示区的SEL0、SEL1、SEL2。
10、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。
五、  实验结果与现象
以设计的参考示例为例,将PS2接口的键盘接入PS2接口内。当设计文件加载到目标器件后,将数字信号源模块的时钟选择为24MHZ,按下PS2键盘上的键,则在实验平台的八位数码管上的中间两位将显示被按键的扫描码。观察其按下的键值所对应的扫描码是否与表4-17-1一一对应。按下核心板上的复位按键RST则停止对键盘的扫描,数码管上的扫描码不会发生改变。
六、  实验报告
1、绘出仿真波形,并作说明。
2、将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。


返回顶部 ↑

网站首页 | 关于我们 | 产品展示 | 新闻中心 | 售后服务 | 技术文章 | 产品导航 | 联系我们
相关产品: 支付宝, 百度, 点击这里给我发消息 点击这里给我发消息
友情链接: 财会模拟实验室设备 ,
邮箱:285729858@qq.com 沪ICP备16028912号-1