欢迎来到天天文库
浏览记录
ID:52377519
大小:263.72 KB
页数:3页
时间:2020-03-27
《矩阵式键盘接口通用IP核的设计与实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、736化工自动化及仪表第38卷矩阵式键盘接口通用IP核的设计与实现张俊涛张弛(陕西科技大学电气与信息工程学院,西安710021)摘要设计并实现一种基于FPGA的矩阵式键盘接口IP核。与传统的软件扫描编程方式相比,应用IP钕检测键盘具有可靠性高、实时性好以及简化系统软件设计等优点,同时不增加系统成本、体积和功耗。关键词矩阵键盘接口IP核中图分类号TP3文献标识码A文章编号1000.3932(2011)06-0736-03键盘电路是嵌入式系统中基本的输入设备,有独立式和矩阵式两大类:独立式键盘每个键占用一个I/O口,因此当按键较多时,I/O口占用率高;矩阵式键盘资源占用率低
2、,用8个I/OlZl即可实现4×4键盘,但按键的读取需要用处理器进行编程扫描,相对比较复杂。虽然有键盘电路接口专用芯片,但使用这类芯片不但增加了系统的成本,而且体积大不利于降低系统功耗。随着数字集成电路制造工艺的发展,可编程逻辑器件密度越来越高,单片FPGA的规模可达上千万门,逐渐成为嵌入式系统设计的核心器件。将电子系统的核心模块设计成IP核,嵌入到FP-GA中,无论是在减小系统体积、降低系统功耗,还是提高系统可靠性方面都具有明显的优势,同时还能提高开发效率,降低产品成本。1键盘IP设计原理笔者设计基于FPGA的4X4矩阵式键盘(图1)接口IP核。键盘接口IP核的总体设
3、计思想基于矩阵式键盘扫描原理。IP核的结构主要由分频器(division—even)和键盘扫描状态机(keyboard—scan—machine—state)两个模块组成,如图2所示。其中分频器用于将系统时钟(sys—elk)降低到键盘IP核所要求时钟周期范围内。键盘扫描状态机是IP核设计的核心,有键按下时在键盘时钟(key—clk)的作用下,循环输出列线扫描码C3~CO并接收行线R3一R0信号检测按键位置,设置键盘状态标志(nKEY)并输出四位按键编码Key-Code[3..0]。C3C2ClC0S15S14——S13S12VI_l—L-l—L-R3严o.’严o_。严
4、。一。严扣10Kr_—_1S11S10S9S8_-_■L__—■·-R2r--oO---’严。一’rloo-’严胛10Kr—‘11S7S6S5S4■●-R1Po—’严p’严。一10KS3S2S1S0Il■L-_■●-_—■_-R0严忙户。一严o_严o-10l(图14×4矩阵形键盘电路收稿日期:2011-01.13第6期张俊涛等.矩阵式键盘接口通用IP核的设计与实现737di、’IsIOn—eVenkeyboard——scan——machine——statl;⋯。.,L.、INPUTclkfp—outkey_elk。0113~01:OUTPUTl):VLLJrow[3—0
5、】nkeylOUTPUTl,_——?^n可ib可nr⋯’一keycode[3..0]I....-._/InstinstlI一⋯~。。。V(:(:!图2键盘接口IP核设计框图2分频器设计由于扫描状态机对时钟频率无严格要求,故扫描周期设计为20ms,有利于消除按键抖动,提高按键检测的可靠性。当系统时钟为50MHz时,采用偶分频器实现106分频即可得到20ms的时钟信号。其核心Verilog代码为:parameterN=1000000;//分频系数outputregfp_out;//分频输出reg[19:O]count;//分频计数器always@(posedgeelk)if
6、(count7、C3(扫描第3列)和KEY—PRESSED(有键按下)6个状态。在没有键按下时状态机处于NO—KEY—PRESSED状态,键盘状态信号nKEY无效。有键按下时状态机进入SCAN—CO、SCAN—C1、SCAN—C2和SCAN—C3进行循环扫描,寻找按键位置。确定按键位置后进入KEY—PRESSED状态,输出按键编码keyeode并设置键盘状态信号nKEY有效。扫描状态机采用标准三段式进行描述,由时序进程、逻辑进程、同步输出和按键编码4个模块组成。时序进程用来描述在时钟脉冲的作用下现态(currstate)和次态(next—state)的转
7、C3(扫描第3列)和KEY—PRESSED(有键按下)6个状态。在没有键按下时状态机处于NO—KEY—PRESSED状态,键盘状态信号nKEY无效。有键按下时状态机进入SCAN—CO、SCAN—C1、SCAN—C2和SCAN—C3进行循环扫描,寻找按键位置。确定按键位置后进入KEY—PRESSED状态,输出按键编码keyeode并设置键盘状态信号nKEY有效。扫描状态机采用标准三段式进行描述,由时序进程、逻辑进程、同步输出和按键编码4个模块组成。时序进程用来描述在时钟脉冲的作用下现态(currstate)和次态(next—state)的转
此文档下载收益归作者所有