小梅哥和你一起深入学习FPGA之PS2键盘驱动
时间:01-28
来源:互联网
点击:
三、 硬件设计
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电路结构简单,因此这里就略去。
四、 架构设计
本实验我们进行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表示扩展按键断码。
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 我的FPGA学习历程(05-23)