新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 采用CPLD的专用键盘接口芯片的方案设计

采用CPLD的专用键盘接口芯片的方案设计

作者:时间:2012-04-18来源:网络收藏

扫描时序的基本原理[4]可以用图3所示的状态图表示。状态图的输入变量为RST(复位)、KEY-PRESS(有按键)、TIMER-OVER(去抖动延时结束);输出变量包括EN-SCAN(扫描行转移)、EN-CODED(编码启动)、START-TIMER(开启去抖动延时)。从图3中知道,状态S0→S1→S2为按键扫描状态链,状态S3→S4→S5为去抖延时状态链,状态S6为按键保持期。当按键被按下时,进入启动(S3)去抖延时状态链;去抖延时结束后(S5),若按键没有按下则恢复扫描状态链(S0);若按键确认被按下则进入保持期(S6),并输出按键编码维持至按键松开。

根据状态图3和上述的状态转移描述,进行扫描控制电路的设计,结果如图4所示。其中H3是6位循环移位寄存器,由时钟CLK触发实现状态移位。移位寄存器的输出Q0~Q5分别代表键盘扫描控制电路的状态S0~S6,当然它们并非一一对应,但实现的功能相同。值得一提的是,如果键盘KB-CORE的外部时钟CLK来自单片机的ALE信号(如图1所示),当单片机时钟为6MHz时,则键盘KB-CORE的外接时钟为1MHz的方波信号,信号周期为1μs。如果将该时钟信号经过一个分频器,使其输出的信号周期约为Tclk=1μs×212≈4ms,然后再作为H3的时钟信号。这意味着键盘扫描控制电路约4ms扫描一行按键。如果H3中的Q2态没有被使用,则可以实现约8ms的去抖动延时。通过这样的设计,可以免除延时计数器,简化电路。

本文引用地址:http://www.eepw.com.cn/article/149206.htm


4 键盘的实现

根据实时数据校正系统的设计要求,使用了34个自定义I/O引脚和PC44封装的来实现专用键盘芯片KB-CORE。芯片型号的选择依据综合所需要的宏单元(Macrocells)个数决定。如果借助硬件描述语言VHDL[5]对上述设计进行描述,综合结果需要约140个宏单元;如果改用原理图输入方式,则只需约60个宏单元。因此选用XC9572芯片可以满足上述专用键盘芯片KB-CORE的要求。实际使用如图1和图2所示,操作结果表明键盘接口芯片性能稳定。

DIY机械键盘相关社区:机械键盘DIY



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭