当前位置:首页 > 电源 > 数字电源
[导读]传统方案中常常采用EPROM、EEPROM和Flash存储程序,NVSRAM具有高速存取时间和与SRAM相同的接口,因而可用于存储程序。本文介绍NVSRAM如何与基于程序和数据存储的微处理器进行接口,并说明选用NVSRAM与现有的其它非易

传统方案中常常采用EPROM、EEPROM和Flash存储程序,NVSRAM具有高速存取时间和与SRAM相同的接口,因而可用于存储程序。本文介绍NVSRAM如何与基于程序和数据存储的微处理器进行接口,并说明选用NVSRAM与现有的其它非易失存储器相比具有哪些优势。

尽管EPROM、EEPROM、Flash和NVSRAM在某种程度上提供了相同特性的非易失存储方案,而在一些特殊应用中,不适当的存储器方案将会导致设计缺陷。微处理器系统选择存储器时主要面临下列问题:

1。对特定的应用,存储容量不足;

2。程序存储器需要较快的存取时间;

3。保证非易失存储的写周期次数不够大,产品工作在有效寿命的后期时存在可靠性问题;

4。扇区写入不可避免,特别是存储器的扇区大于微处理器的缓冲区时。

5。采用UV擦除方式不便于开发,一般无法满足在线编程的要求,需要特殊的附加设备,而不适当的操作会导致数据在光照下被擦除。表1列出了四种存储器的不同特点,显然,NVSRAM的综合指标最高。

EPROM的缺陷在于需要UV擦除时间,编程时需要额外的高电压Vpp和Vcc。EPROM为程序存储提供了一种可行方案,在微处理器应用中能够提供适当的接口和读时间,但由于缺少电擦除功能无法用于非易失数据存储。

EEPROM是一种较好的程序存储方案,但其有限的写周期次数和较低的写速度使其很少用于数据存储。写周期次数的限制使其在大多数应用中只能用于程序存储。

初看起来,Flash是一种很好的解决方案,它同时提供了同步和异步读功能,与EPROM和EEPROM相比具有较高的写速度。但Flash存在写周期次数有限的问题,划分后的扇区(64字节到64k字节)必须一次性写入。这意味着数据必须由微处理器高速缓冲,然后一次写入Flash器件的存储区内。如果设计中微处理器不具备足够的内部RAM,就无法缓存这些数据。在一些应用中,如数据记录仪,当电源出现故障时可能导致滞留在微处理器缓冲区的数据丢失。尽管市场上也有一些Flash器件不需要扇区写入,但产品的订货批量受限制。另外,这种产品还缺乏Flash器件标准,虽然大多数Flash器件的异步读操作与SRAM或EPROM相同,但并非所有器件都是如此,而且,写接口标准较多,当产品更新换代无法支持相应的标准时将限制器件的实际使用寿命。另外,还需保证写操作不要超出最大写周期次数,因为当器件达到有效寿命时将开始出现随机存储误码。有些Flash存储器需要提供额外的编程电压(大于13V)以保证快速写模式,因而增加了系统成本,而寻找容量低于1Mb的Flash也比较困难。

NVSRAM可提供16kb至16Mb的存储容量,存取时间高达70ns。读、写接口均与SRAM保持一致,标准Vcc条件下NVSRAM与同等速度SRAM的操作完全相同。无需担心存储数据分区问题,数据存储位置与标准SRAM相同。电源失效时(Vcc跌落到标准工作电压以下),内部电路将片选(CE)信号置位,使存储器处于写保护状态、并切换电源以便保持数据。电源恢复正常后,NVSRAM恢复微处理器对CE信号的控制,SRAM电源切换到Vcc。CE信号被切换的瞬间只要微处理器控制信号没有处于写有效状态(CE为高)就不会丢失数据。

由于工作状态下NVSRAM与SRAM兼容,可以用速度相符的NVSRAM简单地替代任何微处理器系统的SRAM,这种替代仅有的制约是需要了解电源所能提供的电流。Dallas半导体建议采用CPU监控电路以保证微处理器在NVSRAM就绪之前处于复位状态。微处理器复位状态下,绝大多数总线控制信号(CE、WE、RD)处于禁止状态,能够避免NVSRAM在有效期内数据不丢失。Maxim提供多种CPU监控电路,完全胜任这项工作,配合其它与复位信号相关的功能就能保证系统更加可靠工作。

图1是利用单片NV

SRAM存储程序和数据的典型电路,该电路的主要优点是节省了元器件数,充分利用了存储器空间。如果微控制器仅占用32kB存储空间的1kB存储程序,则其余31kB可用于非易失数据存储。32kB的存储容量足以满足许多应用场合,如果对程序和数据分别采用两类存储器将造成不必要的浪费,而且将迫使设计人员选用更大容量的存储器。

利用NVSRAM存储数据

NVSRAM非常适合在微控制器系统中存储校准信息、记录数据等。如上所述,与SRAM工作在相同速度的NVSRAM采用标准的Vcc电源,NVSRAM在读、写操作时不需要延长时钟周期,除非与高速DSP或先进的微控制器配合使用。

绝大多数微控制器、包括8051系列产品,均提供程序存储器和外部RAM的控制信号,图1表明了如何利用这些现有的控制信号产生一组新的单片NVSRAM控制信号,同时用于程序和数据存储。图2表示3V系统中如何利用现存的控制信号对两片独立的存储器寻址,主要区别是PSEN用于程序存储器输出使能控制,8051的RD信号(P3。7)用于数据存储器的输出使能控制。当两个存储器输出同时驱动到总线时,会导致总线冲突;另一种出现总线冲突的可能是微控制器将数据输送给NVSRAM的时候,外部存储器受指令控制输出数据。这些情况都需要在设计中慎重考虑,以避免总线冲突。

针对这种设计需要说明两点:首先,程序存储器必须始终加写保护;其次,数据存储器的可寻址空间可能大于微处理器寻址空间。

当NVSRAM的WE引脚置为高电平时,不能写入任何数据,因此,需利用存储器编程器对该引脚进行编程。BPMicrosystems和DataI/O编程器几乎支持所有Dallas半导体的NV

SRAM。当采用编程器进行器件编程时,注意在把器件安装到电路之前要避免器件受ESD冲击,因为ESD冲击会造成器件中的数据丢失。一旦器件在保证数据正确的前提下装入线路板,NVSRAM将有效保证数据的完整性。[!--empirenews.page--]

如果需要寻址更多的数据存储器,只需在微处理器的数字接口简单地添加高位地址线即可,图中所示的8051支持64kB(A0-A15)的寻址空间,最高5位地址线(A16-20)和片选引脚可用于选择64kB存储器页,对于编程器而言采取读、写子程序能使大容量存储变得完全透明。上述操作不适用于程序存储器,由于微处理器取代码时不允许页选择,它按照16位地址取指令,可能选择错误的页码。如果图1选用DS1245,则只能寻址到一半的数据。如果用A16建立第二页存储器,当存取第二页的数据时会导致微控制器取第二页的指令。

具体设计中需注意以下事项

1。检查总线时序

控制信号是否提供了足够的读、写时间,要特别注意系统的时钟速率,因为控制信号的时序总是取决于时钟速率。如果总线控制信号速度过高,大多数微处理器能够展宽时钟,降低数据存储速率。

2。确认总线控制信号在上电或掉电时的状态

如果Vcc高于门限电压时CE=WE=0,当前地址的数据在没有正常写操作的情况下将被破坏。如果系统仅对本地可寻址空间寻址,要确保总线控制信号在复位状态处于禁止状态、保证数据不被破坏。当采用扩展寻址时,需保证I/O信号控制CE和WE在上电或掉电状态下均处于高电平。利用CPU监控电路能够保证微处理器在NVSRAM处于电池备份模式时不会访问NVSRAM。这时模块内的片选信号为高电平,与外部CE信号无关,模块内的SRAM将拒绝任何外部访问。

微处理器利用NVSRAM存储程序

利用NVSRAM存储程序时有两点值得特别考虑:1。NVSRAM必须具有足够快的存取速率、不需要降低时钟速度。2。Vcc低于电压监视门限时,不能访问NV

SRAM。微处理器必须在每个机器周期取指令(通常每个机器周期占用一个以上的时钟周期),如果程序存储器速度较慢、需降低时钟速率以符合存储器存取速率的要求。显然,这种情况制约了系统性能。目前,5V高速NVSRAM的存取时间可以达到70ns,3。3V的NVSRAM可以达到100ns,能够符合大多数应用的要求。

利用复位门限接近Vcc的CPU监控电路能够避免微处理器在NVSRAM就绪之前对其进行读、写操作,此外,Vcc噪声有可能导致电压瞬间跌落至Vcc门限以下,造成器件在瞬间干扰时无法读取。鉴于这一点,建议在靠近模块的Vcc引脚安装去耦电容。由于市场上可以很容易找到5%电压容差的CPU监控芯片,因此,采用电压容差为10%的NVSRAM可简化设计,现有的3。3V和5V的器件均可满足这种要求。

如上所述,NVSRAM不适合作便携数据的载体,当器件脱离具有实际意义的电路时容易丢失数据。最好是在线进行器件编程,为解决嵌入式系统的在线编程问题,可以简单构建一个导入装载器,流程如图3所示。

导入器在切换存储器(从微控制器的内部EPROM切换到外部NVSRAM)时工作,存储器内部电路通过RS232端口接收数据,将数据复制到适当地址的NVSRAM内。实现该流程的简单数据格式是Intel的十六进制文件格式,因为这种对数据和数据地址的编码格式是许多汇编语言采用的标准文件格式。EA引脚置“1”,选择内部存储器,此时PC机可以通过一个RS232串口给微控制器发送数据。微控制器将代码写入NVSRAM后即可关闭电源、清EA引脚,当再次上电时微处理器便开始执行存放在NVSRAM内的代码。一旦完成了最初的硬件和软件开发,就可以方便地进行快速编程,大大缩短产品开发周期。这种方案的缺陷是对于不同产品的开发必须保持固定的晶振频率,以保证串行端口的波特率能够由PC机软件调节。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

2025年9月11日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起开售Microchip Technology的新型MCP16701电源管理集成电...

关键字: PMIC 工业物联网 微处理器

在工业物联网设备部署中,Modbus通信故障是导致系统停机的首要原因之一。据统计,超过60%的现场问题源于通信配置错误或数据解析异常。本文从嵌入式系统开发视角,系统阐述Modbus通信调试的方法论,结合实际案例解析如何高...

关键字: 嵌入式系统 Modbus通信

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

现代社会对计算能力的需求日益增长。人工智能 (AI) 的飞速发展推动了数据量的爆炸式增长,包括数据的创建、处理和存储。AI已渗透到现代生活的方方面面,从汽车到购物方式无所不在。在工业领域,边缘计算改变了制造业,创造了一个...

关键字: 微处理器 电源 人工智能

人工智能(AI)和机器学习(ML)是使系统能够从数据中学习、进行推理并随着时间的推移提高性能的关键技术。这些技术通常用于大型数据中心和功能强大的GPU,但在微控制器(MCU)等资源受限的器件上部署这些技术的需求也在不断增...

关键字: 嵌入式系统 人工智能 机器学习

Zephyr开源项目由Linux基金会维护,是一个针对资源受限的嵌入式设备优化的小型、可缩放、多体系结构实时操作系统(RTOS)。近年来,Zephyr RTOS在嵌入式开发中的采用度逐步增加,支持的开发板和传感器不断增加...

关键字: 嵌入式系统 软件开发 实时操作系统 Zephyr项目

在资源受限的嵌入式系统中,代码执行效率和内存占用始终是开发者需要权衡的核心问题。内联函数(inline functions)和宏(macros)作为两种常见的代码展开技术,在性能、可维护性和安全性方面表现出显著差异。本文...

关键字: 内联函数 嵌入式系统

在嵌入式系统和服务器开发中,日志系统是故障排查和运行监控的核心组件。本文基于Linux环境实现一个轻量级C语言日志库,支持DEBUG/INFO/WARN/ERROR四级日志分级,并实现按大小滚动的文件轮转机制。该设计在某...

关键字: C语言 嵌入式系统

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发
关闭