您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于FPGA的标准PS-2键盘接口电路设计概要
一、引言键盘是嵌入式系统的最重要的输入设备之一,是实现人机交互的重要途径。设计者除了可以自行设计扫描式矩阵键盘之外,还可以选择标准PS/2键盘实现人机交互。扫描式矩阵键盘虽然电路简单,但不具有通用性,当需要使用较多的按键输入时,则会占用较多的I/O端口,在软件上则要进行上电复位、按键扫描及通信的处理,而且还要加上按键的去抖动处理,增大了系统软、硬件的开销,开发周期较长[1]。标准PS/2键盘由于接口通信协议简单,在系统中占用软硬件资源少,高可靠性,表达信息量大而得到了越来越广泛的应用[2]。本文根据标准PS/2键盘的通信时序,用硬件描述语言VerilogHDL设计了基于FPGA的标准PS/2键盘接口,通过本设计接口,完成把键盘按键扫描码转换成字符ASCII码过程,成功实现了标准PS/2键盘到NiosII嵌入式CPU的数据单向通信。本设计具有较好的通用性和可移植性,可取代自行设计扫描式矩阵键盘而用于嵌入式系统设计中。二、标准PS/2键盘物理接口的定义及其连接图1为标准PS/2键盘mini-DIN连接器,标准PS/2键盘是通此连接器与外设相连接,其中,第1脚为Data(数据,第5脚为Clock(时钟,第3脚接地,第4脚接电源(5伏,第2与6脚保留。因标准PS/2键盘输出脚是采用集电极开路设计,因此,标准PS/2键盘与接口相连时,输出要接一个上拉电阻方可使用,如图2所示。脚1Data脚2保留脚3接地脚4接电源脚5Clock脚6保留图1标准PS/2键盘mini-DIN连接器图2标准PS/2键盘与接口的连接三、标准PS/2键盘数据输出通信协议[3]图3为标准PS/2键盘数据输出短帧格式,当PS/2键盘要发数据时,首先要检查Clock时钟脚的电压情况,如电压为低电平,则表示主机抑制了通信,如电压为高电平,PS/2键盘获得发送数据的控制权。首先发送短帧数据格式的起始位(低电平,然后才发送数据(低位先发送,跟着发送奇校验位,最后才发送帧数据格式的停止位。当时钟为高电平时,改变数据,在时钟的下降沿时,PS/2键盘把数据锁存在Data数据线上。图3标准PS/2键盘数据输出短帧格式南宁师范高等专科学校学报2009年第3期JOURNALOFNANNINGTEACHERSCOLLEGE第26卷(总第66期基金项目:广西壮族自治区教育厅科研项目,项目编号:200808LX382。收稿日期:2009-05-10作者简介:杨秀增(1975-,男,湖南怀化人,广西民族师范学院物信系讲师,主要研究方向为嵌入式系统设计与应用;黎运宇(1974-,男,湖南张家界人,广西民族师范学院物信系助教,主要研究方向为机械电子。基于FPGA的标准PS/2键盘接口电路设计杨秀增,黎运宇(广西民族师范学院物理与信息技术系,广西龙州532400摘要:键盘是嵌入式系统的重要的输入设备,是实现人机交互的重要的手段之一,随着标准PS/2键盘技术成熟和价格不断下降,在嵌入系统的设计中,用标准PS/2键盘取代自制简易的扫描式矩阵式键盘成为可能。关键词:PS/2键盘;FPGA;VerilogHDL中图分类号:IP331.1文献标识码:A文章编号:1008-696X(200903-0129-03129··四、标准PS/2键盘扫描码现阶段的标准PS/2键盘是以第二套扫描码向外设传送信息的,扫描码有通码与断码两种类型。当键盘被按下或连续被按下时,键盘被接通,此时键盘发送通码或连续发送通码;当松开键盘的按键时,才发送断码。根据键盘按键扫描码的不同,在此可将按键分为如下几类:[4]第一类按键:通码为1字节,断码为0xF0+通码形式。如A键,其通码为0x1C,断码为0xF00x1C。第二类按键:通码为2字节0xE0+0xXX形式,断码为0xE0+0xF0+0xXX形式。如rightctrl键,其通码为0xE00x14,断码为0xE00xF00x14。第三类特殊按键有两个,printscreen键通码为0xE00x120xE00x7C,断码为0xE00xF00x7C0xE00xF00x12;pause键通码为0xE10x140x770xE10xF00x140xF00x77,断码为空。本文只利用了标准PS/2键盘的第一类按键扫描码,并且只利用了扫描码的断码。五、标准PS/2键盘接口电路的FPGA实现利用硬件描述语言,对标准PS/2键盘数据输出短帧时序进行描述,其VerilogHDL语言源代码如下:modulekeyb_module(iclk0,//输入时钟iclk,//键盘Clockidata,///键盘odata,//ASCII码数据req,//握手信号输出reset//握手信号复位输入;inputiclk,iclk0,idata;reset;outputregreq;outputreg[7∶0]odata;reg[3∶0]state;reg[7∶0]mreg;regmreg0,mrege,mregt;regmclk;wire[7∶0]modata;/****************分频**********************/reg[5∶0]cont0;always@(posedgeiclk0cont0=cont0+1;/************对时钟信号进行整形***********/always@(posedgecont0[5]if(!iclkmclk=0;elsemclk=1;/*******对输入idata信号进行采样(3次******/reg[3∶0]stat0;regm[2∶0];regmd;always@(posedgecont0[5]if(!mclkcase(stat00∶beginm[0]=idata;stat0=1;end1:beginm[1]=idata;stat0=2;end2:beginm[2]=idata;stat0=3;end3:beginif(m[0]==m[1]&&m[0]==m[2]beginmd=m[2];stat0=0;endelsestat0=0;enddefault:stat0=0;endcase/*************接收数据帧******************/always@(posedgemclkbegincase(state0:beginmreg0=idata;state=1;mrege=0;end1:beginif(!mreg0beginstate=2;mreg[0]=md;endelsestate=0;end2:beginmreg[1]=md;state=3;end3:beginmreg[2]=md;state=4;end4:beginmreg[3]=md;state=5;end5:beginmreg[4]=md;state=6;end6:beginmreg[5]=md;state=7;end7:beginmreg[6]=md;state=8;end8:beginmreg[7]=md;state=9;end9:beginmregt=md;state=10;end10:beginifmrege=md;state=0;enddefault:state=0;endcaseendassignmodata=(mrege?mreg:8'hzz;130··DesignofFPGA-basedStandardPS/2KeyboardInterfaceCircuitYANGXiu-zheng,LIYun-yu(DepartmentofPhysicsandIT,GuangxiNormalUniversityforNationalities,Longzhou,Guangxi532400,ChinaAbstract:Keyboardisthekeyinputpartinembeddedsystemandalsothekeymeanofhuman-computerinteraction.Giventheacceptabletechnologyandprice,itispossibletoreplacethescanningmatrixkeyboardwithstandardPS/2keyboard.Keywords:PS/2keyboard;FPGA;VerilogHDL(责任编辑:何明智责任校对:彭金云/***ASCII码编码,只对键盘的数字键起作用****/always@(posedgecont0[5]orposedgeresetif(resetodata=0;elseif(mregecase(modata8'h70:odata=8'h30;//08'h69:odata=8'h31;//18'h72:odata=8'h32;//28'h7A:odata=8'h33;//38'h6B:odata=8'h34;//48'h73:odata=8'h35;//58'h74:odata=8'h36;//68'h6C:odata=8'h37;//78'h75:odata=8'h38;//88'h7D:odata=8'h39;//98'h5A:odata=8'h0D;//enter8'h71:odata=8'h7F;//DEL8'h74:odata=8'h74;//右8'h75:odata=8'h75;//上8'h72:odata=8'h72;//下8'h6b:odata=8'h6b;//左8'h76:odata=8'h1B;//ECSdefault:odata=8'h00;endcase/***************握手信号******************/always@(posedgemregeorposedgeresetif(resetreq=0;elsereq=1;endmodule六、结束语键盘是嵌入式系统的重要的输入设备,是实现人机交互的重要的手段之一,随着标准PS/2键盘技术成熟和价格不断下降,在嵌入系统的设计中,用标准PS/2键盘取代自制简易的扫描式矩阵式键盘成为可能。本文介绍标准PS/2键盘物理接口的定义及其连接和数据输出通信协议,并用硬件描述语言完成了基于FPGA的标准PS/2键盘接口设计,成功实现了标准PS/2键盘主动向NiosII处理器发送ASCII码数据,具有一定的实用性。当然本接口只能实现标准PS/2键盘向NiosIICPU单向发送数据功能,NiosII处理器不对PS/2键盘进行操作。如要实现此功能,必须在接口电路中添加相应的硬件电路。参考文献:[1]张琴,向先波,徐国华.PS/2键盘在基于PIC单片机的远程多温度点巡检系统中的应用[J].机械与电子,2006(8.[2]苗新法,王秀华.PS/2键盘在嵌入式系统中的应用研究[J].兰州交通大学学报(自然科学版,2007(1.[3]徐晓,汪道辉.标准PS/2键盘与单片机的接口设计[J].中国测试技术,2005(1.[4]郑炜,须文波,胡晋.单片机系统中PS/2键盘驱动程序设计[J].单片机与嵌入式系统,2005.131··
本文标题:基于FPGA的标准PS-2键盘接口电路设计概要
链接地址:https://www.777doc.com/doc-5466117 .html