摘要:介绍了一种采用DM642和CPLD相配合的扩展键盘方法。CPLD管理键盘电路中的芯片逻辑,DM642的外部中断监控按键的状态。简单阐述了键盘的分类,给出系统的硬件电路原理图,在CCS软件中调试程序方法。仿真结果表明,设计可行,达到了预期效果。
关键词:键盘;DM642;CPLD;人机交互
引言
键盘是人机交互模块中必备的输入部分,在目前的嵌入式系统人机接口中通常采用专用的键盘处理芯片ZLG7290设计键盘。由于ZLG7290是一种64位LED显示和64个按键的键盘管理器件,会造成部分LED显示和按键空闲浪费并占用硬件资源比较多,使成本增加。随着DM642性价比的提高,它在图像处理系统和数字媒体系统中的应用越来越广泛,而作为人机交互重要手段的键盘在上述系统中是必不可少的输入设备。通常以DM642为核心的电路系统中主要采用独立式键盘和行列扫描式键盘。本文在DM642电路系统中使用CPLD提供多路输入/输出引脚的方法扩展键盘。DM642的外部中断监控按键的状态,CPLD管理键盘电路中的芯片逻辑。此外,CPLD(EPM7128AET芯片)共有100个输入/输出引脚,可根据实际需要自由扩展引脚,实现灵活,应用前景广阔。
1 独立式键盘和行列扫描式键盘
1.1 独立式键盘
独立式键盘是指将每个按键按一对一的方式直接连接到I/O输入线上所构成的键盘。独立式键盘可以工作在多种方式下:中断方式、程序查询方式、定时查询发送和中断查询方式。独立式键盘的缺点是需要占用较多的I/O线。当应用系统中需要的按键比较少或I/O线比较富余时,可以把单个按键与DSP的输入/输出引脚直连,采用查询或中断方式检测键值。电路如图1所示,S1~Sn表示n个按键,按键的输入端接地,输出端与DSP的输入/输出引脚P1~Pn相连,并接上拉电阻。DSP可以采用查询方式检测键值,也可以采用中断方式监控按键的状态。
1.2 行列扫描式键盘
行列扫描式键盘是行列式键盘中最主要的一种,是用n条I/O线作为行线,m条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样,键盘中按键的个数是m×n个。它适合于构成按键数目比较多的键盘。这种形式的键盘结构,能够有效地提高系统中I/O口的利用率。行列扫描式是先使列(行)线全输出低电平,然后判断行(列)线状态,若行线全为高电平表示无键被按下,若行线不全为高电平表示有键被按下。然后依次使列线为低电平,再判断行线状态,当行线全为高电平时表示被按下的键不在本列,当行线不全为高电平时表示被按下的键在本列,把此时的行线状态与列线状态和在一起即为被按下的键的位置。扫描法对键的识别采用逐行(列)扫描的方法获得键的位置,当被按下的键在最后一行时需要扫描N次(N为行数),当N比较大时键盘工作速度较慢。如图2所示,该键盘为16键行列扫描式键盘,具有4路输入引脚Pn~Pi4和4路输出引脚Po1~Po4配合使用。当DSP工作于查询方式时,按键不需要加上拉或下拉电阻。