新闻中心

EEPW首页 > EDA/PCB > 设计应用 > ATmegal28扩展512KB掉电保护SRAM方案

ATmegal28扩展512KB掉电保护SRAM方案

作者:时间:2008-02-16来源:

  如今,电子技术发展迅猛,尤其是单片机已广泛地应用于通信、交通、家用电器、便携式智能仪表和机器人制作等领域,产品功能、精度和质量均有大幅度提高,且电路简单,故障率低,可靠性高,价格低廉。在单片机的某些应用中,如果不对系统的外部SRAM进行扩展,就不能满足系统设计的要求。因此如何扩展、扩展什么类型的芯片、扩展的容量多大就成为值得考虑的问题。这个问题解决的好与坏直接关系到项目的成败。本文介绍在AVR ATmegal28中如何实现扩展掉电数据不丢失的512 KB SRAM的方案。

本文引用地址:http://www.eepw.com.cn/article/78882.htm

  1 系统硬件结构

  单片机采用的是Atmel公司生产的ATmegal28,其引脚排列如图l所示。ATmegal 28单片机为基于AVR RISC结构的8位低功耗CMOS微处理器,凭借先进的指令集以及单周期指令执行时间,其数据吞吐率高达1MIPS/MHz,可以缓解系统的功耗和处理速度之间的矛盾。AVR单片机内核具有丰富的指令集和32个通用工作寄存器,所有的寄存器都直接与算术逻辑单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的复杂

  指令集微处理器高10倍的数据吞吐量。ATmegal28单片机内置:128 KB的在系统可编程Flash程序存储器,具有在写的过程中还可以读的能力,即同时读写(RWW);4 KB的EEPROM;4 KB的SRAM;53个通用I/O端口线;32个通用工作寄存器;实时时钟(RTC);4个灵活的具有比较模式和PWM功能的定时器/计数器(T/c);2个UJSART;面向字节的两线接口(TWI);8通道10位ADC;可选的可编程增益;片内振荡器的可编程看门狗定时器;串行外围设备接口(SPI);与IEEEll49.1规范兼容的JTAG测试接口,此接口同时还可以用于片上调试;6种可以通过软件选择的省电模式。

  

 

  SRAM接口电路由锁存器74AHC573D和BS62LV1006SIP55组成,如图2所示。XRAM接口的工作频率很高,当系统的工作条件高于8 MHz@4 V(4 V电源电压,8 MHz工作频率)和4 MHz@2.7 V(2.7 V电源电压。4 MHz工作频率)时,要小心地选择地址锁存器。此时,典型的74HC系列锁存器已经无法满足要求。XRAM接口与74AHC系列的锁存器相兼容。BS62LV4006SIP55是BSI的高效率、低功耗CMOS静态随机访问存储器,能适应2.4~5.5 V的大范围工作电压,具有典型CMOS的高效率低功耗特性;在3.0V/25℃的条件下电流为0.25μA,在3.0V/85℃的条件下,最长访问时间为55 ns。通过片选CE信号、输出使能OE信号和三态输出驱动,可以很方便地进行SRAM扩展。当BS62LV4006SIP55处于未片选状态时,它具有自动降低功耗的特性。

  

 

  掉电数据保护电路由SA56600-42D接口电路、DS1302ZN接口电路和预警比较电路组成,电路原理图如图3所示。SA56600-42D是Philips公司生产的为保护SRAM中数据的集成芯片;DS1302ZN则是DALLAS公司生产的实时时钟(RTC),但它还具有可编程控制的充电器的功能,通过第8脚能为锂电池进行控制充电;预警比较电路有保护现场数据的作用,当外部电压低于10V时,模拟比较器就会触发中断,从而把现场数据保护到外扩SRAM或EEPROM中。

  

 

  2 工作原理

  在主函数main()中,对I/O口、计时器、A/D转换器、模拟比较器、RTC DSl302和外扩SRAM等进行初始化。对外扩的SRAM进行访问时,通过PD5~PD7确定页面地址,再根据A口、C口的第二功能访问外部SRAM的指定地址,这部分在程序清单中有简单的例子。有一点要注意,外部存储器映射到内部存储器之后,在缺省条件下MCU只能访问每页的60 KB外部存储器(地址0x0000~0xlOFF为内部存储器所保留)。然而,可以利用屏蔽高位地址的方法来访问整个64 KB外部存储器。这点对于跨页访问要特别注意。

  在计时器中断程序中,每隔一段设定的时间就要调用一次A/D转换,以获得锂电池的电压。在A/D中断处理函数中对获得的锂电池电压进行处理。如果获得的锂电池的电压低于一个设定的值,则调用DSl302的90H命令对锂电池进行充电;如果锂电池电压高于设定的值,则调用DSl302的91H命令,获得寄存器对应TCS3~TCSl位的值,判断DS1302是否对电池充电。如果在充电,就凋用DSl302的90H命令,结束对电池充电。

  当预警比较电路中ATNl的电压低于AIN0时,触发模拟比较器中断。在此中断处理函数中把内部SRAM的数据备份到外部的SRAM或者EEPROM中,从而防止因外部电源掉电造成数据丢失。

  当外部电源掉电或恢复供电时,SA56600-42D会自动切换外扩SRAM的供电。在外部电压低于4.2 V时,SA56600-42D会使外扩SRAM处于未使能状态,使SRAM不能访问;在外部电压低于3.3 V时,SA5660042D会自动切换到锂电池为外扩SRAM供电,达到保护外扩SRAM中数据的同的;在外部电压高于4.2 V时,SA56600-42D会自动切换到主电源为外扩SRAM供电。

  3 本系统的优点

  ①使用高性能RISC架构的AVR ATmegal28单片机,从硬件上克服了传统单片机在处理能力、外围接口能力上的不足,可以实现复杂的程序控制。

  ②外扩SRAM达到512 KB,突破了传统的64KB寻址范围的限制。这对单片机来说有很重要的现实意义。

  ③外扩SRAM且实现掉电数据保护功能。相对于扩充EEPROM的系统,本系统的反应要快很多。

  ④应用本方案,在某些应用方面就不需要使用ARM微处理器,从而达到降低系统成本和开发难度的目的。

  程序清单见本刊网站www.mesnet.com.cn——编者注。

  结语

  采用本系统的扩展外部SRAM的方案,既能保证系统的响应速度,又能保证数据的安全性。本设计方案具有硬件结构简单、成本低等优势,在显示、语音、交通控制和智能化停车场管理系统等方面,具有一定的参考价值。经在某停车场智能管理系统中的实际运行,证明该设计方案是成功的。



关键词: ATmegal28 SRAM

评论

技术专区

关闭