种改进的51单片机大容量数据存储器的系统扩展 - Read

种改进的51单片机大容量数据存储器的系统扩展 - Read

ID:40893026

大小:18.51 KB

页数:3页

时间:2019-08-10

种改进的51单片机大容量数据存储器的系统扩展 - Read_第1页
种改进的51单片机大容量数据存储器的系统扩展 - Read_第2页
种改进的51单片机大容量数据存储器的系统扩展 - Read_第3页
资源描述:

《种改进的51单片机大容量数据存储器的系统扩展 - Read》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、种改进的51单片机大容量数据存储器的系统扩展摘要:在51单片机应用系统中,有一些特殊的应用场合需要使用大容量的数据存储器。传统的用I/O口线直接控制大容量数据存储器的片选信号的扩展系统存在运行C51编译的程序时容易死机的缺点。文中根据作者实际使用的应用系统,介绍了一种改进的基于CPLD的51系列单片机大容量数据存储器的扩展方法,包括硬件组成和软件处理方法。实践证明基于这种设计的大容量数据存储器的扩展系统具有对存储器操作简便,系统运行稳定的特点。关键词:单片机;CPLD;大容量数据存储器引言MCS-51单片机

2、系统扩展时,一般使用P0口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16根地址总线,最大寻址空间为64KB。但在实际应用中,有一些特殊场合,例如,基于单片机的图像采集传输系统,程控交换机话单的存储等,需要有大于64KB的数据存储器。在以往的扩展大容量数据存储器的设计中,一般是用单片机的IO口直接控制大容量数据存储器的片选信号来实现,但是这种设计在运行以C51编写的程序(以LARGE方式编译)时往往会出现系统程序跑飞的问题,尤其是在程序访问大容量数据存储器(如FLASH)的同时系统产生

3、异常(如中断),由于此时由IO口控制的片选使FLASH被选中而SRAM无法被选中,堆栈处理和函数参数的传递无法实现从而导致程序跑飞的现象。文章根据作者实际使用的应用系统,介绍一种基于CPLD的大容量数据存储器的扩展系统,避免了上述问题的产生,提高了扩展大容量数据存储器系统的可靠性。该系统MCU采用89C52,译码逻辑的实现使用了一片EPM7128CPLD芯片,系统扩展了一片128K的SRAM,一片4M字节的NORFLASH,以上芯片均为5V供电。下面介绍其硬件组成及软件处理方法。系统的硬件组成系统的硬件组成

4、W241024A是128K×8位的静态RAM,共需17根地址线,其A0~A7接经CPLD锁存输出的A0-A7,A8-A14接89C52的A8-A14,A15、A16分别接CPLD输出的SRAM_A15、SRAM_A16;M29F032D是4M×8位的NOR型FLASH,共需22根地址线。A0-A14的接法与W241024A的相同,A15~A21接经CPLD锁存输出的AL15~AL21;所有数据存储器的读写控制线与MCU相应的读写控制线相连。SRAM和FLASH的片选信号由CPLD内部译码产生:/CS_SRA

5、M接SRAM的片选,/CS_FLASH接FLASH的片选。CPLD的功能实现使用CPLD器件可以提高系统设计的灵活性,并且可以简化电路设计,节省很多常规电路中的接口器件和I/O口线。系统将单片机的地址线、各种控制和状态信号均引入CPLD,实现系统的地址译码和部分I/O控制。系统中CPLD采用的是MAX7000系列的EPM7128STC100-10。AL15-AL22为系统锁存出来的高8位地址,该地址锁存器的地址为:0x7F00;状态缓冲器地址为:0x7F20,通过状态缓冲器可以读取FLASH的当前状态,判断

6、FLASH当前状态是忙还是空闲,如果应用系统中还有其它状态信号可以接至该状态缓冲器的输入端。/CS2-/CS7可以用作其他器件的片选。128K的SRAM被SRAM_A15和SRAM_A16分成4个BANK,每个BANK均为32K,其中BANK0地址范围是:0x0000~0x7EFF,当A15为0时BANK0被选中,BANK0可用来存储用户定义的各种变量,以LARGE方式编译的C51用户函数的参数传递也在该区实现,只要设置C51编译器的片外SRAM的大小为0x7F00字节(32K-256字节),起止地址为:0

7、x0000。这样当系统在访问外部大容量数据存储器(如4M的FLASH)并且系统产生中断时,由于系统在函数调用时自动使A15为0,故此时BANK0是可用的,这样保证了系统在这种情况下能稳定的运行。由于访问BANK1-BANK3时A15必须为1,故BANK1-BANK3的地址范围均为:0x8000~0xFEFF,通过SRAM_A15和SRAM_A16来区分它们是属于哪个BANK的,访问BANK1-BANK3的前提是AL22为0。BANK1-BANK3可用来存储用户数据。当AL22和A15均为1时4M的FLASH

8、被选中,FLASH被AL15-AL21分成了128页,每页为32K。下面介绍访问大容量数据存储器的软件实现。软件处理方法如用KEIL编译C51程序时,首先设置项目的编译模式为LARGE模式,并设置片外XRAM的相关参数为:START:0x0000,SIZE:0x7F00。访问BANK0时无需编写子程序,系统可以直接访问。访问SRAM的BANK1-BANK3步骤为:①锁存高8位地址使AL22为0,设置BANK值(要

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。