51单片机的矩阵键盘协处理器设计_第1页
51单片机的矩阵键盘协处理器设计_第2页
51单片机的矩阵键盘协处理器设计_第3页
51单片机的矩阵键盘协处理器设计_第4页
51单片机的矩阵键盘协处理器设计_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要各种数字系统的终端设备都需要对十进制信息进行数码显示,而LED是最常用的显示器件。在大规模可编程逻辑器件CPLD的硬件基础上,根据显示译码器原理运用VHDL硬件描述语言对LED的通用七段显示译码器进行了设计,同时使用ISE开发软件对设计电路进行了时序仿真和功能验证。此设计在大规模数字电路的数码显示中更为实用,具有设计简单使用灵活和工作可靠等优点。通过本次设计,可以体现出可编程逻辑器件CPLD等在电子设计领域的广泛应用,设计者可以方便的设计出符合要求的芯片或应用系统。相对于普通键盘,矩阵键盘有效的提高按键操作的效率,它可以提高系统的准确行,有利于资源的节约。对操作者的要求也比较低。能够准时

2、、时实、高效的显示按键信息。4*4矩阵键盘式键盘采用AT89S51单片机作为核心控制器件,以按键信号作为简单的输入信息,利用8段数码管和VHDL语言编程,单片机将检测到的按键信号转换成数字量。最种在数码管显示了0-F,并且在程序设计中利用按键扫描技术来对按键进行消抖。该设计实现了对矩阵键盘简单的信息输入的识别。关键词:VHDL;LED显示;CPLD;矩阵键盘 AbstractTerminal equipment digital system needs to decimal information digital display, while LED are the most common d

3、isplay devices. In the hardware foundation of large-scale programmable logic device CPLD, according to the principle of display decoder using VHDL hardware description language for general LED seven segment display decoder is designed, and the circuits are simulated to validate the use of ISE softwa

4、re. This design in large scale digital circuit digital display more practical, has the advantages of simple design, flexible and reliable.Through this design,it can see that CPLD has a widely application in electronic a rea.The design a chip or a system expediently. Compared to ordinary keyboard, ma

5、trix keyboard, effectively improve the efficiency of the key operation, it can improve the accuracy for the system, is conducive to resource saving. The operators requirements are relatively low. on time,when the real and efficient display key information . 4*4 matrix keyboard keyboard using AT89S51

6、 singlechipas the core control device, as a simple information input to key signal, the use of 8 digital tube and VHDL language programming. SCM will push the detected signal into digital quantity. The total in the digital tube display 0-F. The design and implementation of the recognition of informa

7、tion input matrix keyboard simple.Keywords:VHD;LED display;CPLD;matrix keyboard 目 录1 绪 论11.1 课题背景11.2 EDA的历史及发展21.3 课题意义42 硬件介绍52.1 51单片机简介52.1.1 51单片机的功能及引脚52.1.2 51单片机在课题中的运用72.2 CPLD简介102.2.1 CPLD的基本结构及特点102.2.2 应用及发展趋势112.2.3 CPLD在本课题中的运用123 VHDL语言及相关软件介绍153.1 VHDL简介153.2 ISE简介及工程设计流程163.3 Keil

8、C51简介及HEX格式文件创建183.3.1 Keil C51简介183.3.2 HEX格式文件创建203.4 Easy 51Pro简介204 51单片机的显示协处理器设计234.1 课题任务234.2 相关原理234.3 51单片机的显示协处理器的VHD代码设计244.4 操作步骤325 51单片机的矩阵键盘协处理器设计365.1 课题任务365.2 相关原理365.3 51单片机的矩阵键盘协处理器VHDL代码设计376 结 论426.1 单片机的显示协处理器设计结果426.2 51单片机的矩阵键盘协处理器设计结果42致 谢44参考文献45附录A 英文原文46附录B 中文翻译521 绪 论1

9、.1 课题背景 CPLD在现代计算机与电子系统中,一般都采用通用式的标准键盘将所需的数据和指令等信息通过键盘输入到计算机和电子系统,以此来实现人机之间的接口交互。但是,在各种嵌入式系统(如微波炉、手机、电风扇等)中的键盘按键个数有限,一般为几个到十几个左右,而标准键盘则一般在一百多个左右,并且每个按键都有其各自的功能含义。所以针对每一种电子设备对其键盘进行扫描程序的设计时,必须结合工程的实际情况以及设备自身的各种资源,使所设计的键盘能够很好地融合到系统中,成为其重要的组成部分。系统的发展方向是功能更强,体积更小,速度更快,功耗更低。大规模可编程器件CPLD/FPGA在集成度,功能和速度上的优势

10、正好满足通讯系统的这些要求。所以,无论是民用的移动电话,程控交换机,集群电台,广播发射机和调制解调器,还有军用的雷达设备,图像处理器,遥控遥测设备,加密通信机中,都已广泛地使用大规模可编程逻辑器件。既然CPLD在实际中如此广泛的应用,因此本人在就多了解和熟悉CPLD器件为目的,在设计中将主要使用CPLD器件。在数字电路中,如果将每个按键的输出信号连接到编码器对应的输入端,通过编码逻辑在编码器的输出端得到每个按键对应的键值,利用编码器实现按键键值的直接编码,这种键盘在早期称为编码键盘。但是,这类键盘有许多缺点如按键数量较多时编码逻辑的成本就会相对变高直接编码的方法也具有很大的局限性,编码逻辑一旦

11、固定就难以改变1。现代数字电路中,一般当按键数量较多时,我们采用扫描的方式来产生键值。用矩阵的形式连接按键,使每个按键位于行、列的相交点上,通过输入扫描信号确定所按按键的行值和列值,即位置码也称扫描码,再通过查表或译码的方式将位置码转换为按键码值,采用这类方式扫描的,我们习惯称其为“非编码键盘”。在执行键盘扫描的过程中,因大多数键盘采用的都是机械开关,所以按键在闭合时往往会出现一些难以避免的机械性抖动,输出信号随之也发生跳变,其跳变宽度一般在10ms一20ms之间。若不对其进行处理,则系统很有可能会将其误认为多次按键。因此在系统中须设置硬件延时电路,按键输入在经过一定时间的延迟后方可读取键值,

12、即键盘系统中常出现的去抖电路。还有一种情况是当前面按键键值还没输出但已近有新的按键按下时,后按的键值就会覆盖前面的键值,造成数据的丢失。这时可以在系统中设置一个控制信号,确保前一按键的键值输出后才允许后一键值的产生,又或设置一组寄存器来保存按键的键值,然后系统依序对其进行处理。这类扫描键盘的优点在于不需要主机担负扫描任务,而是由软件程序完成,其次也可通过更改程序来改变按键的功能定义。基于CPLD的键盘扫描程序,由芯片中的键盘扫描程序对键盘进行扫描,按键时,系统通过时钟模块启动扫描程序,依次对每行键值赋值来扫描每行,再通过键盘每列的输出来确定按键位置,这种扫描方法被称为逐行扫描法,当有键按下时首

13、先获得此键的列值,然后逐行扫描就可以判断按键所在的行值,由行、列的值可以得出按键的键值。此外,还需在键盘扫描程序的中加入延时程序,以消除机械键盘按键抖动所带来的影响。如果键盘的扫描频率设置过低,则在扫描显示的过程中,会出现按键显示迟缓,甚至乱码等现象。因此在实际的设计中,需根据设计要求及系统的硬件规格选择合适的扫描平率。现代数字设备中的键盘大多采用这样的键盘扫描方法的使用2。1.2 EDA的历史及发展 回顾近30年电子设计技术的发展历程,可将EDA技术分为三个阶段。 (1)七十年代为CAD阶段,这一阶段人们开始用计算机辅助进行IC版图编辑和PCB布局布线,取代了手工操作,产生了计算机辅助设计的

14、概念。(2)八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,以实现工程设计,这就是计算机辅助工程的概念。CAE的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。(3)九十年代为EDA阶段。尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。基于以上不足,人们开始追求贯彻整个设计过程的自动化,这就是EDA即电子系统设计自动化5。人

15、类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是EDA技术 EDA技术是指以计算机为工作平台,融合应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能

16、分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。数字系统设计就存在两个大的分类,即系统硬件设计和系统软件设计。早期的数字系统设计人员也因此被分为两个族群:硬件设计人员和软件设计人员,他们都只从事自己的工作领域,很少涉足对方的领域,尤其是软件设计人员。但是,随着数字技术和硬件系统的发展,这两个领域开始互相有所合作。在硬件描述语言HDL(HardwareDescriptionLanguage)出现后,数字系统的设计已无软硬件之分。设计人员可以用HDL语言来描述系统的硬件构成及其行为,并通过仿真确定其运用到系统硬件上时是否可行,设计出符合要求的硬件系统。不仅如此,利用HDL语言来设

17、计系统硬件同传统的硬件设计方法相比,具有其独特的优势,它为系统的硬件设计带来了深远的影响,是硬件设计领域的一次重要的变革。近年来EDA技术在电子领域引发的技术革命,推动着电子技术的迅猛发展,为世人所瞩目,而CPLD为代表的可编程逻辑器件的应用,更是受到业内人士的普遍关注。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计

18、和IC设计。伴随着大规模集成电路和计算机技术的高速发展,在设计工业自动化,仪器仪表,计算机设计与应用、通信、国防等领域的电子系统中,CPLD技术的含量正以惊人的速度提升。将尽可能大的完整的电子系统在单一CPLD芯片中实现已成为现实,电子类新技术项目的开发也更多地依赖于CPLD技术的应用7。程序设计是使用硬件描述语言(简称HDL),在EDA软件提供的设计想到或语言助手的支持之下进行设计。HDL设计是目前工程设计最重要的设计方法。程序设计的语言种类较多,近年来广泛使用的有ABEL、VHDL和VerilogHDL语言。本次设计,主要采用VHDL语言设计。VHDL语言是随着集成电路系统化和高集成化发展

19、起来的,是一种用于数字系统的设计和测试方法的描述语言。1.3 课题意义传统的键盘扫描是以硬件电路来确定键盘的变化,特定的硬件电路只能应用于特定的键盘,因此它存在这样一些缺点:不能根据实际应用的改变而变化,形式固定。本文所采用的技术方案能克服上述所讲的技术缺点,该键盘扫描程序是由软件控制完成,不需要改变硬件电路,就可以适用于多种不同类型的键盘。整个系统设计是自动化过程,减少了工作量,主要把精力放在创造性的方案和概念构思上,提高了工作效率,缩短了产品的研制周期。矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I

20、/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘6。2 硬件介绍2.1 51单片机简介2.1.1 51单片机的功能及引脚一、AT89S51主要功能列举如下: 1、为一般控制应用的 8 位单芯片2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)3、内部程式存储器(ROM)为 4KB4、内部数据存储器(RAM)为 128B

21、5、外部程序存储器可扩充至 64KB6、外部数据存储器可扩充至 64KB7、32 条双向输入输出线,且每条均可以单 独做 I/O 的控制8、5 个中断向量源9、2 组独立的 16 位定时器10、1 个全多工串行通信端口11、8751 及 8752 单芯片具有数据保密的功能12、单芯片提供位逻辑运算指令3二、AT89S51各引脚功能介绍:VCC:AT89S51 电源正端输入,接+5V。VSS:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之

22、间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:AT89S51的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA:为英文External Access的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8

23、751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文Address Latch Enable的缩写,表示地址锁存器启用信号。AT89S51可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S51是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为Pr

24、ogram Store Enable的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S51可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0P0.7)4:端口0是一个8位宽的开路极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个

25、LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间4。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P

26、2便不能当做I/O来使用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位8,10。PORT3(P3.0P3.7)8,10:端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:

27、P3.0:RXD,串行通信输入。P3.1:TXD,串行通信输出。P3.2:INT0,外部中断0输入。P3.3:INT1,外部中断1输入。P3.4:T0,计时计数器0输入。P3.5:T1,计时计数器1输入。P3.6:WR:外部数据存储器的写入信号。P3.7:RD,外部数据存储器的读取信号。2.1.2 51单片机在课题中的运用一、LED显示设计 LED显示设计时单片机验证CPLD中代码工作的正确性,此时单片机与CPLD相连,其接口电路原理图如图2.1所示:图2.1 单片机与CPLD连接时接口电路 此时,单片机的外部数据输出时序如图2.2所示,该时序是51单片机在执行MOVX DPTR, A时的接口

28、时序,为使协处理器接收来自单片机的数据,其必须实现:(1)在ALE下降沿锁存P0口的低8位地址和P2口的高8位地址;(2)在WR的下降沿锁存P0口的8位数据;(3)比较16位地址是否与指定的显示缓冲区地址相同,若相同,将数据存入显示缓冲区;(4)利用动态显示技术控制将缓冲区中的数据显示在数码管上。图2.2 单片机的外部数据输出时序二、矩阵键盘显示设计 为实现按键的检测,协处理器应进行以下操作:(1) 以固定周期向行线发0111、1011、1101、1110;(2) 每发完一组数据读列线,若有键按下,则在相应的列线上将读到0,若无键按下,则所有列线读到的都是1;(3) 根据从列线上读到的结果判定

29、是具体哪个键被按下,如判定有键按下则将相应的键号写入缓冲区;(4) 向51单片机发外部中断信号,等待单片机的中断相应。其中,单片机与CPLD相连,其接口电路原理图如图2.3所示。图2.3 单片机与CPLD的接口电路原理图单片机的外部数据输出时序如图2.4所示,该时序是51单片机在执行MOVX A, DPTR 时的接口时序,为使协处理器能够根据单片机的读请求发送正确数据,其必须实现:(1)在ALE下降沿锁存P0口的低8位地址和P2口的高8位地址;(2)比较16位地址是否与指定的显示缓冲区地址相同,若相同则在RD的下降沿将缓冲区的数据输出到P0口,否则输出高阻;图2.4 单片机外部数据输入时序图2

30、.2 CPLD简介2.2.1 CPLD的基本结构及特点CPLD的集成度在千门/片以上其基本结构是由与阵列、或阵列、输入缓冲电路、输出宏单元组成。其与阵列比PAL大得多但并非靠简单的增大阵列的输入、输出端口达到。阵列占用芯片的面积随其输入端数的增加而急剧增加而芯片面积的增大不仅使芯片的成本增大还使信号在阵列中传输延迟加大而影响其运行速度。所以CPLD通常是由多个类似PAL功能块组成具有很大的固定于芯片上的布线资源通过位于中心的互连矩阵连接在一起。 互连阵列要将来自I/O的信号和逻辑块的输出布线到器件内任何逻辑块的输入。一般互连矩阵有两种形式基于阵列的互连和基于多路开关的互连。基于阵列的互连是纵横

31、开关的实现方式它允许任何输入到互连矩阵中的信号布线到任何逻辑块是完全可布通的。基于多路开关的互连是对逻辑块的每个输入有一个多路转换器输入到互连矩阵的信号被连接到每个逻辑块的大量多路开关的输入端这些多路转换器的选择是可编程的。只允许其一个输入通过它进入逻辑块。所以布通率与多路转换器的输入宽度有关,宽度愈大所占面积增加性能降低。 与FPGA相比CPLD不采用分段互连方式,因而具有较大的时间可预测性,产品可以给出引腿到引腿的最大延迟时间9。此外CPLD具有很宽的输入结构,适合于实现高级的有限状态机,具有ISP性能的CPLD,可以直接在系统内对其进行编程,因而类似于具有ISP性能的SRAM查找表类型的

32、FPGA。 CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。FPGA/CPLD在数字系统设计中的广泛应用,影响到了生产生活的各个方面。在FPGA/CPLD的设计开发中,VHDL语言作为一种主流的硬件描述语言,具有设计效率高,可靠性好,易读易懂等诸多优点。作为一种功能强大的FPGA/CPLD数字系统开发环境,Xilin公司推出的系列产品,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件

33、编程,为使用VHDL语言进行FPGA/-CPLD设计提供了极大的便利12。20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD和与标准门阵列类似的FPGA ,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活,具有以下特点13: (1) 目前的 CPLD主要是基于E2 PROM或 FLASH存储器编程 ,编程次数达 1万次。其优点是在系统断电后 ,编程信息不丢失。CPLD又可分为在编程器上编程和在系统编程 (ISP) CPLD两种。 ISP器件的优点是不需要编程器 ,

34、可先将器件装焊于印制板 ,再经过编程电缆进行编程,编程、调试和维护都很方便 。 (2)CPLD是将多个可编程阵列逻辑 (PAL)器件集成到一个芯片 ,具有类似 PAL的结构。一般情况下CPLD器件中至少包含三种结构 :可编程逻辑功能块 (FB);可编程 I/ O单元 ;可编程内部连线 。 (3)在速度上CPLD优于 FPGA。由于 FPGA是门级编程 ,且 CLB之间是采用分布式互连 ;而 CPLD是逻辑块级编程 ,且其逻辑块互连是集总式的。因此 ,CPLD比 FPGA有较高的速度和较大的时间可预测性 ,产品可以给出引腿到引腿的最大延迟时间 。 (4)FPGA/CPLD软件包中有各种输入工具和

35、仿真工具,以及版图设计工具和编程器等全线产品,时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。 (5)电路设计人员使用FPGA/CPLD进行电路设计时,软件易学易用。 2.2.2 应用及发展趋势CPLD/FPGA的发展已经非常普及,在各个行业及领域都有广泛的应用,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。另外,EDA软件的功能日益强大,原来功能比较单一的软件,现在增加了很多新用途。如AutoCAD软件可用于机械及建筑设计,也扩展到建筑装璜及各类效果图,汽车和飞机的模型、电影特技等领域。 CPLD生产厂商众多,有Xilinx、Al

36、tera、Actel、Lattic、Atmel等,其中以Xilinx和Altera的产品较有代表性,Xilinx的产品称为FPGA,Altera的产品称为CPLD,他们各有特点1:(1) 同样藉由EPROM和SRAM的结构。(2) AlteraCPLD适合完成各类算法和组合逻辑,而XilinxFPGA更适合于完成时序较多的逻辑电路。(3)对于SRAM结构的产品,Altera公司的PLD的输出电流可达25mA,而Xilinx的FPGA只有16mAPLD延时时间可预测,弥补了FPGA的缺点。(4)Altera公司的FLEX10K10E系列的产品具有更大的集成度。因此,针对上述特点,结合本设计题目的

37、要求,我们采用Altera公司的CPLD芯片,3256型号,这是目前市场最为通用的一种CPLD,采用其构成的最小系统通用板,利用外围电路的拓展,可以完成许多设计员需要的电路系统功能。在EDA软件提供的设计想到或语言助手的支持之下进行设计。HDL设计是目前工程设计最重要的设计方法。程序设计的语言种类较多,近年来广泛使用的有ABEL、VHDL和VerilogHDL语言。本次设计,主要采用VHDL语言设计。VHDL语言是随着集成电路系统化和高集成化发展起来的,是一种用于数字系统的设计和测试方法的描述语言7。2.2.3 CPLD在本课题中的运用本课题选用XCR3256XL芯片,它是XilinxCool

38、RunnerXPLA3系列CPLD器件,XPLA3器件由零功率互连阵列(Zero-powerInterconnectArray,ZIA)连接起来的逻辑块构成。每个逻辑块含16个宏单元及来自ZIA的36个输入。结构与其他公司的CPLD器件大致相同,XPLA3器件与其他类型CPLD不同的是每个逻辑块内的逻辑分配及这些逻辑块的实现技术。下面对XPLA3器件的构成逐一进行介绍:(1)逻辑块:每个逻辑块包含一个PLA阵列,产生控制项、时钟项和逻辑单元。PLA阵列中共有36对来自互连阵列ZIA的互补(信号及其取非信号)输入,供给48个乘积项。在48个乘中有8个乘积项连至本地控制项,它们被用做控制输入,作为

39、每个宏单元的异步时钟、复位、置位和输出使能信号,其余的乘积项则分别作为宏单元的一个独立输入端。逻辑块中有8个适合于适配和锁定引脚的折叠反馈乘积项。逻辑块结构中有16个乘积项,通过可编程或门连至可变函数复用器,它实现了任意二输入逻辑函数送至宏单元,从而使逻辑优化更容易。每个宏单元支持组合逻辑输入、时序逻辑输入、预置和复位,可配置为D触发器、T触发器或锁存器。如果一个宏单元需要更多乘积项,它只需要从PLA阵列中取得所需的乘积项。(2)宏单元:每个宏单元均可在上电时复位或置位,且可配置成D触发器、T触发器、锁存器或实现组合逻辑功能。每个触发器的时钟均可来自8个时钟源之一,这8个时钟源包括2个全局时钟

40、、1个通用时钟、1个乘积项时钟和4个本地控制项。其中2个全局同步时钟直接由4个外部时钟引脚驱动,时钟输入信号能被单独配置成逻辑块中36个信号的乘积项或和项,每个宏单元寄存器可配置为上电时置位或复位。宏单元中有两个到ZIA的反馈路径:一个来自宏单元,另一个来自I/O引脚。当I/O引脚被用做输出引脚时,输出缓冲被使能,且宏单元反馈路径将宏单元逻辑反馈回ZIA;当I/O引脚被用做输入引脚时,输出缓冲为三态输出,且输入信号能通过I/O反馈路径反馈回ZIA。(3)输入/输出单元:输出使能OE(OutputEnable)复用器有8种可能模式,它使器件在电路中工作时不需要在不使用的引脚上加上拉电阻。输入/输

41、出单元可工作在5V电压下,且在一个摆率控制位可以有效地减小电磁干扰。输出与3.3VPCI电压兼容。 (4)简单时序模型;它包括3个参数:TPD、TSU和TCO。在其他的CPLD结构下,设计者可以将设计配置到器件中,但可能只有等到设计匹配器件后才能确定设计是否满足时序要求,这是因为其他CPLD器件的时序模型可能很复杂。(5) 摆率控制:XPLA3对每个宏单元的输出引脚有一个摆率控制。使用者可以使能摆率控制以减小电磁干扰,此时将增加2ns的标称延时16。 在本课题中具体的设计步骤如下:(1)设计编写VHDL程序,实现显示协处理器的功能,并下载程序到CPLD芯片;(2)设计单片机的测试程序,并下载到

42、单片机中;(3)测试程序结果 51显示设计中,开发板上数码管显示器与CPLD相连,其接口电路原理图如图2.5所示:图2.5开发板上数码管显示器与CPLD相连其接口电路原理图而在51单片机矩阵键盘显示设计中,开发板上4*4矩阵键盘与CPLD相连,其接口电路原理图如图2.6所示。图2.6矩阵键盘与CPLD的接口电路原理图需要注意的事项是,在开发板上,单片机的工作时钟是由CPLD提供的,因此在编写VHDL程序时应注意给单片机提供适当的时钟。3 VHDL语言及相关软件介绍3.1 VHDL简介 Very-High-SpeedIntegratedCircuitHardwareDescriptionLang

43、uage,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL语

44、言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点8。归纳起来,VHDL语言主要具有以下优点: (1)VHDL语言功能强大设计方式多样。VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时它还具有多层次的电路设计描述功能。此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;既支持模块化设计方法,也支持层次化设计方法。 (2)VHDL语言具有强大的硬件描述能力。VHDL语言

45、具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL语言的强大描述能力还体现在它具有丰富的数据类型。VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3)VHDL语言具有很强的移植能力。VHDL语言很强的移植能力主要体现在:对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植

46、到另一个工作平台上去执行。(4)VHD语言的设计描述与器件无关。采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。(5) VHDL语言程序易于共享和复用。VHDL语言采用基于库(library)的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可

47、以在以后的设计中进行复用。由于VHDL语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。3.2 ISE简介及工程设计流程ISE的全称为Integrated Software Environment,即“集成软件环境”,是Xilinx公司的硬件设计工具。相对容易使用的、首屈一指的PLD设计环境 。ISE将先进的技术与灵活性、易使用性的图形界面结合在一起,不管您的经验如何,都让您在最短的时间,以最少的努力,达到最佳的硬件设计。ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了FPG

48、A开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。设计输入:ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本编辑器,用于原理图编辑的工具ECS,用于生成IPCore的CoreGenerator,用于状态机设计的stataCAD以及用于约束文件编辑的constraint editor 等。图3.1 ISE软件的界面图 ISE建立工程的步骤如下:(1)首先打开ISE,每次启动时ISE都会默认恢复到最近使用过的工程界面。当第一次使用时,由于此时还没有过去的工程记录,所以工程管理区显示空白。选择FileNewProject选项,在弹出的新建工程对话框中的工程名称中

49、输入名称。图3.2 创建一个新工程并命名然后点击“Next”进入下一页,选择芯片、综合工具、仿真工具、代码语言再点击“Next”进入下一页,可以选择新建源代码文件,也可以直接跳过,点击“Next”,进入最后一页,此时给出了整个工程的大致属性,单击确认后,就可以建立一个完整的工程。()建立工程后,生成空的工程框架,在工程管理区会出现工程名字和器件名字。在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择“NewSource”命令,会弹出NewSource对话框。此时我们在新建工程中新建一个文件,选择VHDL模块模板文件,即VHDL Module,输入文件的名字,点击“Next”。图3.3 新文件

50、的名字和存储位置(3)定义了端口后,单击“Next”按钮进入下一步,单击“Finish”按钮完成创建。这样,ISE会自动创建一个Verilog模块的例子,并且在源代码编辑区打开。文件新建成功后,此时生成vhd格式的文件,在新建文件中添加文件代码。双击“Synthesize XST”进行综合运行仿真,运行验证程序无误后输入管脚并下载到开发板上运行。3.3 Keil C51简介及HEX格式文件创建3.3.1 Keil C51简介 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易

51、学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Softwa

52、re Inc。Keil公司制造和销售种类广泛的开发工具,包括ANSI C编译器、宏汇编程序、调试器、连接器、库管理器、固件和实时操作系统核心(real-time kernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种12。 2006年1月30日ARM推出全新的针对各种嵌入式处理器的软件开发工具,集成Keil Vision3的RealView MDK开发环境。RealView MDK开发工具KeilVision3源自Keil公司。RealView MDK集成了业内领先的技

53、术,包括Keil Vision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的 Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。Keil的网站虽然没有中文版本,但是Keil软件却被中国80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil软件。国内由米尔科技、亿道电子、英倍特提供Keil的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入

54、式解决方案提供商。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil 的优势。下面详细介绍Keil C51开发系统各部分功能和使用。C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接

55、定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中10。使用独立的Keil仿真器时,还要注意以下事项,仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其C

56、PU的/EA引脚接至低电平)的目标系统中使用。3.3.2 HEX格式文件创建 HEX格式文件创建步骤如下: (1)点击ProjectNewuVisionProject点击保存新建一个工程,然后存入文件夹(2) 选择此次使用的单片机AT89S51(3)击FileNew,新建一个源程序文本(4)写入所设计的汇编程序后命名并以ASM格式保存 (5)重新编译后生成HEX格式并保存图3.4 生成HEX格式页面3.4 Easy 51Pro简介一、Easy 51Pro编程器的组成 Easy 51Pro编程器由运行于PC机上的编程软件和下载线两部分组成。编程软件完成器件选择、下载线选择、通信协议设置、目标代码文件的读入、保存,并给出所执行操作的运行结果。下载线连接PC机与待编程单片机,用于传送器件的读、写、校验、擦除、加密等信号3。此外,在设计用户板时,还要将待编程单片机引脚中与ISP编程相关的信号线按照规定的排序接到印制板编程插座的对应位置上,才能确保编程的正确。在第五讲的硬件电路图中,J2便是其ISP编程接口。安装程序后将出现一个虚拟串口,如下图所示:图3.5 easy 软件的虚拟串口显示二、Easy 51Pr0的使用 (1)系统连接将下载线的一端接PC机的并行通信口,另一端接用户板的ISP编程接口,并接通用户板电源。 (2)编程软件的使用双击Easy 5lP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论