• 沒有找到結果。

实验一

N/A
N/A
Protected

Academic year: 2021

Share "实验一"

Copied!
16
0
0

加載中.... (立即查看全文)

全文

(1)

11

实验一

简单的 PS2 接口设计

一、实验目的:

1. 掌握 PS2 接口的工作原理。

2.掌握简单 PS2 接口设计的方法。

二、实验任务

实现简单的 PS2 接口

(2)

三、实验原理

在了解 PS2 接口的原理之前,首先需要明确接 1 、 PS2 接口连接器线关系:

PS2 接口的引脚定义如下 ( 一共接四根线,一 根接地,一根接 VCC5.0 伏,还有两根做为 键盘数据以及时钟线 )

(3)

33

22 、、 PS2PS2 接口从键盘接收数据的工作原理接口从键盘接收数据的工作原理

PCPC 键盘采用键盘采用 22 -线-线 PS/2PS/2 串行总线与主机进行串行总线与主机进行 通信,本入门实验板就属于此种情况。

通信,本入门实验板就属于此种情况。 PS/2PS/2 总线包括时钟和数据线。键盘通过识别信号的 总线包括时钟和数据线。键盘通过识别信号的

时序来驱动总线,它采用

时序来驱动总线,它采用 1111 位的字包括一个起位的字包括一个起 始位、停止位和奇检验位。依次分别为起始位 始位、停止位和奇检验位。依次分别为起始位

、八位数据位(低位在前)、奇偶校验位、停

、八位数据位(低位在前)、奇偶校验位、停 止位。止位。

(4)

简单简单 PS2PS2 接口只需实现单键接收,无需接口只需实现单键接收,无需 检测是否有组合键产生,也无需实现主机 检测是否有组合键产生,也无需实现主机

与键盘的双向通信。故我们只需从键盘读 与键盘的双向通信。故我们只需从键盘读

取相关数据即可,无需向键盘发送数据。

取相关数据即可,无需向键盘发送数据。

注:向键盘发送数据是向键盘发送控制信注:向键盘发送数据是向键盘发送控制信 号,比如点亮键盘三盏指示灯。

号,比如点亮键盘三盏指示灯。

(5)

55

下图说明了

下图说明了 PS/2PS/2 总线的时序。只有当数总线的时序。只有当数 据转换发生时,时钟和数据信号才被驱 据转换发生时,时钟和数据信号才被驱 动,否则,它们以高电平的形式处于空 动,否则,它们以高电平的形式处于空

闲状态,时序定义了键盘与主机的通信。

闲状态,时序定义了键盘与主机的通信。

当时钟信号是高电平时,敲击键盘就会 当时钟信号是高电平时,敲击键盘就会

往数据线写

往数据线写 11 位字,在时钟低电平时,位字,在时钟低电平时,

主机主机 PCPC 读该数据线。读该数据线。

(6)

如上图所示,要读取键盘发送的数据,主机 只需在时钟的下降沿读取数据,并且连续读 取 11 次即可。

(7)

77

3 3 、 、 verilog verilog 实现 实现 可以用一个

可以用一个 FIFO FIFO 在实现监测时钟线下降沿 在实现监测时钟线下降沿 的功能: 的功能:

always @(posedge clk)

ps2_clkr <= {ps2_clkr[1:0], ps2_clk};

wire ps2_clk_risingedge=(ps2_clkr[2:1]==2'b01);

wire ps2_clk_fallingedge=(ps2_clkr[2:1]==2'b10);

(8)

在监测到一个下降沿时,连续读取

在监测到一个下降沿时,连续读取 1111 次数据线,次数据线,

实现从键盘接收按键扫描码的功能:

实现从键盘接收按键扫描码的功能:

always @(posedge clk) if(rst)

i <= 0;

else begin

if(ps2_clk_fallingedge) begin data2[i] <= data[i];

data[i] <= ps2_data;

if(i<10)

i <= i+1;

else i <= 0;

end end

(9)

99

4 4 、如何区分键盘是按下何健 、如何区分键盘是按下何健

键盘的处理器花费很多的时间来扫描或监视按 键盘的处理器花费很多的时间来扫描或监视按

键矩阵,如果它发现有键被按下释放或按 键矩阵,如果它发现有键被按下释放或按

住键盘将发送扫描码的信息包到计算机。

住键盘将发送扫描码的信息包到计算机。

扫描码有两种不同的类型通码和断码:当一个 扫描码有两种不同的类型通码和断码:当一个

键被按下或按住就发送通码,当一个键被 键被按下或按住就发送通码,当一个键被

释放就发送断码。每个按键被分配了唯一 释放就发送断码。每个按键被分配了唯一

的通码和断码这样主机通过查找唯一的扫 的通码和断码这样主机通过查找唯一的扫

描码就可以测定是哪个按键。

描码就可以测定是哪个按键。

每个键一整套的通断码组成了扫描码集,该集 每个键一整套的通断码组成了扫描码集,该集

即用来通过通断码查询所按是何健。

即用来通过通断码查询所按是何健。

(10)

以下为第二套扫描码集通码和断码示例:

以下为第二套扫描码集通码和断码示例:

比如键盘按下’

比如键盘按下’ A’A’ 键,则主机先后收到键,则主机先后收到 1C1C

F0F0 1C1C 三个数据包三个数据包

(11)

1111

55 、现代键盘扫描码集、现代键盘扫描码集

(12)

注意:在创建工程时,

注意:在创建工程时, spartan-3espartan-3e 板与板与 spsp artan-3

artan-3 开发板不一样,配置单如下:开发板不一样,配置单如下:

(13)

1313

另外,再将综合结果下载到实验板上验证实 另外,再将综合结果下载到实验板上验证实 现设计时,可能会发生不成功的情况,可 现设计时,可能会发生不成功的情况,可 右键单击右键单击 xilinxxilinx ProcessesProcesses 面板中的面板中的 GenGen

erate Programming File

erate Programming File ,对属性,对属性 PropertiePropertie ss 中作如下修改:中作如下修改:

(14)

实验内容实验内容

实现实现 SPARTAN3ESPARTAN3E 实验板对键盘单键输入的实验板对键盘单键输入的 接收接收 , , 并将接收到的键盘扫描码用并将接收到的键盘扫描码用 88 ledled

灯显示输出 灯显示输出 ..

:: 扫描码可参照实验原理扫描码可参照实验原理 (( 课本课本 P63)P63)

(15)

1515

UCFUCF 声明声明

// // 键盘输出时钟与数据线键盘输出时钟与数据线

NET “ps2_clk” LOC=“G14”;NET “ps2_clk” LOC=“G14”;

NET “ps2_data” LOC=“G13”;NET “ps2_data” LOC=“G13”;

//// 主板时钟与复位键主板时钟与复位键

NET “clk” LOC=“C9”;NET “clk” LOC=“C9”;

NET “rst” LOC=“K17”;NET “rst” LOC=“K17”;

(16)

UCFUCF 声明声明

//Led

//Led 显示通码数据显示通码数据

NET”data2[1]” LOC=“F12”;NET”data2[1]” LOC=“F12”;

NET”data2[2]” LOC=“E12”;NET”data2[2]” LOC=“E12”;

NET”data2[3]” LOC=“E11”;NET”data2[3]” LOC=“E11”;

NET”data2[4]” LOC=“F11”;NET”data2[4]” LOC=“F11”;

NET”data2[5]” LOC=“C11”;NET”data2[5]” LOC=“C11”;

NET”data2[6]” LOC=“D11”;NET”data2[6]” LOC=“D11”;

NET”data2[7]” LOC=“E9”;NET”data2[7]” LOC=“E9”;

NET”data2[8]” LOC=“F9”;NET”data2[8]” LOC=“F9”;

參考文獻

相關文件

再以后,两个人频繁地约会,她发现他实际上是一个很好的男人,大度、细

各个几何命题是否“真实”的问题就归结为公理是否“真实”的问题。可是人们

 先至APP STORE 下載YoTube APP.. 2.3.3

内蒙古大草原沙化退化,自然因素也好,人为因素也罢,最

是偏振光。 光的偏振现象应用很广,如汽车夜间行车时,为了避免 对方汽车的灯光晃眼以保证行车安全,可以在所有汽车的车窗玻 璃和车灯前装上与水平方向成

Thomson)也 完成了 电子衍射实验 。 他是在 德布 罗意 理论 的启发下进 行实

在地图上查找上海到乌鲁木齐的铁路。 请根据地图上的比 例尺,估算一下 ,坐火车 从上海到乌鲁 木齐的位移和 经过的 路程

图1-46  果实和种子的形成 胚珠 → 种子 子房 → 果实 子房壁 →