微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于SPIFI外设的Cortex-M MCU嵌入式闪存选型解决方案

基于SPIFI外设的Cortex-M MCU嵌入式闪存选型解决方案

时间:12-18 来源:互联网 点击:

存空间可以映像到MCU内存中,微控制器对外部闪存直接访问,无需使用软件API或库。

例如,使用四通道SPI闪存,SPIFI外设传输速率可达40Mb/s。设计人员可以选择更便宜的SPI闪存器件,在保证性能的基础上缩小脚位尺寸,简化配置。由于系统无需针对外部并行闪存使用庞大的接口设计,设计人员还可以选择体积更小、成本更低的微控制器。嵌入式系统采用SPIFI外设可以提高内存资源利用率,缩小尺寸,提高效率,降低系统总成本。

SPIFI外设是恩智浦LPC1800系列ARM Cortex-M3微控制器率先采用的一种专用技术。此外,即将面市的新产品还包括低成本Cortex-M0系列和Cortex M4数字符串行控制器(DSC)。

SPIFI支持目前市场上大部分串行闪存器件(含四通道读/写产品),配置编程非常简便,采用4/6引脚设计(取决于串行闪存类型),支持小型寄存器组,优化内存事务,其软件指令可降低CPU开销,提高内存数据交换效率。

SPIFI工作原理

图2给出了SPIFI外设的功能框图。SPIFI功能块与微控制器应用的高速总线(AHB)矩阵连接,后者主要用于处理器内核和片上内存。SPIFI将外部SPI闪存内容映射到微控制器内存中。当片上ROM启动代码激活SPIFI接口后,外部SPI内存与核心处理单元上的片上内存功能完全相似。

图2:SPIFI外设功能框图。

初始化序列

SPFI接口的所有驱动程序全部保存在ROM中。对于读取操作,只需一个例程调用指令即可启动SPIFI外设。初始化序列结束后,整个SPI闪存可以象正常内存一样由处理器和/或DMA通道按字节、半字、整字访问。擦除和编程通过简单的API指令访问ROM命令调用即可,因此,使用外部SPI闪存与片上内存几乎没有差别。

从SPIFI启动

对于需要微控制器从外部串行闪存启动的系统,恩智浦LPC1800微控制器已配置了SPIFI启动功能。启动源的选择有两种方法:第一种是使用微控制器引脚确定启动源的接口;第二种由用户在非易失性内存中编程选择启动接口。使用非易失性内存编程可保留引脚的双重功能。

物理接口

图3给出了SPIFI外设的物理接口。本示例对于传统SPI闪存采用了标准的4引脚配置,如果是四信道SPI闪存,还需要增加两个引脚以支持四信道功能。

图3:SPIFI外设物理接口。

不同的串行闪存厂商和产品需要不同的命令和命令格式。SPIFI外设为此提供了足够的支持,可兼容大部分SPI闪存及衍生产品,确保今后产品的兼容性。

小寄存器组

SPIFI外设小寄存器组既保证了接口的功能又简化了操作,通过8个寄存器控制SPIFI功能,连接外部SPI闪存,保存和检索数据以及监控操作。由于设置、编程、擦除等工作均由集成的ROM API处理,因此外部SPI内存操作只需要几个简单的调用命令。总体来看,SPIFI外设配置简单,应用方便。

软件命令

当软件读取内存映射的串行闪存内容时,外部闪存可以识别并接受微控制器软件发送的和SPIFI外设自动发送的命令。这些命令可分为操作代码、地址、中间和数据等字段,其中。地址、中间和数据字段为可选字段,这主要取决于操作代码。部分闪存支持“读”命令解释操作代码模式,以提高系统性能。根据操作代码不同,数据字段可进一步分为输入和输出数据字段。所有发送到外部SPI闪存的命令都可以通过调用ROM API指令进行处理。SPIFI ROM API驱动器允许通过简单的加载命令访问外部SPI闪存内容,保证应用操作代码延续其紧凑和易写的特点。

独立于CPU的运行

SPIFI软件可读取外部闪存数据,并将其写入RAM或外设,无需CPU支持。比如,对于集成LCD控制器的微控制器,此功能可以提高系统性能,节约功耗。外部闪存可以保存图像并通过LCD控制器读取。由于LCD控制器大多数按地址顺序读取数据,SPIFI外设可根据需要预先获取地址,无需等待。整个操作无需CPU参与,也不用将图像加载到片上RAM,而由LCD控制器直接获取。因此,系统对微控制器片上RAM的容量要求不高,或者可将现有RAM释放出来用于完成其他任务。由于LCD控制器直接获取图像,LCD显示屏图像刷新速度更快,简单的开关窗口等操作显得更加平滑流畅。另外,为降低功耗,系统还可以使用低时钟速率运行,不会对显示性能有太大影响。

直接执行代码

从软件的角度看,微控制器可以直接执行外部SPI闪存中的代码。直接执行代码有利于在线升级或者更新片上闪存的出厂功能。外部闪存可以存放通过验证的升级代码。例如,如果系统功能地址保存在片上闪存的表单中,通过外部闪存的例程地址即可对该表单重新编程。或者,如果包含原始例程起始信息的内存页保存在片上闪存中,通过外部分支长跳转到外部闪存的新例程即可更新内存页。对于上述两例,由于SPIFI外设可以实现外

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top