DM642和CPLD外部中断的寄存器式键盘设计

发布者:温馨小屋最新更新时间:2011-08-26 来源: 单片机与嵌入式系统关键字:DM642  寄存器  键盘 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:介绍了一种采用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可以采用查询方式检测键值,也可以采用中断方式监控按键的状态。

a.jpg


1.2 行列扫描式键盘
    行列扫描式键盘是行列式键盘中最主要的一种,是用n条I/O线作为行线,m条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样,键盘中按键的个数是m×n个。它适合于构成按键数目比较多的键盘。这种形式的键盘结构,能够有效地提高系统中I/O口的利用率。行列扫描式是先使列(行)线全输出低电平,然后判断行(列)线状态,若行线全为高电平表示无键被按下,若行线不全为高电平表示有键被按下。然后依次使列线为低电平,再判断行线状态,当行线全为高电平时表示被按下的键不在本列,当行线不全为高电平时表示被按下的键在本列,把此时的行线状态与列线状态和在一起即为被按下的键的位置。扫描法对键的识别采用逐行(列)扫描的方法获得键的位置,当被按下的键在最后一行时需要扫描N次(N为行数),当N比较大时键盘工作速度较慢。如图2所示,该键盘为16键行列扫描式键盘,具有4路输入引脚Pn~Pi4和4路输出引脚Po1~Po4配合使用。当DSP工作于查询方式时,按键不需要加上拉或下拉电阻。

b.jpg



2 外部中断的寄存器式键盘
2.1 系统总体结构
    键盘系统中CPLD选用EPM7128AET芯片,能提供多路输入/输出引脚,输出逻辑电平为3.3 V,输入逻辑电平兼容3.3 V和5 V两种,共100个输入/输出引脚。CPLD在逻辑控制和时序控制方面具有很多优势,它的内部拥有大量的逻辑门,可以在软件环境中巧妙地利用这些门电路,对输入引脚信号进行各种逻辑组合设计,将逻辑组合信号再提供给输出引脚。CPLD器件内部还提供了大量标准的逻辑电路模块,如译码电路、地址锁存电路等,这些电路模块代替了传统电路中需要的译码芯片、地址锁存芯片等,不仅为电路板设计节省空间,而且使电路设计流程更加灵活和方便。DSP选用TMS320DM642芯片,为了扩展DM642的GPIO输入/输出引脚而设计成16按键的键盘,CPLD需使用DM642的低8位数据总线D[7:0]、地址总线EA[10:3]、EA22和读写控制信号线,CPLD才能在内部产生所需的扩展寄存器。CPLD丰富的输入/输出引脚和大量的逻辑门管理键盘系统中的芯片逻辑。如图3所示,按键的16个输入端接地,输出端KEY[1:16]与CPLD芯片的输人引脚I[1:16]连接,输出端接上拉电阻,DM642的低8位数据总线D[7:0]、地址总线EA[10:3]及EA22与CPLD器件的输入/输出引脚I/O[1:18]连接,DM642的RE和WE信号是寄存器扩展用的读/写使能信号,空间片选信号CE1和地址信号EA22作为寄存器端口片选信号,把按键状态读端口映射到DM642的CE1空间。当有按键按下时,产生一个上升沿脉冲触发信号,该信号可以认为是一个外部中断事件,那么可以通过DM642的外部中断EXINT4响应该中断事件,而在DM642内部EXINT4可以映射为中断INT4,DM642在INT4对应的中断函数中通过数据地址总线读取按键的键值并进行分析。在程序层面,该按键的触发信号和程序中INT4的中断服务函数相对应,同时INT4的中断服务函数与中断向量表中的中断编号联系起来。

c.jpg

    CPLD芯片内部扩展按键状态的16位输入端口控制寄存器逻辑图如图4所示,DM642通过操作寄存器读端口实现读取按键的键值并进行分析。在图4中,DM642的空间片选信号CE1和地址信号EA22作为寄存器端口片选信号,当CE1信号低电平有效时,与键盘状态有关的寄存器地址被映射到CE1空间,地址线EA22在映射关系中低电平有效。CE1空间地址有效范围为0x90000000~0x9FFFFFFF,按键KEY1~KEY8的寄存器端口地址为0x90080019,KEY9~KEY16的寄存器端口地址为0x9008001A。KEYCS[2:1]为输入端口的片选信号线,两路输入片选信号分别对应I[1:8]和I[9:16]输入引脚。芯片74138是CPLD内部提供的一种译码器,芯片74373是CPLD内部提供的一种地址锁存器,用于锁存按键按下时的电平状态。

d.jpg


    这里将扩展的寄存器端口地址设置为PORTAdd,PORTAdd在CE1空间中拥有一个32位的端口地址,PoRTAdd[31:0]与DM642的CE1信号和EA[22:3]地址信号之间的定义关系如表1所列。CE1信号决定了PORTAdd31位,EA[22:3]地址信号决定了寄存器端口地址的PORTAdd[19:0]位,PORTAdd端口的其他位保留未用。根据表1中的映射关系就可以确定CPLD内部寄存器端口的物理地址。在图4中,CE1信号保持低电平、EA22信号保持高电平时选中74138_1芯片,则PORTAdd的第31位和第19位均应为高电平“1”;EA8~EA6为高位译码地址线,EA5~EA3为低位译码地址线,两片74138芯片配合使用,能够产生64路片选信号;片选信号KEYCS1和KEYCS2低电平有效,两片74373在DM642的CE1空间中的地址分别为0x90080019和0x9008001A。

e.jpg



3 软件设计
    在CCS编程环境中,编写main.C、boot.asm、ves_dm642.asm、key.cmd等文件,由于在CSL中包含boot.asm函数,所以只需要自行编写main.c和ves_dm642.asm、key.cmd三个文件,然后添加到所创建的Key.pJt项目中。
    ves dm642.asm是DM642的中断向量表文件,声明中断函数名称及与中断编号的映射关系,KeyIsr是INT4对应的按键中断响应函数,其主要代码如下:
f.jpg
    main.c是键盘电路的主程序,包括添加CSL库文件的头文件、定义按键状态寄存器的端口地址及按键的MASK、初始化设置EMIFA接口、按键分析函数。主要代码如下:
g.jpg
h.jpg

4 系统调试
    为了调试程序,需要把main.c、boot.asm、ves_dm642.asm、key.cmd文件添加到项目Key.pjt中。同时,需要设置Build Options中的Compiler和Linker属性页,最后编译、链接、下载。通过设置断点和探针来进行软件模拟调试。CCS仿真表明,程序能根据硬件设计的要求读取按键的键值并进行按键状态的分析,达到预期结果。

结语
    DM642和CPLD相配合的方法扩展键盘,DM642的外部中断监控按键的状态,CPLD管理键盘电路中的芯片逻辑。充分利用DM642的GPIO口引脚能够配置为通用输入/输出引脚的优势和CPLD丰富的输入/输出引脚特性。可以应用在以DM642为核心处理器的模式识别和图像处理系统的人机交互模块中,前景广阔。

关键字:DM642  寄存器  键盘 引用地址:DM642和CPLD外部中断的寄存器式键盘设计

上一篇:Altera发售世界上第一款支持28-Gbps的FPGA
下一篇:技术创新促进高级 OCT 成像应用发展

推荐阅读最新更新时间:2024-05-02 21:33

工业控制计算机红外线遥控键盘的设计
0. 引言 对于工业控制微机系统来说输入设备键盘几乎是必不可少的。在按键数目较少时,一般直接利用按键控制接口线的高低电平来表示,因此需要相应的接口支持,由于单片工业控制微机系统接口线数目有限,为了减少占用接口线常常采用一键定义多功能,但这又增加了软件的复杂性;在按键数目较多时,则大多采用动态扫描的方式构成键盘矩阵,这种键盘虽然结构原理简单,驱动程序易于设计,但是在具体实现时往往需要花很多的时间去设计印刷电路板、考虑面板布局,而且在硬件资源比较紧张时,还要考虑扩充I/ O 口,从而使得电路变得越来越复杂。 2. 系统简介 本文介绍一种利用红外线发射装置作为工业控制计算机输入键盘的接口原理和实现方法,该接口可以最大限度地减少对单
[单片机]
工业控制计算机红外线遥控<font color='red'>键盘</font>的设计
ARM寄存器中R0~R15寄存器的别名
ARM中的寄存器的别名 默认的情况下,这些寄存器只是叫做r0,r1,...,r14等,而APCS 对其起了不同的别名。 使用汇编器预处理器的功能,你可以定义 R0 等名字,但在你修改其他人写的代码的时候,最好还是学习使用 APCS 名字。 一般编程过程中,最好按照其约定,使用对应的名字,这样使得程序可读性更好。 关于不同寄存器所对应的名字,见下表: Table 3.2. ARM寄存器的别名 寄存器名字 Reg# APCS 意义 R0 a1 工作寄存器 R1 a2 R2 a3 R3 a4 R4 v1 必须保护 R5 v2 R6 v3 R7 v4 R8 v5 R9 v
[单片机]
基于DM642的双目视觉监控系统设计与实现
  由于双目视觉监控系统可以模仿人眼功能,感知三维世界信息,能够得到被测对象到CCD摄像机的深度信息,近几年已开始在需要三维立体检测的领域得到应用。另外,双目视觉监控系统也可用于多场景监控,大大扩展了人的视野范围。双目视觉一直是机器视觉领域的热门研究课题,在工业控制、智能交通、金融、公共安全等应用领域逐渐显示出非常广阔的发展前景。详细分析和研究基于DM642的双目视觉监控系统,给出系统的软硬件设计方案,并在DM642开发评估板(EVM)上实现系统功能。    1 双目视觉监控系统的硬件结构   该双目视觉监控系统的硬件总体结构如图1所示。在图1中,双通道视频编码、解码芯片采用Philips公司的SAA7105和SAA7115H
[嵌入式]
基于Nios平台的光信号采集片上系统设计
引言 一项很有发展前景的新技术-纤维光学及光纤光栅(FBG,Fiber Bragg Grating)技术,已经被应用于温度及形变在线测量中。FBG传感器的特征就是具有良好的稳定性、可靠性。除此之外,它还具有基于光纤传感器的一些共有优点,如对电磁的不敏感性、尺寸小、传感器和数据获取装置之间距离可以很远;因而能克服传统的温度和形变传感器(如热电偶和形变测量器)的很多缺点,如重量、硬度方面的缺陷以及对环境变化干扰的抵抗能力差等。 本文主要介绍对FBG传感器信号的快速获取方法,重点介绍基于FPGA的Altera公司的Excalibur开发板,设计一个片上嵌入式测量系统,用它来获取光信号。与目前具有同样功能的其它测量系
[传感技术]
单片机5*4矩阵键盘计算器制作
本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号的嵌套使用级浮点数的运算,并在LCD1602上显示操作过程。 本次设计注重设计方法及流程,首先根据原理设计电路,利用keil编程,借助实验开发平台进行仿真实验,进而利用altium designer 制作PCB,最后到焊接元器件,直至调试成功。在设计的同时,特别注重keil软件和altium designer软件的使用方法和技巧以及常用的LCD显示器和矩阵键盘的设计和使用方法。 单片机源程序如下: #include REGX51.H #include intrins.h #in
[单片机]
单片机5*4矩阵<font color='red'>键盘</font>计算器制作
ARM体系寄存器
1.CPSR(current program status register)CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息. 2.SPSR(备份程序状态寄存器)当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。在异常中断退出时,可以用SPSR来恢复CPSR。 3.SP(堆栈指针寄存器)用于保存堆栈的出入口处地址。 4.PC(程序计数器)指向正在取指的指令。 5.LR(链接寄存器)存放子程序的返回地址。
[单片机]
STM32 BSRR BRR ODR 寄存器解析
一、用法 经常会看到类似如下的宏定义语句,用于对已经初始化后的 IO 口输出高、低电平。 #define SET_BL_HIGH() GPIOA- BSRR=GPIO_Pin_0 #define SET_BL_LOW() GPIOA- BRR=GPIO_Pin_0 其作用类似于如下两个库函数, void GPIO_SetBits(GPIO_Typedef* GPIOx, uint16_t GPIO_Pin) void GPIO_ResetBits(GPIO_Typedef* GPIOx, uint16_t GPIO_Pin) 而且实际上这两个库函数就是通过修改BSRR,BRR寄存器的值来
[单片机]
用FPGA实现DSP与液晶显示器的快速接口
  随着器件集成工艺的发展和Soc器件的出现,现在的数字系统正在越来越多地采用可编程器件设计。这样,不仅开发周期短,而且在价格和使用难易度上也显示了很大的优势。更为重要的是,还能利用器件的现场可编程特性,根据应用的要求对器件进行动态配置,简便易行地完成功能的添加或变化。   在高速的数字信号处理系统中,要涉及到大量的计算,为了提高运算速度,正大量使用DSP器件。目前的可编程器件,其时钟频率可以很高,在高速数字信号处理系统中将发挥越来越大的作用。因此,DSP+FPGA的方案正越来越多地被电子工程师们采用。   在很多的实际数字系统中,往往需要良好的用户界面,其中LCD是被大量采用的显示器件。由于LCD是典型的慢速设备(相对于DS
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved