PS2键盘接口模块设计文档

PS2键盘接口模块设计文档

ID:40563410

大小:70.00 KB

页数:10页

时间:2019-08-04

PS2键盘接口模块设计文档_第1页
PS2键盘接口模块设计文档_第2页
PS2键盘接口模块设计文档_第3页
PS2键盘接口模块设计文档_第4页
PS2键盘接口模块设计文档_第5页
资源描述:

《PS2键盘接口模块设计文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PS2键盘接口总体设计方案本文描述PS2键盘接口模块的功能,接口,时序和实现方案。1.功能本设计模块能够识别PS2键盘对PS2键盘产生的通码和断码进行采集,辨别和存储,然后把PS2键盘的通码转换成ASCII码,进行数据的传输并且产生中断信号。端口定义端口名输入/输出端口描述clkIn时钟,频率为2.048Mhz,占空比为50%。resetIn异步复位信号ps2_clk,InPS2键盘时钟ps2_data,InPS2键盘数据ps2key_dataOut接收到的PS2键盘对ASCII码RIOut接收完成中断

2、信号2.接口说明图1PS/2硬件接口外形图moduleps2key(sys_clk,//输入,系统时钟reset,//输入,复位端ps2_clk,//输入,PS2键盘时钟ps2_data,//输入,PS2键盘数据ps2key_data,//输出,接收到的PS2键盘对ASCII码RI//输出,接收完成中断信号);inputsys_clk;inputreset;inputps2_clk;inputps2_data;output[7:0]ps2key_data;outputRI;3.时序说明PS/2协议是一种

3、双向半双工串行通信协议,时钟信号由键盘产生,最大时钟频率为33kHz,推荐频率在15kHz。通信两端通过Clock同步,通过Data交换数据,任何一方如果想禁止另一方通信时,只需将Clock拉到低电平。其传输时序根据传输的方向不同分为发送和接收两个不同时序逻辑,图2是从键盘到主机的时序图。图2键盘发送数据时序图其中:Start:起始位,总为‘0’(低电平)Data0~Data7:8位数据位(低位在前,高位在后)Parity:奇偶校验位(为奇校验)Stop:停止位,总为‘1’(高电平)当键盘要向主机通信时

4、,键盘总是首先检查时钟线是否为高电平,如果不是则表明是主机正在通信,必须缓冲要发送的数据直到重新获得总线的控制权(键盘有16个字节的缓冲区),即等到时钟线是高电平才能发送数据。而且从键盘到主机的数据只能在时钟的下降沿时才能被读取。4.实现方案本设计采用移位寄存的方式采集PS2的串行输出数据,然后截取出有效的数据段,通常是以字节为单位。下来对有效数据段进行判别通码和断码,在接受到断码后,再对通码进行存储并且转换成ASCII码。其中断码标志位与中断信号的关系如下图:Verilog设计代码如下://-----

5、------------------------------------------------------------------------------//每个PS2键盘时钟下降沿进行处理数据//-----------------------------------------------------------------------------------regduanmaF;//断码标志位reg[3:0]cnt;//计数器reg[9:1]data_reg;//接收缓冲寄存器regstart;/

6、/起始标志reg[7:0]ps2_buf;always@(posedgesys_clkornegedgereset)beginif(!reset)//如果是复位信号begincnt<=0;data_reg<=0;start<=0;duanmaF<=0;endelsebeginif(nDone)//如果是PS2时钟的下降沿begin//先进行起始位的判断if(!start)beginif(ps2_data==0)beginstart<=1'b1;cnt<=cnt+1;end//检测起始位,如果为0则开始接

7、收数据elsebegindata_reg<=0;cnt<=0;end//否则丢弃数据end//如果正确接收到起始位elsebegincnt<=cnt+1;//计数器加1if((cnt>0)&&(cnt<10))//获取第1~9位数据,其中第9位为奇校验位beginif(ps2_data)data_reg[cnt]<=1'b1;endelseif(cnt>=10)//当计数器记到10时为停止位,既完整的一帧数据为11位beginif(^data_reg[9:1])//进行奇校验,判断数据是否接收正确beg

8、inif(data_reg[8:1]==8'b11110000)duanmaF<=1;elsebeginduanmaF<=0;ps2_buf<=data_reg[8:1];//将接受到的通码放入ascii码转换寄存器endendstart<=0;cnt<=0;data_reg<=0;endendendendend//---------------------------------------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。