联系方式

    深圳市英瑞尔芯科技有限公司

    电话:

    186 6591 0262

    E-mail:

    sally@szinter.com.cn

    地址:

    深圳市福田区振华路现代之窗A座7B

在扩展MCU功能时要明智地使用外部内存接口

发布时间:2023-07-04 08:10:00

来源:http://www.szinter.com.cn/news952892.html

  MCUS是嵌入式子系统设计中的许多关键元素,但通常需要额外的功能来实现必要的系统功能。芯片内存可能是基于MCU的设计中最受限制的元素之一。越来越多的应用程序需要比单片机更多的系统内存。特别是先进的人机界面设计需要大量的图像和音频信息,不易存储在单片机的闪存中。此外,越来越多的应用程序发现芯片RAM对需要大量数据缓冲和存储的高级通信通道的限制过于严格。

  本文将快速回顾现代MCUS上可用的一些外部内存接口。这将有助于设计师更有效地实现基于MCU的系统,需要额外的外部存储-NVM闪存或volatile SRAM/DRAM。

SDRAM的外部内存接口

  扩展存储容量所需的最明显的外部内存接口可能是大型工作SRAM。通常,MCUS芯片上的SRAM数量相对较少,应用程序通常需要比芯片上更多的工作内存。例如,高级用户界面可能需要大量的缓冲区内存来处理图形用户界面(gui),并创建视频或音频提示。压缩技术通常用于存储或传输这些数据文件,以减少本地存储或系统带宽的需求。这意味着解压这些文件可能需要大量的工作存储。通常,通信应用程序或数字信号处理应用程序需要大量的工作记忆作为缓冲存储。

  许多MCUS为控制外部SDRAM设备提供了特殊电路的外部存储接口控制器。例如,MCU强调支持SDRAM接口的关键硬件元素是NXP LPC1787单片机。图1所示的外部存储控制器外围设备有几个可编程的延迟元件,用于调整关键SDRAM信号中使用的关键接口信号的时间。例如,根据内存的需要,可以调整两个潜在的SDRAM时钟(CLKOUT1和CLKOUT2)的延迟值。此外,另一个可编程延迟调整了从内存中读取数据的时间。对于简化内存接口、董事会布局及相关信号时间来说,这样的时间调整,以及它们的范围和精度是非常重要的。

  NXP LPC1787 MCU外存储器控制器图。

   图1:NXP LPC1787 MCU外存储控制器。

  NXP LPC1787外部内存接口还包括其他几个重要的硬件特性,使外部SDRAM接口更加高效。例如,显示在框图顶部的数据缓冲区可以用作读取缓冲区、写入缓冲区或组合。作为写作缓冲区,它们允许将事务分组,以减少外部写作操作的数量,提高系统带宽,降低功耗。作为读取缓冲区,它们充当本地数据副本,因此on-chip缓冲版本可用于进一步访问同一位置。这减少了外部读取操作的数量,增加了系统带宽,降低了功耗。

  NXP内存控制器还支持RAM、ROM和Flash的静态内存接口。这是大多数现代MCU内存控制器外围设备中使用的典型方法,因为大多数硬件在应用程序和应用程序之间很常见,通常需要两种不同类型的内存。

  配备外部存储器

  通常,外部内存用于多个目的——应用程序不认为它是存储的整体“块”。为了简化应用程序编码,配置非芯片内存块来简化内存访问是非常有帮助的。硅实验室C8051F70x/71x是该技术的一个例子 MCU家庭。使用特殊的MOVX指令访问MCU外部存储器。为了使芯片和非芯片内存更容易访问,芯片上的部分内存可以映射到外部内存空间。图2显示了四种配置模式,用于将内外内存映射到外部内存地址空间。在模式1中,如图2所示,当on时,内部XRAM被映射到完整的外部内存空间-chip 当XRAM内存地址超过内存芯片时,地址“包装”。当芯片从复位中取出以避免启动问题时,没有初始化的外部内存,这可能是一种有用的模式。一旦内存接口和外部内存空间成功配置,就可以使用。如果不使用外部内存,也可以使用这种模式。

  C8051F70x/71x外部存储器配置硅实验室图像。

  图2:C8051F70x/71x外部内存配置硅实验室。

  在模式2和3中,从图2左侧的第二个和第三个,地址空间分为芯片和非芯片访问。在模式2中,银行选择将更高的订单地址位置驱动到地址总线;用户可以控制这些地址值以提供额外的灵活性。在模式3中,芯片上的银行地址自动用于驱动外部地址总线,提供了一种简单但不那么灵活的方法。在模式4中,芯片内存完全映射到图2最右侧的外部地址空间。这使得可以访问其他地址模式中可能无法访问的外部数据,从而充分利用可用内存。如果您的应用程序有几种不同类型的外部内存需求-代码、数据缓冲区、转换表或音频/视频处理,可以简化设计,使用具有地址映射和块访问特性的外部内存控制器。

外部存储器接口的灵活性

  在某些应用程序中,MCU外部内存接口可以支持多种内存类型,最小化设备pin计数。Flash是Flash的常见组合、用作工作内存的程序存储和SRAM。若在单片机上使用多个内存接口,则可在包中添加20个或更多的引脚,以增加成本、功耗和板空间需求。一些MCUS在外部内存控制器中提供了额外的灵活性,可以轻松适应各种内存设备。例如,流行的Microchip PIC18F MCU家族提供了可扩展到多种设备类型的灵活内存接口。图3显示了一种将标准闪存和标准SRAM与外部总线连接的方法。在这种情况下,单片机上使用的引脚数量最小化为一些外部组件(两个373个锁定器和一个138个解码器)。(一个更简单的实现也可能是一个只需要373锁定器的8位接口)。基于mcu的设计中最重要的元素之一是,具有这种灵活性的外部内存接口允许“保存”IOS用于其他功能,最大限度地提高pin效率。

  PIC18F微晶片 MCU外存储接口示意图。

  图3:Microchip PIC18F MCU externalmemory接口框图。

界面时间的灵活性

  除了IO互连的灵活性外,外部接口通常需要在时间上有一定的灵活性。例如,如果内存比MCU时钟周期慢,则可能需要插入等待状态。理想情况下,不同的外部内存块可以分配不同的等待状态特征。当外部接口不仅可用于标准内存时,还可用于内存映射器外围设备(如液晶显示、模拟-数字转换器和数字-模拟转换器)。Atmel ATmega MCU家庭可以将两个不同的等待状态值分配给外部内存空间。如下图4所示,内存配置A允许将外部内存分为两个风扇区域——上风扇区域和下风扇区域。风扇区域的大小可以有8个不同的值,调整上下段之间的分隔线,从0x2000增加到0xe00。

  Atmel ATmega ** 外部内存空间的图像。

  图4:Atmel ATmega ** 外部内存空间。

  将外部内存空间分为两个风扇区域,可以很容易地将等待状态值较大的设备组合在一起,并将等待状态值较小的设备组合在一起。也许最重要的是,如果一个零等待状态内存用于频繁访问的程序数据,即使慢速设备共享相同的内存总线,也可以使用零等待状态值。这样可以最小化MCU的pin需求,提高性能,节约电能。

结论

  MCUs有时需要使用外部内存接口来扩展可用的芯片内存。了解这些接口的功能可以缩短设计时间,降低成本,提高系统性能。

相关标签: