片外FIash存储器IAP的n种方案

最新更新时间:2013-09-06来源: 互联网关键字:片外FIash  存储器  IAP 手机看文章 扫描二维码
随时随地手机看文章

引 言

  以ARM芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。包括工业控制领域、无线通信领域、网络应用、消费电子、成像和安全产品等,如今,ARM微处理器及嵌入式技术的应用几乎已经渗透到了各个领域。其中ARM7作为ARM微处理器系列中的一员,是低功耗的32位RISC处理器。Samsung公司的S3C4510B、Philips公司的LPC20XX、LPC21XX、LPC22XX系列等都是ARM7处理器。这些为数繁多的ARM7处理器,因其片内外设不同而各擅所长,但都应用同样的ARM7TDMI核(或ARM7TDMI—S核,这是ARM7TDMI的综合版本,这两种核对处理器应用人员来说没有区别)。可以说,ARM7TDMI是目前使用最为广泛的32位嵌入式RIsc处理器。ARM7TDMI核应用冯·诺依曼结构,处理器使用的存储器中数据和程序指令不予区分,PC寄存器指向的存储器单元,无论是ROM区还是RAM区,只要符合ARM指令的格式都可以执行,这就为系统自修改提供了可能。在应用编程IAP(InApplicatAion Program)就是这样的自修改程序。它先在RAM存储器中写人数据值,然后使PC指向该存储段,把该段作为程序段来执行。很多ARM7芯片自带IAP处理器,应用其自带的IAP处理器可以方便地对其片内集成的Flash存储器进行在应用编程,但几乎所有的ARM核芯片均不支持片外IAP处理,因为片外Flash存储器是用户选型的,芯片生产厂家无法先知先觉,而不同Flash存储器其编程时序也不尽相同,导致芯片生产厂家无法提供通用的IAP代码。那么,如何对嵌入式系统的片外Flash存储器进行在应用编程呢?这里分两种情况:一是普通代码存放在片外单独1片Flash中,IAP代码在另一片Flash中完成,此时只要依据Flash的操作时序执行IAP代码,完成擦除或写入操作即可。这种情况虽然简单,但应用了2片Flash;而IAP代码很小,一般完全可以集成到1片中,所以这里对这种情况不予考虑。另一种情况是1片Flash中既要存储普通代码,又要实现IAP。下面以Phnips公司的LPC2210 和 Silicon storage Technology 公司的SST39VFl60为例,详细讨论这种情况IAP的解决方案。

  1 硬件结构

  1.1 LPC2210介绍

  Philips公司的LPC22lO是一款基于支持实时仿真和嵌入式跟踪的16/32位ARM7TDMI-SCPU的微控制器。芯片采用144脚封装,有16 KB片内静态RAM,开放外部总线;通过外部存储器接口可将外部存储器配置成4组,每组的容量高达16 Mb,数据宽度8/16/32位均可;具有多个32位定时器、8路lO位PWM输出、多个串行接口(包括2个16C550工业标准UART、高速I2C接口和2个sPI接口)以及9个外部中断、多达76个可承受5 V电压的通用I/O口,同时内嵌实时时钟和看门狗,片内外设功能丰富强大;片内晶振频率范围l~30 MHz,通过片内PLL可实现最大为60 MHz的CPU工作频率,具有2种低功耗模式——空闲和掉电,通过外部中断将处理器从掉电模式中唤醒,并可通过个别使能/禁止外部功能来优化功耗。以上特性,使其特别适用于工业控制、医疗系统、访问控制和POS机,同时也非常适合于通信网关协议转换器,嵌入式软Modem,以及其他各种类型的应用。

  1.2 SST39VFl60介绍

  Silicon StoraLge Technology公司的SST39VFl60是一个lM×16b的CMOS多功能Flash器件,单电压的读和写操作,电压范围3.O~3.6 V,提供48脚TSOP和48脚TFBGA两种封装形式。

  该器件主要操作包括读、字编程、扇区/块擦除和芯片擦除操作。擦除和字编程必须遵循一定的时序,表l列出了扇区擦除和字编程过程及时序。擦除或编程操作过程中读取触发位DQ6将得到“1”和“O”的循环跳变;而操作结束后读DQ6,得到的是不变的固定值。这是器件提供的写操作状态检测软件方法。

  1.3 硬件连接

  SST39VF160作为系统的程序存储器,以LPC2210的CSO作为Flash的片选信号,处理器配置Boot引脚为16位数据总线宽度后,上电可直接执行SST39VFl60中代码。此Flash芯片为16位数据宽度,无字节控制总线,所以应用中不使用LPC2210的BLS引脚。系统结构示意图如图l所示。

  

  2 软件实现

  2.1 IAP实现要点分析

  在嵌入式应用系统中,通常要求记录一些现场的传感、交互输入数据,通常把数据记录在Flash存储器中,以便下次上电能获取以前的数据。如果系统程序和数据分开存储,那么只要对存放数据的Flash器件进行编程即可。然而大多数嵌入式系统,程序和需保存的数据都共存于同一Flash存储器中,那么是否也如前所述,可对Flash存储器直接编程呢?理论和实践都表明不可以。先从理论上计算:LPC22lO允许的芯片核工作频率(CCLK)范围是10~60 MHz,存储器读访问长度由存储器组配置寄存器BCFG中读访问的长度域控制WSTl控制,其最大可用长度为35个CCLK,而SST39VFl60的扇区擦除典型时间为18 ms。下面是计算算式:

  TRDmax=RDLenmax/CCLKmin=35/10×10一6=3.5 μs

  .TD=18 ms》3.5μs

  其中:TRDmax—最大读访问时间;

  RDLenmix——最大读访问可用长度;

  CCLKmin——最小核工作时钟频率;

  Tp——扇区擦除典型时间。

  算式得出扇区擦除典型时间远大于最大读访问时间。这样一来,如果再给某Flash写数据,同时于其中预取指,那么因F1ash在执行命令期间,对其他操作不响应,预取出的必定是其数据引脚上的不确定数据,预取指失败。实践也表明,如果在程序执行过程中,对同一Flash进行扇区擦除,必定引起预取指中断。

  为了解决在同一Flash芯片存放程序并IAP这一问题,引进代码重映射的思想。所谓重映射就是代码先自复制到指定存储区,然后跳转到指定区的起点开始执行。这里,lAP程序先自复制到LPC2210片内SRAM中,然后跳转到SRAM执行lAP代码。前面说过,ARM7为冯·诺依曼结构,这就为IAP程序重映射提供了可能。

  编写可重映射代码的关键是要解决程序中相对偏移的问题,ARM7指令系列中涉及相对偏移的指令主要有LDR/STR以及跳转指令。这里的解决方案是:凡涉及偏移值的指令通通采用基址变址寻址方式,以PC寄存器作基址寄存器,以立即数为变址,这样当程序块整块移动时,要加载的数据或跳转的地址与当前Pc值的偏移值固定,解决了相对偏移问题。

  2.2 扇区擦除

  事先编程在Flash中的程序先自复制到SRAM指定的位置,然后,赋PC为SRAM中扇区编程代码段的起点ERASEPART。程序于SRAM中的ERASEPART起点开始执行,按照SST39VF160扇区擦除的时序要求开始擦除。按照ARM公司提出的ATPCS规定,C语言程序调用汇编程序时,寄存器R0一R3传递参数,返回值由寄存器RO传递原则,扇区擦除程序的一个参数,要擦除的扇区号,由RO传递;返回参数置于R0,扇区擦除成功返回“1”,否则返回“0”。

  2.3 字编程

  程序于SRAM中的PROGRAMPART起点开始执行,按照SST39VFl60字编程的时序要求开始编程。入口参数有三个,依次为编程地址、数据起始地址、编程数据长度。字编程成功返回“1”,否则返回“0”。

  3 结论

  在嵌入式应用系统中,IAP是极为有效的一种技术。根据本文提出的方案,在实际应用中只需针对选用的Flash,更改特定的擦、写操作代码就可实现系统片外存储器的在应用编程。文中提出的IAP代码重入到SR—kM执行的方法,有效地解决了应用无片内程序存储器的32位ARM处理器的嵌入式系统IAP难题,有很大的应用价值。

关键字:片外FIash  存储器  IAP 编辑:神话 引用地址:片外FIash存储器IAP的n种方案

上一篇:解读虚拟存储的三大技术方向
下一篇:移动存储器全面解析

推荐阅读最新更新时间:2023-10-12 20:47

示波器触发是什么_示波器触发的作用
任何示波器的存储器都是有限的,因此所有示波器都必须使用触发。触发是示波器应该发现的用户感兴趣的事件。换句话说,它是用户想要在波形中寻找的东西。触发可以是一个事件(即波形中的问题),但不是所有的触发都是事件。触发实例包括边沿触发、毛刺信号触发和数字码型触发。 示波器必须使用触发的原因在于其存储器的容量有限。例如,Agilent90000系列示波器具有20亿采样的存储器深度。但是,即便拥有如此大容量的存储器,示波器仍需要一些事件来区分哪20亿个采样需要显示给用户。尽管20亿的采样听起来似乎非常庞大,但这仍不足以确保示波器存储器能够捕获到感兴趣的事件。 示波器的存储器可视为一个传送带。无论什么时候进行新的采样,采样都会存储到存储
[测试测量]
示波器触发是什么_示波器触发的作用
一种新型非易失性存储器的原理及应用
    纵观目前低容量并行接口的非易失存储器市场,EEPROM、FRAM、SRAM+BAKBAT方式等占据了市场主流,其中EEPROM的供应厂家很多,其中以ATMEL,ST等厂家占主导地位,FRAM只有美国RAMTRON公司一技独秀,而采用SRAM+BAKBAT方式的厂家,目前DALLAS占据了大部分市场空间,国内也有几家公司提供类似产品,其中比较知名的如HK等。以上几种产品性能方面各有优缺,其中EEPROM的市场应用范围最为广泛,其缺点也是路人皆知,写入速度慢,至少10ms的写等待时间,而且写操作次数有限制;FRAM铁电存储器的优点在于其操作速度很快,能够达到标准SRAM的速度,而且写操作次数特别高,最低能够实现100亿次的写操作
[嵌入式]
你知道只读存储器都有哪些吗?
对于存储器,大家都有所了解,比如我们每天使用的手机内就具备存储器。为增进大家对存储器的认识,本文将对只读存储器的种类予以介绍,并对相变存储器、存储器生命周期、技术进行对比。 一、只读存储器种类 (一)ROM 只读内存(Read-Only Memory)是一种只能读取资料的内存。在制造过程中,将资料以一特制光罩(mask)烧录于线路中,其资料内容在写入后就不能更改,所以有时又称为“光罩式只读内存”(mask ROM)。此内存的制造成本较低,常用于电脑中的开机启动。 (二)可编程只读存储器 可编程只读存储器(英文:Programmable ROM,简称:PROM)一般可编程一次。PROM存储器出厂时各
[嵌入式]
你知道只读<font color='red'>存储器</font>都有哪些吗?
嵌入式存储器以及BootLoader的一些总结
我在大学的时候很少关心单片机内部存储器的结构及应用,只是大概的知道RAM和ROM的区别,甚至只是知道程序下载到ROM中就能运行了。其他的如何工作程序如何启动的就不了了知了。因此在接触嵌入式的时候就会出现很多盲区。在此本人将工作三个多月以来接触到的一些关于嵌入式新的理解分享给大家,有什么错误的地方在所难免,希望大家给予指正。 RAM和ROM在单片机中的相关应用 ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 RA
[单片机]
富士通推出汽车级4Mbit FRAM 工作温度为125°C
据外媒报道,富士通半导体存储器解决方案(Fujitsu Semiconductor Memory Solution)公司宣布开始量产可在125°C高温下运行的4Mbit FRAM(铁电随机存取存储器)MB85RS4MTY。 (图片来源:富士通) 该FRAM产品符合AEC-Q1001级汽车标准,非常符合工业机器人和汽车应用,例如需要高可靠性电子元件的高级驾驶辅助系统(ADAS)。 (图片来源:富士通) FRAM是一种非易失性存储器产品,其读写耐久性高、写入速度快,且功耗低,并已量产20多年。而这种带有SPI接口的FRAM在可1.8V至3.6V的宽电源电压下运行。在-40°C至+125°C的温度范围内,该FRAM可
[汽车电子]
富士通推出汽车级4Mbit FRAM 工作温度为125°C
美光科技任命Sanjay Mehrotra为总裁兼首席执行官
  2017年4月27日: 美光科技 有限公司今日宣布董事会任命 Sanjay Mehrotra 为公司总裁兼首席执行官,同时他也将成为董事会成员,此决定自 2017 年 5 月 8 日起生效。作为下一代计算架构的关键推动因素的 存储器 、存储科技和解决方案,眼下的机会正日益增多,Mehrotra 于此时作为 Mark Durcan 的继任者加入美光。下面就随手机便携小编一起来了解一下相关内容吧。 将于2017年5月8日上任的 美光科技 新总裁兼首席执行官Sanjay Mehrotra   “Sanjay 往绩卓著,对 存储器 和存储行业有出众的认知。”董事会主席兼“首席执行官遴选委员会”成员 Robert E. Sw
[手机便携]
带有存储器功能的数字温度计
1.DS1624基本原理 DS1624是美国DALLAS公司生产的集成了测量系统和存储器于一体的芯片。数字接口电路简单,与I2C总线兼容,且可以使用一片控制器控制多达8片的DS1624。其数字温度输出达13位,精度为0.03125℃。DS1624可工作在最低2.7V电压下,适用于低功耗应用系统。 (1).DS1624基本特性 .无需外围元件即可测量温度 .测量范围为-55℃~+125℃,精度为0.03125℃ .测量温度的结果以13位数字量(两字节传输)给出 .测量温度的典型转换时间为1秒 .集成了256字节的E2PROM非易性存储器 .数
[测试测量]
带有<font color='red'>存储器</font>功能的数字温度计
I2C总线实现TMS320VC5509A引导装载设计
  1 引言   DSP芯片的Bootloader程序用于上电时将用户程序从外部非易失性、慢速存储器或外部控制器中装载到片内高速RAM中,保证用户程序在DSP内部高速运行,TI公司的C55x系列DSP芯片提供多种装载模式,主要包括HPI引导装载、串行E2ROM引导装载、并行引导装载、串行口引导装载、I2C总线E2ROM引导装载等,通常使用的是并行引导装载模式,该方式引导速度快实现简单,但是体积和功耗也较大,随着串行接口存储设备容量的提高,串行引导方式体积小、功耗低的优势便显现出来了,所以使用ARM的串行接口对DSP进行引导装载,不仅能省去存储芯片,而且利用ARM的ISP功能,可以根据需要改变用户程序,有利于系统的维护和升级。  
[嵌入式]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved