郑州航空工业管理学院《单片机原理与应用》课程设计说明书10 级自动化专业 1006112 班级题目51单片机大容量数据存储器的系统扩展姓名杨向龙学号100611234指导教师王义琴职称讲师二О一三年六月十日目录一、51单片机大容量数据存储器的系统扩展的基本原理 (4)二、设计方案 (4)三、硬件的设计 (5)3.1 系统的硬件构成及功能 (5)3.2硬件的系统组成 (5)3.2.1、W241024A (5)3.2.2、CPLD的功能实现 (5)3.2.3、AT89C52简介 (6)3.2.4、SRAM的功能及其实现 (9)3.3、基本单片机系统大容量数据存储器系统扩展 (9)五、结论 (13)六、参考资料 (13)51单片机大容量数据存储器的系统扩展摘要:在单片机构成的实际测控系统中,仅靠单片机内部资源是不行的,单片机的最小系统也常常不能满足要求,因此,在单片机应用系统硬件设计中首先要解决系统扩展问题。
51单片机有很强的外部扩功能, 传统的用IO口线直接控制大容量数据存储器的片选信号的扩展系统存在运行C51编译的程序时容易死机的缺点。
文中介绍了一种改进的基于CPLD的51系列单片机大容量数据存储器的扩展方法,包括硬件组成和软件处理方法。
关键字:W241024A、CPLD、AT89C52、SRAM一、51单片机大容量数据存储器的系统扩展的基本原理MCS-51 单片机系统扩展时,一般使用P0 口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16根地址总线,最大寻址空间为64KB。
但在实际应用中,有一些特殊场合,例如,基于单片机的图像采集传输系统,程控交换机话单的存储等,需要有大于64KB 的数据存储器。
二、设计方案在以往的扩展大容量数据存储器的设计中,一般是用单片机的IO口直接控制大容量数据存储器的片选信号来实现,但是这种设计在运行以C51编写的程序(以LARGE 方式编译)时往往会出现系统程序跑飞的问题,尤其是在程序访问大容量数据存储器(如FLASH)的同时系统产生异常(如中断),由于此时由IO 口控制的片选使FLASH 被选中而SRAM 无法被选中,堆栈处理和函数参数的传递无法实现从而导致程序跑飞的现象。
文章介绍一种基于CPLD 的大容量数据存储器的扩展系统,避免了上述问题的产生,提高了扩展大容量数据存储器系统的可靠性。
该系统MCU 采用89C52,译码逻辑的实现使用了一片EPM7128 CPLD 芯片,系统扩展了一片128K 的SRAM,一片4M 字节的NOR FLASH,以上芯片均为5V 供电。
第三节硬件设计3.1 系统的硬件构成及功能W241024A是128K ×8 位的静态RAM,共需17 根地址线,其A0~A7 接经CPLD 锁存输出的A0~A7,A8~A14 接89C52 的A 8 ~ A 1 4 ,A 1 5 、A 1 6 分别接C P L D 输出的S R A M _ A 1 5 、SRAM_A16;M29F032D是4M ×8 位的NOR 型FLASH,共需22 根地址线。
A0~A14 的接法与W241024A 的相同,A15~A21接经CPLD 锁存输出AL15~AL21;所有数据存储器的读写控制线与M C U 相应的读写控制线相连。
S R A M 和F L A S H 的片选信号由C P L D 内部译码产生:/ C S _ S R A M 接S R A M 的片选,/ C S _ F L A S H 接F L A S H 的片选。
3.2硬件的系统组成3.2.1、W241024AW 2 4 1 0 2 4 A 是1 2 8 K x 8 位的静态R A M,共需1 7 根地址线,其A O - A 7 接经 C P L D 锁存输出的 A O - A 7 , A 8 - A 1 4 接8 9 C 5 2 的A 8 - A 1 4 , A 1 5 , A 1 6 分别接C P L D输出的S R A M- A 1 5 , SRAM-A16; M 2 9 F O 3 2 D 是4 M x 8 位的N O R型F L A S H ,共需2 2 根地址线。
A O - A 1 4 的接法与W 2 4 1 0 2 4 A 的相同,A 1 5 - A 2 1接经 C P L D 锁存输出的A L 1 5 - A L 2 1 ; 所有数据存储器的读写控制线与M C U相应的读写控制线相连。
S R A M 和 F L A S H的片选信号由 C P L D内部译码产生: / C S - S R A M 接S R A M 的片选,/ C S - F L A S H接 F L A S H的片选。
3.2.2、CPLD的功能实现CPLD就是复杂可编程逻辑器件复杂可编程逻辑器件(CPLD)。
CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。
CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。
其中MC 结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。
由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。
使用CPLD 器件可以提高系统设计的灵活性,并且可以简化电路设计,节省很多常规电路中的接口器件和I/O 口线。
系统将单片机的地址线、各种控制和状态信号均引入CPLD,实现系统的地址译码和部分I/O 控制。
系统中C P L D 采用的是MAX7000 系列的EPM7128STC100 -10。
AL15~AL22 为系统锁存出来的高8 位地址,该地址锁存器的地址为:0x7F00;状态缓冲器地址为:0x7F20,通过状态缓冲器可以读取FLASH 的当前状态,判断FLASH 当前状态是忙还是空闲,如果应用系统中还有其它状态信号可以接至该状态缓冲器的输入端。
/CS2~/CS7 可以用作其他器件的片选。
3.2.3、AT89C52简介89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的只读程序存储器和256byte的随机数据存储器,器件采用ATMEL公司高密度\非易失性存储技术生产,与标准的51指令系统以8052产品引脚兼容,片内置通用8位中央处理器和FLASH存储单元,功能强大89C52单片机适合于许多较为复杂控制应用场合.主要性能参数:.与MCS-51产品指令和引脚完全兼容.8K字节可重擦写FLASH闪速存储器.1000次擦写周期.全静态操作:0Hz-24 Hz.三级加密程序存储器.256*8字节内部RAM .32个可编程I/O口线.3个16位定时/计数器.8个中断源.可编程串行UART通道.低功耗空闲和掉电模式功能特性概述:AT89C52提供以下标准功能:8K字节FLASH闪存存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两极中断结构,一个全双工串行通信口,片内振荡器及时钟电路.同时,AT89C52可降至0 Hz的静态逻辑操作,并支持两种软件可选的节电工作模式:空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚功能说明.vcc:电源电压.GND:地.P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
.P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流。
.P2口:P2是一个带有内部上拉电阻的双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口P2写“1”,通过内部的上拉电阻把端口拉倒高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。
FLASH编程或校验时,P2亦接收高位地址和一些控制信号。
.P3口:P3口是一组带有内部上拉电阻的双向8位I/O。
P3口输出缓冲级可驱动4个TTL逻辑门电路。
对P3口写“1”时,它们被内部上拉电阻拉高并可作为输入端口。
此时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O线外,更重要的用途是它的第二功能端口引脚第二功能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(外部数据存储器选通).RST:复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
.ALE/PROG:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于所村地址的8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外时钟或用于定时目的。
要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
.PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令时,每个机器周期两次有效,即输出两个脉冲。
在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
.EA/VPP外部访问允许。
欲使CPU仅访问外部程序存储器,EA端必须保持低电平。
.XTAL1:振荡器反向放大的及时内部时钟发生器的输入端。
.XTAL2:振荡器反向放大的输出端。
.特殊功能寄存器:在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器。
AT89C52除了与AT89C51所有的定时/计数器和定时/计数器外,还增加了一个定时/计数器2。
定时/计数器2的控制和状态位位于T2CON T2MOD,寄存器对是定时器2在16位捕捉或16位自动重装方式下捕捉/自动重装载寄存器。