大数跨境

【玩转EGO1系列教程二】:在EGO1开发板上实现PS/2键盘

【玩转EGO1系列教程二】:在EGO1开发板上实现PS/2键盘 依元素科技
2017-11-10
2
导读:通过实验理解PS/2键盘的通信原理,通过Verilog代码的编写,完成PS/2键盘的驱动
本系列所有演示实验均出自由东南大学汤勇明教授、张圣清教授与Xilinx大学计划经理陆佳华先生所编著的教材《搭建你的数字积木·数字电路与逻辑设计(Verilog HDL&Vivado版)》。此教材为教育部Xilinx公司产学合作专业综合改革重点支持项目,并作为Xilinx公司大学计划指定教材。


本书系统论述了数字电路与逻辑设计的理论、方法与实践技术。全书基于Verilog HDL与Vivado开发环境,共18章,详尽介绍了如下内容: 逻辑设计与Vivado基础、布尔代数与Verilog HDL基础、组合逻辑电路设计基础、时序逻辑电路设计基础、有限状态机设计基础、逻辑设计工程技术基础、Vivado数字积木流程、串行通信接口控制器、RAM接口控制器、字符点阵显示模块接口控制器、VGA接口控制器、数字图像采集、数字逻辑系统设计案例、单周期CPU设计案例、数字信号处理设计案例(FIR)、数字图像处理设计案例、大学生FPGA设计案例以及Xilinx资源导读。

为便于教师和广大读者学习与动手实践,本书配套提供了教学课件、教学视频及程序代码等教学资源。本书适合作为普通高等院校电子信息类、电气信息类、自动化类专业的本科生教材,也可作为相关专业研究生参考教材,并适合作为电子与电气工程技术领域的科研工程技术人员的参考用书。


                                    实验步骤                      


实验内容


理解PS/2键盘的通信原理,通过Verilog代码的编写,完成PS/2键盘的驱动。


原理说明

PS/2通信协议是一种双向同步串行通信协议。任何一方如果想抑制另一方通信时,只需要把时钟脚拉到低电平。如果PS/2键盘发送数据,则PC必须做主机,也就是说,PC可以抑制PS/2键发送数据,而PS/2键盘则不会抑制PC发送数据。大多数PS/2设备工作频率在10~20kHz。


时序图说明:

如下图所示,通信时先发送起始位,起始位总是为逻辑0。然后是8位数据,数据低位在前,高位在后。接着是校验位,如果数据位中1的个数为偶数,校验位就为1,;如果数据位中1的个数为奇数,校验位就为0。总之,数据位中1的个数加上校验位中1的个数总是奇数,因此进行的是奇校验。

设备产生时钟和数据,主机根据时钟来读取数据。以FPGA为例,键盘产生PS/2的Clock与Data,FPGA只需读取数据。当Clock为下降沿时,FPGA记录Data的信号。需要注意的是,PS/2键盘传来的时钟与FPGA的时钟不是来自同一时钟源,因此需要对PS/2键盘的两个信号Clock和Data进行滤波处理。


实现功能


通过本实验,可将PS/2键盘的任意键值显示在数码管上。



资料下载


实验资源可以通过github下载,下载链接请点击这里。


代码说明


本实验代码包括三个verilog文件,top.v为顶层文件,ps2_keyboard.v和seg_ego1.v为底层文件,PS2.xdc为本实验的管脚约束文件,以及一个时钟分频的IP核。


实验操作


1. 本实验使用Vivado 2017.1 进行开发,开发界面如下。如果您未安装vivado,安装流程请点击这里


2. 实验RTL视图:

3. 代码综合后效果图:

4. 代码实现后的效果图:


具体vivado步骤请参看之前的微信文章,文章链接请点击这里


验证说明


将代码下载到板子后,将键盘进行一次热插拔(必须执行),然后按下键盘的任意键,数码管显示键盘按下的键值。


实验效果图




更多实验资源信息请点击“阅读原文”



我们欢迎有意向合作新工科课程改革项目的老师加入Xilinx大学计划,关于联合实验室建设、Vivado软件捐赠、校企共建课程、FPGA师资培训、学生竞赛、学生讲座等联系我们。


联系方式:edu@e-elements.com


E-Elements

FPGA我们是认真的!

【声明】内容源于网络
0
0
依元素科技
FPGA 我们是认真的
内容 510
粉丝 0
依元素科技 FPGA 我们是认真的
总阅读807
粉丝0
内容510