欢迎来到天天文库
浏览记录
ID:27662061
大小:173.01 KB
页数:7页
时间:2018-12-05
《全功能硬件键盘控制器ip核的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、IP(IntellectualProperty),即常说的知识产权。在PLD领域中,IP核是指将数字系统中常用但比较复杂的一些功能块设计成参数可调并以HDL源文件或加密网表形式存在的可供其他用户直接调用的软件模块。由于已经过严格的测试和优化,使用IP核可以S著减小没计和调试时间,提高开发效率,降低产品成本。本文以一款结构经参数化的企功能硬件扫描键盘控制器的开发为例,阐述IP核设计的一般方法与步骤。1设计的意义与可行性键盘是计算机系统中最常用的人机交互输入没备。在嵌入式系统中,用R+L条口线实现Rx
2、L个按键的扫描键盘的应用最为广泛。与线性键盘相比,扫描键盘中I/O口线的利用效率有了较大的提高,在一定程度上缓解了I/O引脚短缺的问题,但其传统实现方案的缺点是需要MPU的相应扫描控制程序来配合。为了响应输入,系统实质上工作于一种循环杏询模式,不但占用了较多的MPU处理时间,也增加了系统的功耗。在一些处理任务量大、对功耗又极为敏感的系统中,这是不能接受的。一方面,通用键盘接口芯片(如8279、HD7279A)功耗较大,使用灵活性差;另一方面,可编程逻辑器件在规模、速度和功耗等性能方面己远超出通用逻
3、辑芯片。所以越来越多的大型数字系统采用CPLD/FPGA构建,且系统中"J编程逻辑器件的硬件资源通常都有一定剩余,这使得在不增加成本的基础上,实现一款硬件扫描键盘控制器成为可能。在智能多芯电缆检测仪的研制过程中,一款这样的全功能硬件扫描键盘控制器便得以成功实现。下而详细介绍其工作原理和实现过程。2工作原理及功能要求2.1扫描键盘工作原理以4x4扫描键盘为例,工作原理如图1所示,其中P0〜P3为输出口,P4〜P7为输入口。无按键按下时,输入口被上拉为高电平。输出口以一定频率循环输出0111、1011
4、、1101、1110。通过读输入口的状态,便可判断击键情况。如输出0111时,输入口的16种状态与击键的对应关系如表1所示。单列线的扫描频率(记为Fs)—般应界于50〜400Hz之间。P0PIP2P3图1扫描斑盘工作原理表1输入口状态与击键对座关系P4^P7击键P4-F7击键0111110102+41011211003+411013()00()1十2+3+4111041111无00111+2000114-2+301011+3001014-2+401101+401001+3+410012+31000
5、2+3+42.2按键的去抖动问题由于触点的弹性作用,机械按键在闭合和断开瞬间会产生抖动,实际电压波形如图2所示。其中T1、T2、TS分别为前沿抖动吋间、后沿抖动吋间和按键稳定吋间。T1、T2取决于触点的机械特性,-•般力5〜12ms;TS则主要収决于击键速度的快慢和按键按下时间的长短。统计研究表明,以正常速度击键时,T1、T2、TS之和一般不小于12ms。按键抖动引起的最大问题是一次击键被误识别为多次击键,因此应避免在抖动期T1、T2内对输入行线状态进行采样。去抖动电路的设计是硬件扫描键盘控制器设
6、计中的关键之2.3全功能键盘控制器的功能要求在键盘使用过程中,实际击键情况有两种:单击和连击。单击吋用户希望通过短吋间击键只产生一个有效键值:连击吋用户长吋间按下按键,希望持续快速产生多个有效键值。为方便使用,键盘设计应区分快速单击和持续连击:两者都用来快速产生多个键值,区别在于击键的动作和使用的场合。前者要求每次单击后释放按键,常用于参数小范围内的精调:而后者则要求按键长吋间保持在按下状态,以实现参数大范围内的快速调节。连击过程如图2所示,其屮tJ为去抖时间,即从击键起到产生笫一个有效键值的最小
7、吋间间隔,tF和tS分别为首次重复延吋和持续连击时间间隔。三者的取值要求参见表2。表2参数和~取值要求参数通常取值设逬不当可能导致的问题h12〜20⑽,但应大于7;过小,单次击键由于抖动被误识别为多次击键;过大,漏检快速击键tr4()0-1000"以过小,单次击键由于按铤时间稍长被误识别为多次击链;过大,提商了可靠性,但导致输入效率下降4(卜400⑽过小,SS速率过快,输入不便;过大,导致输入效率下降除上述要求外,全功能扫描键盘控制器还要求能识别多键同击的情况。出于简化设计的目的,本设计仅考虑同列
8、按键的多键同击fu)题。解决此W题的办法是使RxL扫描键盘(R为输入行线数,L力扫描列线数)可以识别的等效按键数从RxL增加到(以4x4为例,从16个增加为60个)。3IP核的实现3.1硬件实现全功能硬件扫描键盘控制器由3个计数器(分频计数器、延时计数器和扫描计数器)、2个标志寄存器(连击标志寄存器和中断标志寄存器)、1个键值锁存器和相应组合逻辑电路组成。其结构框图如图3所示。图中,对外提供5组(或个)信号引脚:elk和DB通常与CPLD/FPGA中的其他模块公用,前者用于同步时钟
此文档下载收益归作者所有