基于FPGA的键盘接口设计正文

合集下载

基于FPGA多功能键盘显示控制器的设计与研究

基于FPGA多功能键盘显示控制器的设计与研究

基于FPGA多功能键盘显示控制器的设计与研究引言FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,被广泛应用于数字电路设计。

多功能键盘显示控制器是一种可以实现多种功能的键盘,通过FPGA来实现控制和显示功能的设计与研究是目前的热点之一、本文将介绍基于FPGA的多功能键盘显示控制器的设计原理、功能和性能。

一、设计原理多功能键盘显示控制器的设计原理主要包括两个方面,即键盘控制和显示控制。

键盘控制主要是指通过按键输入来实现功能的切换和控制,而显示控制则是指通过控制显示屏来显示相应的信息。

在FPGA中设计键盘控制功能的原理是将键盘的每一个按键与FPGA内部的一个输入端口相连,然后通过FPGA的逻辑电路进行处理,将按键输入转化为相应的控制信号。

具体的实现方法可以采用状态机的设计思路,通过对按键输入的状态进行判断,确定相应的功能和控制信号。

显示控制的原理是将FPGA的输出端口与显示屏的输入端口相连,然后通过FPGA内部的逻辑电路将控制信号转化为对显示屏的输出信号,从而实现信息的显示。

通常情况下,可以使用七段数码管或者LCD屏来实现信息的显示。

二、功能设计多功能键盘显示控制器的功能设计可以根据实际需求进行扩展。

一般而言,它应该包括以下基本功能:1.多键切换功能:通过按键输入来实现多种功能的切换,可以根据用户的需求进行自定义设置。

2.多种显示方式:可以支持不同的显示方式,例如数码管显示、LCD显示等。

3.显示内容自定义:可以根据用户的需要自定义显示内容,例如显示时间、温度、电压等信息。

4.LED指示功能:通过LED灯来指示当前的工作状态,例如电源状态、工作模式等。

5.反馈功能:在按键输入或者功能切换时可以通过蜂鸣器或者震动马达来给用户一个反馈。

三、性能分析多功能键盘显示控制器的性能分析主要包括以下几个方面:1.响应速度:控制器对按键输入的响应速度应尽可能快,可以通过优化逻辑电路的设计来提高响应速度。

基于FPGA的4x4键盘接口设计

基于FPGA的4x4键盘接口设计

library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity smxh isport(clk: in std_logic;q_out: out std_logic_vector(1 downto 0);sm_out: out std_logic_vector(3 downto 0));end entity smxh;architecture art of smxh issignal sm_s: std_logic_vector(3 downto 0);signal q_s: std_logic_vector(1 downto 0);beginprocess(clk)isbeginif(clk'event and clk='1')thenif(q_s="11")thenq_s<="00";elseq_s<=q_s+1;end if;end if;end process;process(q_s)isbegincase q_s iswhen "00"=>sm_s<="0001"; ---------输出扫描信号为0001when "01"=>sm_s<="0010"; ---------输出扫描信号为0010when "10"=>sm_s<="0100"; ---------输出扫描信号为0100when "11"=>sm_s<="1000"; ----------输出扫描信号为1000when others=>sm_s<="1111";end case;end process;sm_out<=sm_s;q_out<=q_s;end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ymdl isport(clk: in std_logic;sm_in: in std_logic_vector(1 downto 0);jm_in: in std_logic_vector(3 downto 0);ym_out: out std_logic_vector(3 downto 0));end entity ymdl;architecture art of ymdl issignal jm_s: std_logic_vector(5 downto 0);signal ym_s: std_logic_vector(3 downto 0);beginprocess(clk)isbeginjm_s<=sm_in & jm_in;if(clk'event and clk='1')thencase jm_s iswhen "000001"=>ym_s<="0001"; ------译码值1when "000010"=>ym_s<="0010"; ------译码值2when "000100"=>ym_s<="0011"; ------译码值3when "010001"=>ym_s<="0100"; ------译码值4when "010010"=>ym_s<="0101"; ------译码值5when "010100"=>ym_s<="0110"; ------译码值6when "100001"=>ym_s<="0111"; ------译码值7when "100010"=>ym_s<="1000"; ------译码值8when "100100"=>ym_s<="1001"; ------译码值9when "110001"=>ym_s<="0000"; ------译码值0when others=>ym_s<="XXXX";end case;end if;end process;ym_out<=ym_s;end architecture art;3.2.5 键盘扫描程序的顶层文件设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity smgxs isport(ym_in: in std_logic_vector(3 downto 0);com0: out std_logic;qout8: out std_logic_vector(7 downto 0));end entity smgxs;architecture art of smgxs issignal qout8_s: std_logic_vector(7 downto 0);beginprocess(ym_in)isbegincase ym_in iswhen "0000"=>qout8_s<="11000000";----0when "0001"=>qout8_s<="11111001";----1when "0010"=>qout8_s<="10100100";----2when "0011"=>qout8_s<="10110000";----3when "0100"=>qout8_s<="10011001";----4when "0101"=>qout8_s<="10010010";----5when "0110"=>qout8_s<="10000010";----6when "0111"=>qout8_s<="11111000";----7when "1000"=>qout8_s<="10000000";----8when "1001"=>qout8_s<="10010000";----9when others=>qout8_s<="11111111";end case;end process;qout8<=qout8_s;com0<='1';end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity smsz isGeneric(n:integer:=20);port(clk: in std_logic;ym_clk: out std_logic;xd_clk: out std_logic);end entity smsz;architecture art of smsz isSIGNAL cnt: std_logic_vector( n-1 downto 0);beginprocess(clk)isbeginif(clk'event and clk='1')then -----------上升沿IF(CLKin'EVENT AND clkin='1' ) THENCnt<=cnt+1;End if;End process;ym_clk<=cnt(17);xd_clk<=cnt(19);end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity ymdl isport(clk: in std_logic;sm_in: in std_logic_vector(1 downto 0);jm_in: in std_logic_vector(3 downto 0);ym_out: out std_logic_vector(3 downto 0));end entity ymdl;architecture art of ymdl issignal jm_s: std_logic_vector(5 downto 0);signal ym_s: std_logic_vector(3 downto 0);beginprocess(clk)isbeginjm_s<=sm_in & jm_in;if(clk'event and clk='1')thencase jm_s iswhen "000001"=>ym_s<="0001"; ------译码值1when "000010"=>ym_s<="0010"; ------译码值2when "000100"=>ym_s<="0011"; ------译码值3when "010001"=>ym_s<="0100"; ------译码值4when "010010"=>ym_s<="0101"; ------译码值5when "010100"=>ym_s<="0110"; ------译码值6when "100001"=>ym_s<="0111"; ------译码值7when "100010"=>ym_s<="1000"; ------译码值8when "100100"=>ym_s<="1001"; ------译码值9when "110001"=>ym_s<="0000"; ------译码值0when "001000"=>ym_s<="1010"; ------译码值Awhen "011000"=>ym_s<="1011"; ------译码值Bwhen "101000"=>ym_s<="1100"; ------译码值Cwhen "111000"=>ym_s<="1101"; ------译码值Dwhen "110100"=>ym_s<="1110"; ------译码值Ewhen "110010"=>ym_s<="1111"; -------译码值Fwhen others=>null;end case;end if;end process;ym_out<=ym_s;end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity smgxs isport(ym_in: in std_logic_vector(3 downto 0);com0: out std_logic;com1: out std_logic;qout8: out std_logic_vector(7 downto 0));end entity smgxs;architecture art of smgxs issignal qout8_s: std_logic_vector(7 downto 0);beginprocess(ym_in)isbegincase ym_in iswhen "0000"=>qout8_s<="11000000";----0when "0001"=>qout8_s<="11111001";----1when "0010"=>qout8_s<="10100100";----2when "0011"=>qout8_s<="10110000";----3when "0100"=>qout8_s<="10011001";----4when "0101"=>qout8_s<="10010010";----5when "0110"=>qout8_s<="10000010";----6when "0111"=>qout8_s<="11111000";----7when "1000"=>qout8_s<="10000000";----8when "1001"=>qout8_s<="10010000";----9when "1010"=>qout8_s<="10001000";----Awhen "1011"=>qout8_s<="10000000";----Bwhen "1100"=>qout8_s<="11000110";----Cwhen "1101"=>qout8_s<="11000000";----Dwhen "1110"=>qout8_s<="10000110";----Ewhen "1111"=>qout8_s<="10001110";----Fwhen others=>qout8_s<="11111111";end case;end process;qout8<=qout8_s;com0<='1';com1<=”0”;end architecture art;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity smxh isport(clk,reset: in std_logic;sm_out: out std_logic_vector(3 downto 0)); end entity smxh;architecture art of smxh issignal sm_s: std_logic_vector(3 downto 0);beginprocess(clk,reset)isbeginif reset=’0’;sm_s<=”0001”;elsif (clk'event and clk='1') thensm_out<=sm_s;case sm_s iswhen "0001"=> sm_s <="0010";-when "0010"=> sm_s <="0100";-when "0100"=> sm_s <="1000";-when "1000"=> sm_s <="0001";-when others=> sm_s <="0001";end case;end if;end process;end architecture art;7。

基于FPGA的矩阵键盘接口电路的设计

基于FPGA的矩阵键盘接口电路的设计

目录目录------------------------------------------------------------------------------------------------ 1 1.绪论--------------------------------------------------------------------------------------------- 3 1.1 FPGA概况----------------------------------------------------------------------------------- 3 1.2 本课题的研究意义 ----------------------------------------------------------------------- 41.3 本章小结------------------------------------------------------------------------------------ 42. VHDL语言 ------------------------------------------------------------------------------------ 5 2.1 VHDL语言概述----------------------------------------------------------------------------- 5 2.2 VHDL语言的优点-------------------------------------------------------------------------- 6 2.3 利用VHDL语言设计数字系统的特点------------------------------------------------- 8 2.4 VHDL语言的基本结构-------------------------------------------------------------------- 92.5本章小结 ------------------------------------------------------------------------------------ 93.矩阵键盘接口电路原理和数码管显示原理 ------------------------------------------- 10 3.1矩阵键盘接口电路的原理 -------------------------------------------------------------- 10 3.2数码管显示原理 -------------------------------------------------------------------------- 123.3本章小结 ----------------------------------------------------------------------------------- 124.总体设计和各模块设计 ------------------------------------------------------------------- 13 4.1时钟产生模块 ----------------------------------------------------------------------------- 134.2键盘扫描模块 ----------------------------------------------------------------------------- 13 4.3数码管显示模块 -------------------------------------------------------------------------- 14 4.4顶层电路实现 ----------------------------------------------------------------------------- 14 4.5本章小结 ----------------------------------------------------------------------------------- 14 附录1:总体设计电路原理图:------------------------------------------------------------- 15附录2:硬件实物图 -------------------------------------------------------------------------- 15附录3:EP1C3T144C8N的PCB电路图 ---------------------------------------------------- 16附录4:顶层电路实现的具体程序 -------------------------------------------------------- 16附录5:时钟产生模块实现的具体程序 -------------------------------------------------- 17附录6:键盘扫描模块实现的具体程序 -------------------------------------------------- 18附录7:数码管显示模块实现的具体程序 ----------------------------------------------- 245.心得体会-------------------------------------------------------------------------------------- 261.绪论1.1 FPGA概况早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM)三种。

PS2键盘接口设计

PS2键盘接口设计

研究生课程设计报告课程名称:基于FPGA的现代数字系统设计设计名称: PS/2键盘接口设计姓名:学号:课程教师:起止日期: 2016,西南科技大学信息工程学院制设计任务书学生班级:学生姓名:学号:设计名称:PS/2键盘接口设计起止日期: 2016,12,21至2016,12,28 课程教师:设计题目一、设计目的和意义键盘是嵌入式系统的最重要的输入设备之一,是实现人机交互的重要途径。

除了可以自行设计扫描式矩阵键盘之外,还可以选择标准 PS/2键盘实现人机交互。

扫描式矩阵键盘虽然电路简单,但不具有通用性,当需要使用较多的按键输入时,则会占用较多的I/O 端口,在软件上则要进行上电复位、按键扫描及通信的处理,而且还要加上按键的去抖动处理,增大了系统软、硬件的开销,开发周期较长。

标准PS/2 键盘由于接口通信协议简单,在系统中占用软硬件资源少,高可靠性,表达信息量大而得到了越来越广泛的应用本设计根据PS/2键盘的通信时序,利用Verilog HDL硬件描述语言来设计PS/2接口键盘的输入识别电路,并在CPLD/FPGA上实现,避免了硬件电路的焊接与测试。

Verilog HDL语言满足数字系统设计和综合的所有要求,设计中充分运用Verilog HDL层次化与模块化的思想,使整个设计过程简单、灵活。

同时运用EDA工具ISE Design Suite10.1验证设计。

经过对系统进行编译、仿真、测试,完成把键盘按键扫描码转的通码的显示,成功实现PS/2接口键盘的输入识别及显示的功能。

本设计具有较好的通用性和可移植性,可取代自行设计扫描式矩阵键盘而用于许多嵌入式系统设计中。

二、设计原理1 PS/2模块1.1、SP/2键盘接口PS/2通信协议是一种双向同步串行通迅协议。

通迅的两端通过CLOCK(时钟信号端)同步,并通过DATA(数据端口)交换数据。

任何一方如果想要抑制另外一方的通迅时,只需要把CLOCK 拉到低电平。

基于FPGA的RS232行列式矩阵键盘接口设计

基于FPGA的RS232行列式矩阵键盘接口设计

基于FPGA的RS232行列式矩阵键盘接口设计
一、引言
本方案是用VHDL 语言来实现的基于RS232 按位串行通信总线的行列式矩
阵键盘接口电路,具有复位和串行数据的接收与发送功能,根据发光二极管
led0-led2 的显示状态可判断芯片的工作情况;实现所有电路功能的程序均是在美国ALTERA 公司生产的具有现场可编程功能的芯片EPM7128SLC84-15 上调试通过的。

能通过动态扫描来判有键按下、将键值转换成对应的ASCII 码值,在时钟脉冲的作用实现串行数据的接收与发送。

二、设计方案
1.芯片引脚定义
reset 复位输入端;clk 时钟输入端;rxd 串行数据接收端;retn0-retn7 键盘扫描行输入线;txd 串行数据发送端;scan0-scan7 键盘扫描列输出线;led0-led2 显示输出端。

2.键盘与芯片的连接图(如图2 所示,为8×8的64 键键盘)
3.动态扫描原理
(1)依次使列线scan0-scan7 输出0 电平,检查行线retn0-retn7 的电平状态。

如果行线retn0-retn7 的电平全为高电平,表示没键按下。

如果retn0-retn7 上的电平不全为高电平,表示有键按下。

(2)如果没键按下,就返回扫描。

有键按下则进行逐行扫描,找出闭合键的键。

基于FPGA的标准PS_2键盘接口电路设计概要

基于FPGA的标准PS_2键盘接口电路设计概要

一、引言键盘是嵌入式系统的最重要的输入设备之一,是实现人机交互的重要途径。

设计者除了可以自行设计扫描式矩阵键盘之外,还可以选择标准PS/2键盘实现人机交互。

扫描式矩阵键盘虽然电路简单,但不具有通用性,当需要使用较多的按键输入时,则会占用较多的I /O 端口,在软件上则要进行上电复位、按键扫描及通信的处理,而且还要加上按键的去抖动处理,增大了系统软、硬件的开销,开发周期较长[1]。

标准PS /2键盘由于接口通信协议简单,在系统中占用软硬件资源少,高可靠性,表达信息量大而得到了越来越广泛的应用[2]。

本文根据标准PS/2键盘的通信时序,用硬件描述语言Verilog HDL 设计了基于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键盘获得发送数据的控制权。

首先发送短帧数据格式的起始位(低电平,然后才发送数据(低位先发送,跟着发送奇校验位,最后才发送帧数据格式的停止位。

基于FPGA的新型键盘_显示电路设计

基于FPGA的新型键盘_显示电路设计

基金项目:“八六三”计划资助项目(2002AA424054)收稿日期:2004-05-10 收修改稿日期:2004-10-02基于FPGA 的新型键盘、显示电路设计刘敬猛,王田苗,魏洪兴,王 伟(北京航空航天大学机器人研究所,北京 100083) 摘要:介绍一种基于FPG A 的键盘和显示电路的设计和实现。

利用FPG A 实现复杂时序的功能,同时结合使用串行输入/并行输出移位寄存器,设计了6位LE D 的动态显示和6个按键开关的键盘电路。

电路结构简单、便于扩展、可靠性高、易实现。

该电路已成功应用于研究的交流伺服系统中。

关键词:FPG A ;移位寄存器;动态显示中图分类号:TH703 文献标识码:B 文章编号:1002-1841(2005)03-0043-03Circuit Design of K eyboard and Display B ased on FPGA LIU Jing 2meng ,WANG Tian 2miao ,WEI H ong 2xing ,WANG Wei(R obotics Institute ,Beihang University of Aeronautics and Astronautics ,Beijing 100083,China )Abstract :Presented the design and realization of keyboard and display circuit.S ix LE D dynamic display and six keys keyboard cir 2cuit have been designed ,which uses the complex scheduling function of FPG A combined with the serial input/parallel output shift regis 2ters.The circuit possesses the characteristics such as simple structure ,high reliability ,and it is convenient to extend and easy to realize.This circuit has been success fully applied to AC serv o system.K ey Words :FPG A ;Shift Register ;Dynamic Display1 引言键盘分为编码键盘和非编码键盘[1]。

基于FPGA的PS2键盘控制设计及仿真实现

基于FPGA的PS2键盘控制设计及仿真实现

本科毕业论文(设计)论文题目:基于FPGA的PS2键盘控制设计及仿真实现作者声明本毕业论文(设计)是在导师的指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。

对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

因本毕业论文(设计)引起的法律结果完全由本人承担。

特此声明作者专业:通信工程作者学号:作者签名:年月日基于FPGA的PS2键盘控制设计及仿真实现The Design and Simulation Implementation of the PS2 Keyboard Control based on FPGA2013年5月10日摘要本文简述了PS2键盘的特点和工作原理,重点介绍了在FPGA 上实现PS2键盘的结构设计和VHDL代码设计。

PS2键盘具有价格低、通用可靠,且连接线少(仅使用2根信号线)的特点。

并可满足多种系统的要求。

FPGA(Field Programmable Gate Array)是一类高集成度的可编程逻辑器件,它结合EDA技术以硬件描述语言、电路原理图、状机等形式输入设计逻辑;并提供功能模拟、时序仿真等模拟手段,再经过一系列的变换,将输入逻辑转换成FPGA器件所需的编程文件,以实现专用集成电路ASIC。

应用FPGA设计PS2键盘控制器,不仅有硬件电路简单,更具灵活性,集成度高更容易移植等特点,更重要的是现代EDA(电子设计自动化)技术提供了一种很好的途径,利用VHDL硬件描述语言和FPGA器件可以很方便地构建键盘扫描模块。

设计使得使用VHDL语言基于FPGA芯片实现PS2键盘成为研究的方向。

本文对基于VHDL的PS2键盘实现进行了研究,并设计了PS2键盘。

所做的主要工作为:(1)以PS2键盘控制的基本理论为依据,对其进行了详细的讨论。

(2)本设计中采用了自上而下的层次化、模块化的设计思想,将整个接口划分为多个模块,同时利用VHDL语言的描述方法对各个功能模块进行了设计,最终完成了PS2键盘的系统设计。

基于fpga的无线加密键盘的设计与实现

基于fpga的无线加密键盘的设计与实现

摘 要无线通讯技术的发展,无疑是计算机通信领域中的一次跨时代突破。

对于计算机最常用的外部设备之一键盘来说,无线键盘的设计与研发,不仅使计算机免去了接线的麻烦,外观更加精美,更最重要的是节约了计算机有限的接口资源。

但是,相比有线通讯技术来说,无线技术的缺点也很明显,即传输中的数据的安全性得不到保障。

本文提出了一种无线加密键盘的设计思路及方法。

数据发送端,采用FPGA作为主控制器控制键盘端数据的接收、加密以及与蓝牙收发模块进行密文数据的通信;数据接收端,蓝牙接收模块将密文数据进行接收后交给计算机CPU,设计者通过为PC编写应用程序,完成键盘端数据的无线接收以及密文数据的解密工作。

DES算法是一种应用比较成熟的加密算法,到目前为止,只能通过穷举法对其进行解密。

然而,对于键盘信息的无线传输而言,采用穷举法来破解密码是不现实的。

除此之外,DES算法也是一种对称加密算法,这一特性便于对其进行硬件实现。

因此,本设计采用DES加密算法,利用FPGA作为DES算法的硬件实现平台,采用VHDL 作为主要设计语言并利用QuartusⅡ软件对其进行了仿真验证,最终,验证了各模块设计思路的正确性。

无线加密键盘的提出,不仅是对现有无线键盘的设计领域进行了研究。

同时对于减少无线键盘的设计成本、提高键盘无线数据通信过程的安全也进行了尝试。

关键词:加密算法;可编程逻辑器件;键盘;蓝牙;无线AbstractThe development of wireless communication technology, is undoubtedly a great breakthrough in the field of computer communication. Keyboard as one of the most commonly used external equipment of the computer, researching and designing the wireless keyboard, not only makes the computer out of bother wiring, but also makes the appearance of it more delicate, most importantly it can save the limited resources interface of the computer. However, compared to the wire communication technology, the obvious disadvantages of the wireless technology is that the security of the transmission data can not been guaranteed.This paper proposes one thought and method of how to design a wireless encryption keyboard. For the sender module, using one FPGA as the main controller to control receiving and encryption data which comes from the keyboard , then send the cipher to the wireless transceiver module by bluethooth sender module; for the receiving module , bluetooth receiver module receive the cipher and send the cipher data to the computer CPU, designers through writing applications program for PC, complete the decryption operation of the cipher.DES algorithm is a mature encryption algorithm, so far, it can only been decryption by the exhaustive method. However, for the wireless transmission of the keyboard information, using the exhaustion method to crack the password is not realistic. In addition, the DES algorithm is a kind of symmetric encryption algorithm, so it can been realized conveniently by the hardware. Therefore, in this paper, using DES as the core encryption algorithm , using FPGA as the hardware implementation platform for the DES algorithm, using VHDL language as the main design language and QuartusⅡsoftware as the simulation and validation. in the end, each module is proved to be correct.The propose of the wireless encryption Keyboard, not only is an in-depth study of the existing wireless keyboard, it can also enrich the blank field of the wireless keyboard, reduce the cost of the design and enhance the safety of the data communication in the wireless keyboard field is a beneficial attempt.Key Words:Encryption algorithm; PLD; Key board; Bluetooth;wireless目 录摘要 (I)Abstract..................................................................................................................................... I I 目录 (1)第1章引言 (1)1.1课题研究背景 (1)1.1.1信息安全领域 (1)1.1.2无线通信领域 (1)1.2课题的研究意义 (2)1.3国内外研究现状 (2)1.4本论文研究内容安排 (3)第2章算法选择及开发环境介绍 (4)2.1算法选择 (4)2.1.1密码学概述 (4)2.1.2加密算法综述 (4)2.1.3算法选择 (5)2.2计算机键盘的工作原理 (6)2.2.1键盘发展 (6)2.2.2键盘工作原理 (7)2.3系统开发环境介绍 (8)2.3.1可编程逻辑器件 (8)2.3.2 FPGA设计流程 (9)2.3.3 FPGA的常用开发工具 (10)2.4FPGA的设计优势 (10)2.5本章小结 (11)第3章系统方案设计 (12)3.1方案总体设计 (12)3.2硬件开发平台 (12)3.3系统硬件设计 (13)3.3.1 PS/2 接口通信 (13)3.3.2 USB 接口通信 (17)3.3.3蓝牙模块选择 (18)3.4系统软件设计 (21)3.4.1 键盘发送端软件设计 (21)3.4.2 PC机接收端软件设计 (22)3.5本章小结 (23)第4章算法的设计与优化 (24)4.1算法分析 (24)4.1.1算法综述 (24)4.1.2初始置换IP (25)4.1.3 Feistel网络 (26)4.1.4 IP-1处理 (33)4.2算法的设计及FPGA实现 (34)4.2.1 算法整体设计分析 (34)4.2.2 算法各模块实现 (35)4.3算法整体实现 (41)4.3.1状态机设计 (41)4.3.2流水线设计 (42)4.3.3顶层实现 (42)4.3.4 仿真结果 (44)4.4本章小结 (45)第5章总结与展望 (46)参考文献 (47)攻读学位期间的研究成果 (I)致谢.................................................................................................................................... I I第1章 引言1.1课题研究背景1.1.1信息安全领域进入21世纪后,伴随计算机通信技术的迅猛发展及PC机的广泛使用,互联网技术进入到了前所未有的快速发展时期。

基于FPGA的键盘扫描程序的设计

基于FPGA的键盘扫描程序的设计

X X学院CHANGSHA UNIVERSITY 本科生毕业设计XX学院教务处二○一一年二月制(20 13 届)本科生毕业设计说明书基于FPGA的键盘扫描程序的设计2013 年 6 月摘要在现代电子工业的控制电路中,键盘扫描和显示电路对系统的调试和设置有着重要的作用。

随着EDA技术的发展,基于FPGA的扫描键盘因其结构简单,能有效防止机械键盘按键抖动带来的数据错误等优点在许多电子设备中都得到了广泛的应用。

本文主要是设计一个基于FPGA的键盘扫描程序,该设计在EDA工具Quarutus II9.0上开发完成,以Creat-SOPC2000实验箱上的4*4矩阵键盘为硬件实体,设计键盘扫描程序,将程序划分为时序产生模块、键盘扫描模块、弹跳消除模块、键值译码模块四个模块,时序产生模块为键盘扫描和弹跳消除模块产生时钟信号,键盘扫描模块采用行扫描法对4*4矩阵键盘进行扫描,键值译码模块将所按键值译码为共阳极8位7段数码管的显示码,几个模块组合起来实现键盘扫描的设计要求。

最后对程序进行仿真分析和硬件验证。

仿真结果表明,该系统具有集成度高、稳定性好、设计灵活和设计效率高等优点。

关键词: FPGA,Quartus II,VHDL,键盘扫描ABSTRACTIn the modern electronics industry controlling-circuit, the keyboard scanning and display circuit plays an important role in debugging and setting the system. With the development of EDA technology, FPGA-based scanning keyboard have been widely used in many electronic devices because of its simple structure, and it also can effectively prevent mechanical keyboard jitter caused by data errors.This article primarily designed an FPGA-based keyboard scan procedures, this design is developed on the EDA tools—— Quarutus II9.0 and designed the keyboard scan program, using the Creat-SOPC2000 experimental box 4 * 4 matrix keyboard as the hardware entity .the program is divided into four modules as the timing generation module, a keyboard scanning module, bounce cancellation module and the decoding module. The timing generation module generates the clock signal for the keyboard scanning and bounce elimination module, the keyboard scanning module using the line scanning method to sweep the 4* 4 matrix keyboard, key decoder module decodes the key value for the common anode eight 7-segment display code. Several modules assembles together to meet the keyboard scanning design requirements. Finally, conducting simulation analysis by the program and verifying the hardware.Simulation results show that the system has many advantages such as high integration, good stability, high efficiency, flexible design and high design efficiency.Keywords: FPGA,Quartus II,VHDL,keyboard scanning目录摘要 (I)ABSTRACT .......................................................................................................... I I 第1章绪论 (1)1.1 课题的研究背景 (1)1.2 课题的研究意义 (2)1.3 本文的主要工作 (2)第2章FPGA开发工具简介 (3)2.1 FPGA概述 (3)2.2 VHDL语言以及Quartus II应用 (3)2.3 本章小结 (4)第3章基于FPGA的键盘扫描程序的设计 (3)3.1 键盘扫描程序的总体电路设计 (5)3.1.1 矩阵式键盘扫描的工作原理 (6)3.1.2 数码管的显示原理 (7)3.2 键盘扫描电路各主要功能模块的设计 (8)3.2.1 时序产生模块 (8)3.2.2 键盘扫描模块 (9)3.2.3 弹跳消除模块 (11)3.2.4 键盘译码电路 (13)3.2.5 键盘扫描程序的顶层文件设计 (15)3.3本章小结 (16)第4章键盘扫描程序的波形仿真及硬件验证 (17)4.1 系统仿真 (17)4.1.1 消抖电路仿真 (17)4.1.2 键盘时钟信号仿真 (18)4.1.3 键盘扫描信号仿真 (18)4.1.4 键盘译码电路仿真 (19)4.1.5 键盘扫描总体电路仿真 (21)4.2引脚的锁定 (22)4.3硬件验证 (23)4.4本章小结 (25)结论 (26)参考文献 (27)附录 (28)致谢 (32)第1章绪论1.1 课题的研究背景在现代计算机与电子系统中,一般都采用通用式的标准键盘将所需的数据和指令等信息通过键盘输入到计算机和电子系统,以此来实现人机之间的接口交互。

基于FPGA的PS键盘接口设计

基于FPGA的PS键盘接口设计

基于FPGA的PS/2键盘接口的设计The design of PS/2 keyboard interface based on FPGA Wei,Junhui W ang ,Fuyuan Zhou, Ziang Hou,WeiyanAbstract:PS/2 keyboard is a general input of compute system. It can be easily equipped with various embedded systems. This paper describ es a new method to design PS/2 interface with FPGA. The result indi cates that the design has the features of easy modularization and powerful transplantable capability.Keywords: PS/2 interface; embedded system ; FPGA;摘要:PS/2键盘是一种常用的计算机输入设备,只需稍加改动,便可很方便的应用在各种嵌入式系统中。

本文提出了一种利用FPGA来设计PS/2接口的方法,结果表明此方法有容易实现模块化和移植性强的特点。

关键词:PS/2接口;嵌入式系统;FPGA键盘作为嵌入式系统的一种最常用人机接口设备,在嵌入式系统中有着相当广泛的应用。

但开发者一般均采用自行设计的简易矩阵键盘,这类键盘仅仅是按行、列排列起来的矩阵开关,往往需要单独设计并制作,通用性不强。

当需要较多的按键时,则会占用较多的I/O端口,在软件上则要进行上电复位按键扫描及通信处理,而且还要加上按键的去抖动处理,增大了系统的软硬件开销。

而PS/2键盘,内嵌自动去除按键抖动的设计,自动地识别键的按下与释放,软硬件可发简便,价格便宜,稳定可靠,将PS/2键盘作为嵌入式系统的输入设备已经成为可行的方案。

基于FPGA的数码显示和键盘扫描的电路设计

基于FPGA的数码显示和键盘扫描的电路设计

文档从互联网中收集,已重新修正排版,word格式支持编辑,如有帮助欢迎下载支持。

前言现在,电子技术的发展非常迅猛高新科技日新月异。

特别是专用集成电路(ASIC)设计技术的日趋进步和完善,推动着数字电路系统设计方法的发展,使他从单纯的ASIC设计走向了系统设计和单片系统的设计。

而经过几十年的发展越来越成熟的FPGA设计方式以他的短周期,低成本,灵活方便的独特优势走红于电子技术业内。

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既能解决定制电路的不足,又能克服原有可编程器件门电路数有限的缺点。

本设计的的内容是基于FPGA的数码显示和键盘扫描电路的设计,通过键盘对数码显示调控来实现FPGA的思想。

键盘输入通过按键扫描检测和去抖动在通过编码输入到显示电路中,在显示过程中能通过键盘输入对显示内容进行校正和调节。

在通过编译仿真下载到FPGA电子板上后能显示预期的信号,当按下键盘时候能产生预期的结果。

在设计这个课题的过程中,遇到很多问题,比如开始的时候遇到的一个问题就是自己在在quartus中进行仿真,把模块单个的拿出来仿真仿真波形正常,但当把几个模块连在一起的时候仿真就出不来预期的波形。

最后在老师和同学的帮助下发现要对每个模块进行了解,对模块之间的连接要适当的处理。

经过这次设计,尽管结果不是那么完美,但为自己以后的生活,学习有了很大的帮助,特别是在设计过程中不断遇到问题不断解决问题的经验会让我受用终生。

第一章绪论.................................... 错误!未定义书签。

1.1选题背景...................................错误!未定义书签。

1.1.1 课题相关技术的发展.....................错误!未定义书签。

FPGA控制的PS2接口电路设计

FPGA控制的PS2接口电路设计

FPGA控制的PS/2接口电路设计摘要:作为计算机常用的输入设备键盘,其接口通常是PS/2接口,现在也出现了USB接口的键盘。

本文是根据PS/2接口原理,使用FPGA接收键盘发送的数据,将扫描码转换成ASCII码,最后将扫描码和ASCII码显示出来。

关键词:键盘PS/2FPGA转换显示一、引言PS/2协议和接口最初是有IBM公司开发并推广使用的一种应于键盘/鼠标的协议和接口,直到现在仍被广泛使用。

PS/2键盘接口是6芯的插头与PC机连接,该接口在封装上小巧,并且使用双向串行通信协议,并且提供有可选择的第三套扫描码集,同时支持17个主机到键盘的命令。

利用FPGA和EDA技术可以根据PS/2接口的传输协议,编写VHDL程序来接收键盘发送的扫描码。

本文就是根据此方法来设计电路,将键盘发送的数据转换为ASCII码,并用7段数码管显示键盘的16进制扫描码和其所对应的16进制ASCII码,并且将扫描码和ASCII码显示在1602液晶上。

二、PS/2接口原理1、接口特性在PS/2的的6个引脚中只有4个有实际意义,它们分别是clock 时钟脚,data数据脚,+5V电源脚和Ground电源地。

如图所示:PS/2通讯协议是一种双向同步串行通讯协议。

通讯的两端通过Clock同步,并通过Data交换数据。

2、设备到主机的通信过程键盘接口的数据线和时钟线大多采用集电极开路结构,平常处于高电平。

当键盘像主机发送数据时,首先检查时钟线是否为高。

如果为低,则是主机抑制饿通讯,此时数据必须将数据缓存,直到重新获得总线的控制权(一般PS/2键盘有16个字节的缓冲区)。

如果Clock 为高电平,键盘开始将数据发送到主机。

一般都是有PS/2设备产生时钟信号,发送时按照数据帧格式顺序发送。

其中数据位在Clock 为高时准备好,在Clock的下降沿被PC读入。

下图为数据发送时序图和数据帧格式。

数据发送时序图1个起始位总是逻辑08个数据位(LSB)低位在前1个奇偶校验位奇校验1个停止位总是逻辑11个应答位仅用在主机对设备的通讯中数据帧格式三、硬件电路由于是使用FPGA控制的PS/2接口电路,因此应有一对PS/2接口分别与FPGA和键盘相接,以实现数据的发送和接收。

FPGA控制的PS2接口电路设计

FPGA控制的PS2接口电路设计

FPGA控制的PS/2接口电路设计***(电信科071班***********)摘要:介绍了FPGA控制的PS/2接口电路的设计。

FPGA控制电路能够识别PS/2键盘按键,并将按键的扫描码与对应ASCII码显示在数码管上,且将上述所有内容按要求显示在1602液晶屏上。

关键字:FPGA;键盘接口;键盘扫描;数码显示Design of PS/2 port circuit controlled by FPGAZhang LijuanAbstract:this paper introduces the design of PS/2 port circuit controled by FPGA.The circuit controled by FPGA can identify PS/2 push-button,and display it’s scan code corresponding ASCII on Nixie tube,and all above will be displayed in the LCD screen 1602 as required.Keywords: FPGA;keyboard port; keyboard scan; Nixie display引言:作为计算机最常用输入设备键盘,最早使用的是的PC/AT机的84键的键盘,现在使用的是增强型的,键盘是嵌入式系统的最重要的输入设备之一,是实现人机交互的重要途径。

键盘接口的主要电路是用Intel 8042 单片机作键盘控制,该芯片能够实现键盘接口的全部功能,可以将键盘扫描码转换成系统ASCII码,同时还实现了键盘和CPU之间的双向传输功能。

PS/2接口电路的工作原理:PS/2协议和接口最初是IBM公司开发并推广使用的一种应用于键盘/鼠标的协议和接口,PS/2键盘按键接口是6芯的插头与PC 机的键盘相连接,插头、插座定义如图1所示。

FPGA控制的PS2接口电路设计 毕业论文 毕业设计

FPGA控制的PS2接口电路设计 毕业论文 毕业设计

FPGA控制的PS/2接口电路设计摘要:PS2作为键盘接口至今仍在广泛使用。

本论文根据PS2键盘接口的协议,用VHD语言编程,用FPGA控制PS2,使其能够接收从键盘键入的信息,并把它显示在数码管和液晶显示频上。

The Design of PS / 2 Interface Circuit by Control of FPGAAbstract:Today,PS2 keyboard interface is still being used widely.This report is based PS2 keyboard interface protocol, with VHD language programming, using FPGA control PS2, so that it can receive information from the keyboard to type, and display it in the digital frequency of the tube and liquid crystal display.关键词:VHDL,FPGA , PS2, QuartusII引言:PS2是一类应用广泛的键盘接口。

本文论述了用FPGA控制PS2的设计思想及方法,并实现把按键的扫描码及其对应的ASCII码显示在LED及LCD上。

设计原理通过分析,本次设计需要分四部分实现:1.接收从键盘发出的扫描码信息2.把接收到的扫描码转换成ASCII码3.把扫描码和ASCII码显示在数码管上4.把扫描码和ASCII码显示在LED液晶上。

1.PS2键盘接口协议介绍PS2协议和接口最初是由IBM公司开发并广泛使用的应用于键盘/鼠标的协议和接口。

PS2键盘接口是6芯的插头,各插头定义如下:在PS2的6个芯中,2和6未定义,3和4为电源和地,需要用FPGA控制的只有1(数据)和5(时钟)。

2.把从键盘发出的数据转换成扫描码每当有按键按下或弹起时键盘都会发出一帧或几帧数据,每一帧数据一共都12位,其数据格式如下表所示:从键盘发出的数据是在时钟信号的下降沿的时候才被读取,FPGA要想接收到键盘发出的数据就要配合PS2的时序。

基于FPGA的标准PS_2键盘接口电路设计概要

基于FPGA的标准PS_2键盘接口电路设计概要

一、引言键盘是嵌入式系统的最重要的输入设备之一,是实现人机交互的重要途径。

设计者除了可以自行设计扫描式矩阵键盘之外,还可以选择标准PS/2键盘实现人机交互。

扫描式矩阵键盘虽然电路简单,但不具有通用性,当需要使用较多的按键输入时,则会占用较多的I /O 端口,在软件上则要进行上电复位、按键扫描及通信的处理,而且还要加上按键的去抖动处理,增大了系统软、硬件的开销,开发周期较长[1]。

标准PS /2键盘由于接口通信协议简单,在系统中占用软硬件资源少,高可靠性,表达信息量大而得到了越来越广泛的应用[2]。

本文根据标准PS/2键盘的通信时序,用硬件描述语言Verilog HDL 设计了基于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键盘获得发送数据的控制权。

首先发送短帧数据格式的起始位(低电平,然后才发送数据(低位先发送,跟着发送奇校验位,最后才发送帧数据格式的停止位。

基于FPGA的键盘扫描模块的设计与实现

基于FPGA的键盘扫描模块的设计与实现

基于FPGA的键盘扫描模块的设计与实现在产品中,键盘是最基本的输入设备,然而在应用中都采纳通用的键盘扫描器件是不现实的,需要单独设计成专用的小键盘。

现代(电子设计)技术提供了一种很好的途径,利用硬件描述语言和器件可以很便利地构建键盘扫描模块。

经过实际操作检验,该模块可以很好地对每一次按键动作举行扫描和响应,实现预先设计的功能。

1 概述1.1 通用键盘和专用键盘在现代个人计算机系统中,普通都采纳通用的标准键盘(如:标准101/102键盘或Microsoft自然PS/2键盘)来实现人与计算机之间的接口交互,所需要的各种数据和命令等信息都通过键盘来输入计算机。

但是,在各种系统(如手机、微波炉、电风扇等)中,所需要的键盘按键个数十分有限,通常为几个到十几个不等(而标准键盘通常为一百多个按键),并且每个按键所代表的功能含义也各不相同。

所以,针对每一种嵌入式系统都应对键盘(包括键盘扫描模块和相关控制信号等)举行特地设计,结合工程实际状况充分利用该系统已有的各种资源,使所设计的键盘恰如其分地融合到嵌入式系统中,成为其不行分割的一部分。

1.2 编码键盘和扫描键盘在数字中,可以利用实现按键键值的挺直编码。

将每个按键的输出信号对应衔接到编码器的每个输入端,通过编码规律就可以在编码器的输出端得到对应每个按键的码值,早期称这种键盘为编码键盘。

但是,当按键较多时数码规律的成本较高,挺直编码的办法也不够灵括,一旦编码规律固定就难以更改。

在通用键盘上或当按键数量较多时,普遍采纳扫描方式产生键值。

将按键衔接成矩阵,每个按键位于某行、某列的交点上,1所示,先通过扫描方式确定按下键的行和列位,即位置码或扫描码。

再查表将位置码转换为按键码值或者挺直用法扫描码,有些参考书称此为“非编码键盘”。

但这种名称简单让人误会为没有对应的键值,因此又称为第1页共4页。

基于FPGA的ARFI系统USB键盘设计

基于FPGA的ARFI系统USB键盘设计

基于FPGA的ARFI系统USB键盘设计王欢;方方;郑海荣;李强;杨戈;曾成志【期刊名称】《中国测试》【年(卷),期】2015(041)004【摘要】传统的人机交互数据传输多通过计算机串口或并口实现,数据率低,通常会因数据传输堵塞造成系统响应迟滞.针对此问题,设计一种基于FPGA的ARFI系统USB键盘.通信桥芯片FT245RL作为USB虚拟串口芯片,保证传输方式的便捷与灵活性,同时又提供高数据率的传输通道.通过自定义传输协议使得ARFI系统在人机交互数据传输方面更为快速、稳定、可靠.新增加的Multi多功能键,能在不同工作模式下调节不同的参数值.测试结果表明,键盘能准确、快速、稳定地传输数据,系统灵敏性高.【总页数】5页(P84-88)【作者】王欢;方方;郑海荣;李强;杨戈;曾成志【作者单位】成都理工大学核技术与自动化工程学院,四川成都610059;成都理工大学核技术与自动化工程学院,四川成都610059;中国科学院深圳先进技术研究院,广东深圳518055;中国科学院深圳先进技术研究院,广东深圳518055;中国科学院深圳先进技术研究院,广东深圳518055;中国科学院深圳先进技术研究院,广东深圳518055【正文语种】中文【相关文献】1.基于WinCE操作系统的通用USB数控键盘设计 [J], 王琳;王典洪;乔伟;谢利芳2.基于FPGA的USB2.0接口电路多功能测试系统 [J], 曹杨; 藏鑫3.基于FPGA和USB的高速数据实时采集系统的设计和实现 [J], 李继秀;钟燕清;田易;孟真;张兴成;刘谋4.基于FPGA+FT2232H多通道并行数据USB采集系统设计 [J], 杨会伟;周先飞;李敏5.基于Cy7c67300 USB控制器和FPGA的USB接口传输系统 [J], 黄义;翟国芳;万旻;成桂梅因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的键盘接口设计专业:电子信息科学与技术系作者:李先仙指导老师:刘强摘要:现场可编程逻辑门阵列FPGA (Field Programmalbe Gate Array)具有掩膜可编程门阵列的通用结构,由逻辑功能块排成阵列组成,并由可编程的互联资源连接这些逻辑功能块以及相应的输入/输出单元来实现不同的设计。

在电子产品中,键盘是最基本的输入设备,然而在应用中都采用通用的键盘扫描器件是不现实的,需要单独设计成专用的小键盘。

随着电子技术和EDA (Electronic Design Automatic,电子设计自动化)技术的发展,大规模可编程逻辑器件PLD(Programmable Logic Device)、现场可编程门阵列FPGA完全可以取代大规模集成电路芯片,实现计算机可编程接口的功能,并可将若干接口电路的功能集成到一片PLD或FPGA芯片中。

鉴于大规模PLD或FPGA的计算机接口电路不仅具有集成度高、体积小和功耗低等优点,而且还具有独特的用户可编程能力,从而实现计算机系统的功能重构。

本文设计首先介绍行列式键盘的原理和应用,通过对其接口电路的详细分析;然后利用VHDL硬件描述语言和FPGA器件并采用模块化设计的方法完成了基于FPGA的行列式键盘接口电路的设计;最后通过计算机仿真,对本文设计的行列式键盘接口电路的正确性进行了验证。

关键词:键盘;仿真;VHDL语言;FPGA;模块化设计Based on FPGA Keyboard Connection DesignMajor:Electronic Information Science and TechnologyAuthor: Li Xianxian Instructor: Liu QiangAbstract: The Filed Programmmalbe Gate Array,shorted by FPGA,which has a mask-programmable gate array of generic structure and function blocks in the logic array of line,through a programmable logic of internet resources connecting these function blocks and the corresponding input/output modules to achieve different design.In electronic products,the keyboard is the most basic input device,however,it’s unrealistic of using general keyboard scanning device in the application ,we need for the separate designing of the small keyboard. With the development of Electronic and EDA(Electronic Design Automatic)technology,Large Scale Integration chips can be replaced by PLD(Programmable Logic Device)and FPGA ,which can realize the function of the Programmable Interface chips and feature a number of interface circuits integated into one of the PLD or FPGA chips.The computer interface circuit based on the technology of PLD and FPGA not only has the virtue of high integration,low volume and low power loss, but also has the unique programmable function,which can realizereconstruction of the function of computer system.The designing of this article first introduced the determinant keyboard’s theory and application,through to analysis its connection electric circuit in very great detail ,and then used VHDL hardware description language and FPGA device to complete FPGA-based determinant keyboard connection electric circuit design with modular design mathod.Fianally,through the method of simulations to verify the accuracy of the determinant keyboard connection electric circuit of the design.Key words: Keyboard; Simulalion; VHDL lauguage; FPGA; Modular design前言键盘历史非常悠久,早在1714年,就开始相继有英、美、法、意、瑞士等国家的人发明了各种形式的打字机,最早的键盘就是那个时候用在那些技术还不成熟的打字机上的;到了20世纪中期,键盘又多了一个用武之地——作为电脑的基本输入设备,用户通过它向计算机传递信息,它有机械式、电容式、电感式和薄膜式等多种形式,按获取按编码的方式,可分为编码键盘和非编码键盘;根据键盘插口方式分为AT接口键盘和PS/2接口键盘和USB接口键盘,其中AT接口键盘目前已基本被淘汰[1]。

然而在应用中都采用通用的键盘扫描器件是不现实的,由可编程逻辑器件组成的数字电路系统中经常需要有输入/输出设备,以用来与用户更好地进行交互。

现代EDA(Electronic Design Automation,电子设计自动化)技术提供了一种很好的途径,利用VHDL硬件描述语言和FPGA器件可以很方便地构建键盘接口电路[2]。

本文采用VHDL语言设计的基于FPGA的行列式键盘接口设计,行列式键盘是常用的输入/输出设备之一,它结构简单,携带方便,功耗低,能够适用于各种功率要求的场合,功能强大,能有效的提高利用I/O口的利用率。

行列式键盘电路的FPGA实现主要解决三个问题,一是如何检测是否有按键按下并防止采集到干扰信号,二是在按键闭合时如何防止抖动,三是如何判断为哪一个按键位动作,并对其进行译码。

因此,要解决这些问题,把行列式键盘接口电路分为键盘扫描电路、键盘译码电路、按键标志产生电路、时钟模块以及键盘顶层电路等四个模块来实现。

首先利用VHDL硬件描述语言在FPGA芯片上实现键盘接口并利用仿真FPGA软件进行仿真;之后便可利用FPGA实验箱搭建相应的硬件电路,在硬件上实现键盘接口的一些基本功能。

在Altera、Atmel等公司都推出了内嵌微处理器的FPGA,但由于价格、开发手段和方法等因素的影响,在未来一段较长的时间里,还是会更多的采用单片机与FPGA配合的方式设计系统,以发挥单片机的灵活性和FPGA的高速性[3]。

1 VHDL和FPGA概述1.1 VHDL概述1.1.1 VHDL的由来和特点VHDL是Very high speed integrated circuit Hardware Deseription Language的缩写,意思是非常高速集成电路的硬件描述语言,是HDL(Hardware Deseription Language,硬件描述语言)的一种。

这是一项由美国国防部所支持的研究计划,目的是为了把电子电路的设计意义以文字或文件的方式保存下来,以便他人能轻易地了解电路的设计意义。

由于VHDL电路描述语言所能涵盖的范围很广,从ASIC(Application Specific Integrated Circuit,专用集成电路)的设计到PCB(Printed Circuit Board,印刷电路板)系统的设计,VHDL电路描述语言都能派上用场,所以VHDL语言毫无疑问地成为硬件设计工程师的必备工具[4]。

VHDL主要用于描述数字系统的结构、行为、功能和接口。

除了含有许多方面具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(即端口)和内部(即设计实体的内部功能和算法完成部分)。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体[5]。

这种将设计实体分成内、外两部分的概念是VHDL系统设计的基本点。

具体特点如下:1) 与其它的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。

强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模集成电路的重要保证。

2) VHDL丰富的仿真语言和库函数,使得在大规模集成电路设计的早期就能查验出设计系统的功能可行性,可随时对设计进行功能仿真、时序仿真,使设计者在设计初期就可以对整个工程设计的可行性作出决策,从而缩短了设计周期,减少了研发成本。

3) VHDL语句的行为描述能力和程序结构决定了它具有支持大规模集成电路设计的分解和对已有设计的再利用功能[4]。

重复利用他人的IP (Intelligence Property core,知识产权核,一种正式注册产权的电路设计)模块和软核(soft core)是VHDL的特色,设计不必各个都从头再来,只要在更高的层次上把IP模块利用起来,能达到事半功倍的效果。

4) 对于VHDL完成的一个确定的设计,可以利用EDA工具(如MAX+PLUSⅡ)进行逻辑综合和优化,并自动把VHDL描述设计转换成门级网表。

这种设计方式突破了传统门级设计中的瓶颈,极大地减少了电路设计的时间和错误发生率,降低了开发成本,缩短了设计周期。

相关文档
最新文档