电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 存储/缓存技术 > 详细信息
存储/缓存技术:一种片外Flash存储器IAP的方案
来源:   时间: 2007-6-4 16:24:33    
 引言       

       以ARM芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。包括工业控制领域、无线通信领域、网络应用、消费电子、成像和安全产品等,如今,ARM微处理器及嵌入式技术的应用几乎已经渗透到了各个领域。其中,ARM7作为ARM微处理器系列中的一员,是低功耗的32位RISC处理器。

       Samsung公司的S3C4510B、Philips公司的LPC20XX、LPC21XX、LPC22XX系列等都是ARM7处理器。这些为数繁多的ARM7处理器,因其片内外设不同而各擅所长,但都应用同样的ARM7TDMI核(或ARM7TDMI-S核,这是ARM7TDMI的综合版本,这两种核对处理器应用人员来说没有区别)。可以说,ARM7TDM
 
I是目前使用最为广泛的32位嵌入式RISC处理器。      

       ARM7TDMI核应用冯 ·诺依曼结构,处理器使用的存储器中数据和程序指令不予区分,PC寄存器指向的存储器单元,无论是ROM区还是RAM区,只要符合ARM指令的格式都可以执行,这就为系统自修改提供了可能。在应用编程IA(In Application 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。下面以Philips公司的LPC2210和Silicon Storage Technology公司的SST39VF160为例,详细讨论这种情况IAP的解决方案。       

       1 硬件结构       

       1.1 LPC2210介绍       

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

       Silicon Storage Technology公司的SST39VF160是一个1M×16b的COMS多功能FLASH器件,单电压的读和写操作,电压范围3.0-3.6V,提供48脚TSOP和48脚TFBGA两种封装形式。       

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

       1.3 硬件连接       

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

系统结构示意图

点击看原图

 

       2.软件实现       

       2.1 IAP实现要点分析
      

       在嵌入式应用系统中,通常要求记录一些现场的传感、交互输入数据,通常把数据记录在Flash存储器中,以 便下次上电能获得以前的数据。如果系统程序和数据分开存储。那么只要对存放数据的Flash器件进行编程即可。然而大多数嵌入式系统,程序和需保存的数据都共存于同一Flash存储器中,那么是否也如前所述,可对Flash存储器直接编程呢?理论和实践都表明不可以。       

       先从理论上计算:LPC2210允许的芯片核工作频率(CCLK)范围是10-60MHz,存储器读访问长度由存储器组配置寄存器BCFG中读访问的长度域控制WST1控制,其最大可用长度为35个CCLK,而SST39VF160的扇区擦除典型时间为18ms。下面是计算算式:      

       TRDmax=RDLenmax/CCLKmin=35/10×10-6=3.5μs       
       Tp=18ms>>3.5μs      其中:TRDmax--最大读访问的时间;       
       RDLenmax--最大读访问可用长度;       
       CCLKmin--最小核工作时钟频率;      
       Tp--扇区擦除典型时间。       
算式得出扇区擦除典型时间远大于最大读访问时间。这样一来,如果再给某FLASH写数据,同时于其中预取指,那么因Flash执行命令期间,对其他操作不响应,预取出的必定是其数据引脚上的不确定数据,预取指失败。实践也表现,如果在程序执行过程中,对同一Flash进行扇区擦除,必定引起预取指中断。       
       为了解决在同一Flash芯片存放程序并IAP这一问题,引进代码重映射的思想。所谓重映射就是代码先自复制到制定存储区,然后跳转到制定区的起点开始执行。这里,IAP程序先自复制到LPC2210片内SRAM中,然后跳转到SRAM执行IAP代码。前面过说,ARM7为冯·诺依曼结构,这就为IAP程序重映射提供了可能。       

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

       2.2 扇区擦除       

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

       2.3 字编程       

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

       3.结论       

       在嵌入式应用系统中,IAP是极为有效的一种技术。根据本文提出的方案,在实际应用中只需针对选用的Flash,更改特定的擦、写操作代码就可实现系统片外存储器的在应用编程。本文提出的IAP代码重入到SRAM执行的方法,有效地解决了应用无片内程序存储器的32位ARM处理器的嵌入式系统IAP难题,有很大的应用价值。
相关信息
发表评论
打印本页 关闭本页
Watchdog在Philips 8XC552系列单片机系统中的应用
  1 引言     Philips公司的8XC552单片机以其体积小、功能强、价格低等优势而广泛地使用在工业控制、DCS控制和智能仪器等领域。笔者在智能配电监测仪的研制过程中,虽然采取了相应的抗干扰措施,但由于工业现场环境中电磁场、电网尖峰、谐波、浪涌及雷电辐射等影响,仍有可能出现程序死循环、跑飞等失控现象。为此,笔者采用Watchdog技术保证了系统的正常运行,通常Watchdog技术在单片...
>>详细内容
PHILIPS 80C51系列单片机
  6 Clock 8位 80C51+内核单片机  Philips 8位8051单片机系列提供完整的产品类型,包括Flash、OTP(一次性编程)、ROM和无ROM器件。由于为实时应用而设计,这些80C51器件可以广泛应用于从消费类产品、计算机外设到自动化系统的各种领域。请点击下面的产品编号了解更详细的产品信息。 型号 存贮器 ISP/IAP 定时/计数器 I/O数 串行接口 中断 A/D 最大频率 ...
>>详细内容
ARM处理器LPC2210在脑血氧监测仪中的应用
  引言 氧是人体新陈代谢的重要物质,脑组织新陈代谢率高,耗氧量占全身总量的20%左右。在心脑血管疾病及脑外伤病人的临床抢救与治疗中,如果缺乏对脑组织供氧的监护手段,就有可能造成脑组织神经功能的丧失或损害。因此,提供一种连续监测大脑供氧状况的临床设备,对提高心脑血管和脑外伤等多种疾病的诊断和治疗具有重大意义。在健康监护和临床诊断中,对脑组织血氧参数的监测是不可缺少...
>>详细内容
Philips DDR2模块用高速寄存器
  今天,存储模块解决方案已经从速度较低的单数据率(SDR)演变为双数据率(DDR),日益增加的精确信号控制需求促进了寄存器的增长。为满足这一设计需求,皇家飞利浦电子公司(NYSE交易代号:PHG,AEX交易代号:PHI)日前针对高端服务器及先进计算的存储密集型应用推出了新型高速寄存器系列。该系列针对DDR2 DIMM负载进行了优化,能精确控制传输至模块上的每一个DRAM信号,从...
>>详细内容
基于S3C4510B型微处理器的最小系统设计
  基于S3C4510B型微处理器的最小系统设计 陈斌 (西安工程科技学院 电子信息学院 陕西 西安 710048) 1 引言 ARM(Advanced RISC Machines),既可以认为它是一个公司的名字,也可以认为它是一类微处理器的统称,还可以认为它是一种技术名称,习惯上称之为&qu...
>>详细内容
74HC74D PHILIPS公司芯片
  74HC74D PHILIPS公司芯片. 74HC74D SOT108-1 (SO14) Dual D-Type Flip-Flop with Set and Reset; Positive-Edge Trigger 82 14@5V 2.0-6.0 V 14 Low Power or Battery Applications CMOS +/- 5.2 mA
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com