1 导言
按键作为一般的输入外设,在仪器仪表工业设备和家用电器中得到广泛使用。现在,按键输入电路Ⅲ首要有2种:一种对错扫描方法能够判别多键状况(允许多键一起动作),可是不适用于许多按键状况,所需I/0端口多;另一种是扫描阵列方法,适用于许多按键,但不能多键一起动作。因而,需求开发一种既合适许多按键又合适多键一起动作,并能节约单片机(MCU)的口线资源的多按键状况辨认体系。这儿提出一种使用FPGA的I/0端口数多和可编程的特色,选用VHDL言语的多按键状况辨认体系,完结辨认60个按键自在操作,并简化MCU的操控信号。
2 体系规划计划
FPGA是一种可编程逻辑器材,它具有杰出功用、极高的密度和极大的灵敏性,外围电路简略牢靠等特性。因而,该体系规划是由MCU、FPGA、按键等部分组成。60路按键信号进入FPGA单元,以供数据收集;FPGA处理收集到的数据信号,编码后写入内部FIFO。MCU经过I/O端口提取FIFO中的数据。模块经过电源接口向各个部分供电。其体系规划原理框图如图l所示。
2.1 FPGA装备电路
FPGA选用Altera公司EPF10K30ATC144,该器材内核选用3.3 V供电,端口电压为3.3V可接受5 V输入高电平,其作业频率高达100 MHz;有102个可用I/0端口,每个端口输入电流最高达25 mA,输出电流达25 mA;l728个逻辑单元(Les),12 288 bit的用户Flash存储器,可满意用户小容量信息存储,彻底满意体系规划要求。
因为FPGA依据RAM工艺技术,该器材丁作前需求从外部加载装备数据,需求一个外置存储器保存信息,选用可编程的串行装备器材EPC2.其供电电压为3.3 V。OE和nCS引脚具有内部用户可装备上拉电阻。FPGA的DCLK、DATA0、nCONFIG引脚信号均来自EPC2。体系上电后,首要FPGA初始化,nSTATUS、CONF_DONE置为低电平。nSTATUS置为低电平后复位,此刻EPC2的nCE为低电平,因而选取EPC2,然后数据流从DATA引脚输入到FPGA的DATAO引脚。装备完结后,FPGA将CONF_DONE置为高电平,而EPC2将DATA引脚置为高阻态。其FPGA装备电路如图2所示。
2.2 按键电路
图3为一路按键电路,共60个按键(i=1~60)。因为外界环境杂乱,按键引线长达6 m,维护二极管VDi:在外界搅扰信号大于VCC时导通起到维护FPGA的效果。电阻Ri上拉限流,按键未闭合状况下FPGA输入引脚一直处于高电平。
3 FPGA内部逻辑规划
FPGA内部功用分为扫描模块、编码模块、操控模块以及同步FIFO RAM模块,如图4所示。
图4中,K1~K60为60个按键的输入端,Scan为作业方法挑选信号,Ready为读准备好信号,RdClk为读时钟信号,Data[7:0]为数据输出,ModCtr为编码方法操控信号,FIFOWEn为FIFO RAM写使能信号,FIFOIn为FIFO RAM数据输入,State为按键状况扫描信号。其作业原理为:扫描模块周期扫描按键状况,其成果送入编码模块;编码模块依据方法操控信号ModCtr挑选编码方法编码,将其成果送入FIFO RAM;操控模块发生对FIFO RAM的读取操控信号;MCU可经过Readv、RdClk操控信号读取Data[7:0]数据线上的按键编号和状况数据。
3.1 扫描模块
扫描模块首要完结扫描按键状况输入和按键的软件去颤动。扫描按键状况输入是以5 m8为周期扫描60个输入引脚,将其成果存入60个两位状况移位寄存器。其代码为:
按键去抖有硬件和软件2种完结方法。为了节约本钱,充分发挥FPGA器材的功用,该体系规划选用软件去抖。图5为软件去颤动流程。图中State为2位状况移位寄存器,初始值为0,TimeDelay为延时计数器。
软件去颤动进程阐明:对状况寄存器的2位数值做异或运算,即m=State_1 Xor State_2。若m=l,阐明按键有动作,则令TImeDelay=1,发动延时计数;若m=O,标明按键处于去抖延时或许平稳状况。这时判别TImeDelay,若TImeDelay=0,则按键处于平稳状况;若0《TImeDelay《MaxDelay(最大延时设定值),则阐明处于去抖计数中,TimeDelay继续加1,当TimeDelav》MaxDelay时阐明按键现已平稳,将成果送入编码器模块。软件去抖要害代码如下:
3.2 编码模块
以0、l表明按键通断状况,60个按键则需求8个字节;在实践中单键动作的概率远远大于多键一起动作的概率,若只对状况发生变化的按键以8位编码方法传输按键信息,则一个按键只需传送一个字节,因而为尽可能地削减MCU的担负,进步实时性,规划为只在按键发生状况变化时才向MCU传输相应按键的编号和状况数据。其编码数据格式如图6所示。
状况位lbit,0表明按键闭合状况,1表明按键翻开;数据6bits,即0X01~OX3C别离表明1~60个按键;lbit偶校验位。这样传输一次数据就可完结按键编号和状况的传输。
编码器选用接连和随机2种作业方法。接连作业方法每次扫描后对一切按键顺次编码,并获取一切按键的当时状况;而随机作业方法在每次扫描后只对状况发生变化的按键编码。
3.3 操控模块
操控模块完结MCU与FPGA之间的功用操控,有2个效果:一是依据Scan信号挑选编码模块的作业方法,二是发生FIFO RAM的读取操作时序。
关于方法操控,Scan上升沿触发操控模块,使编码模块进入接连作业方法,扫描完结一周,操控模块发送操控信号使编码模块进入随机作业方法。
关于读取数据,操控模块依据FIFO RAM的Data[7:0]是否有数据,置位Ready信号。有数据,Ready为低电平;无数据,Ready为高电平。RdClk为读取时钟,相当于承认信号,每读完一个数据,发送一个脉冲。
3.4 FIFORAM模块
与MCU通讯的接口品种许多,可挑选串口、I2C、并口等方法,使用中可依据MCU资源以及项目本钱、进展等具体状况挑选最合适的一种方法。该体系规划使用同步FIF0 RAM并口传输。FIF0 RAM模块选用EDA软件库中的规范模块。
4 仿真成果
选用Altera公司供给的Quartus II仿真东西,其集成有与硬件实时操作相吻合的硬件测验东西。归纳仿真成果如图7所示,体系时钟SysClk为12 kHz,其仿真成果标明体系规划到达要求。
5 定论
提出依据FPGA器材,VHDL言语描绘的特别键盘规划计划处理远距离、涣散、多键动作状况辨认问题,极大节约PCB面积和MCU的I/0端口资源。模块中扫描推迟、扫描距离等参数可依据体系需求灵敏改动,FPGA器材使得电路功用的扩展便利,具有极高安稳性和灵敏性。这一计划已在实践项目中使用,经现场验证功用安稳牢靠。
责任编辑:gt