文档库 最新最全的文档下载
当前位置:文档库 › ARM片外Flash存储器IAP解决办法

ARM片外Flash存储器IAP解决办法

ARM片外Flash存储器IAP解决办法
ARM片外Flash存储器IAP解决办法

ARM片外Flash存储器IAP解决办法

0 引言

以ARM芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。在应用编程IAP (InApplicatAiONProgram)就是这样的自修改程序。它先在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。

针对嵌入式应用系统片外Flash存储器IAP无现成方案的问题,介绍一种基于代码重入思想的片外存储器IAP解决方案。结合LPC2210及SST39VFl60芯片,简介两款芯片特点,给出应用连接框图;分析IAP实现要点,并给出IAP的实现代码。下面以Phnips公司的LPC2210 和 Silicon storageTechnology 公司的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引脚。系统结构示意图。

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代码重入到SR—kM执行的方法,有效地解决了应用无片内程序存储器的32位ARM处理器的嵌入式系统IAP难题,有很大的应用价值。

嵌入式系统原理及应用第三章习题

第三章软件作业习题 3、将存储器中0x400000开始的200字节的数据,传送到0x400800开始的区域。 解: AREA procedure3,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 LDR R1,=0x400800 MOV R7,#200 LOOP LDRB R2,[R0],#1 STRB R2,[R1],#1 SUBS R7,R7,#1 BNE LOOP CEASE B CEASE END 4、编写程序,比较存储器中0x400000与0x400004两无符号字数据的大小,并且将比较结果存于0x400008的字中,若两数相等其结果记为0,若前者大于后者其结果记为1,若前者小于后者其结果记为-1。解: AREA procedure4,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 LDR R1,[R0],#4 ;取第1个数 LDR R2,[R0],#4 ;取第2个数 CMP R1,R2 ;将两个数相比较 MOVHI R1,#1 ;R1比R2大 MOVLO R1,#-1 ;R1比R2小 MOVEQ R1,#0 ;两个数相等 STR R1,[R0] CEASE

B CEASE END 5、存储器从0x400000开始的100个单元中存放着ASCII码,编写程序,将其所有的小写字母转换成大写字母,对其它的ASCII码不做变换。 解: AREA procedure5,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 MOV R1,#0 LOOP LDRB R2,[R0,R1] CMP R2,#0x61 ;与‘a’比较 BLO NEXT ;小于转到NEXT CMP R2,#0x7B ;0x7A为‘z’ SUBLO R2, R2,#0x20 ;小于转换 STRBLO R2,[R0,R1] ;小于保存 NEXT ADD R1,R1,#1 CMP R1,#100 BNE LOOP CEASE B CEASE END 6、编写一程序,查找存储器从0x400000开始的100个字中为0的数目,将其结果存到0x400190中。 解: AREA procedure6,CODE,READONLY ENTRY CODE32 START MOV R0,#0x400000 MOV R7,#100 ;控制循环变量 MOV R1,#0 ;保存0的数目 LOOP LDR R2,[R0],#4 ;取数 CMP R2,#0 ;比较为0

嵌入式系统数据共享存储器的实现

嵌入式系统数据共享存储器的实现 Luo Hao (罗昊),Wang Zhihua (王志华) 清华大学电子工程系北京 100084 摘要:使用静态存储器(SRAM)和可编程逻辑器件(PLD)可以模拟共享存储器的行为,实现低成本、高速、大容量共享存储。在实际应用中模拟共享存储器会遇到操作冲突的问题,这需要使用仲裁的办法加以解决。正确选择SRAM和PLD能提高模拟共享存储器的速度。 关键字:共享存储器可编程逻辑嵌入式系统 Implementation of Shared Memories in Embedded Systems Abstract: Use SRAM and PLD can simulate DPRAM to satisfy the need for high volume, high speed data switching. Collisions will arise when operate shared memory, some arbitration will be used to solve the problem. Select the right SRAM and PLD can improve the speed of the shared memory. Key word: DPRAM PLD EMBEDDED 引言:有的嵌入式系统中需要使用共享存储器进行数据交换,常用的共享存储器有DPRAM (双口内存)、PRAM(多口内存)、FIFO等。传统的DPRAM虽然简单易用,但是容量小,成本高。使用SRAM和PLD可以方便地构成共享存储器。 1. 常见的双口内存 在商用芯片中,常用的双口内存如IDT7133/4[1],容量为2K*16,异步操作,操作延迟时间20~90ns不等。存储阵列通过左右两端的地址线独立寻址。任意一端的接口方式与普通静态存储器完全一样。每端有独立的片选、读出、写入信号,因为7133的数据宽度为16b,为了实现字节操作,还提供了字节读出使能,可以通过字节读出使能对其进行字节操作。在实际的使用过程中,如果两侧同时对同一存储单元进行操作,任一侧为写入,都会使另一侧产生BUSY信号。表示此时的操作无效,或是会出现不正常的结果。在实际应用中这种情况是需要避免的。 2. 如何构造模拟双口内存 如果在实际应用中遇到需要的双口内存容量远大于现有的双口内存的情形,可以使用多片双口内存并联的方案。使用这种方案会使费用急剧增加,并且还需要增大存储控制器的扇出能力,增加的总线缓冲器或总线驱动器还会增加线路上的延时。可以考虑使用一个替代的办法:使用一片或多片大容量静态存储器(SRAM)或动态存储器(DRAM)作为存储单元,使用一些外部逻辑生成两个端口,构成一个模拟双口内存。使用类似操作双口内存的方法来操作这个模拟双口内存。在文献[2]中有一个类似的方案,它使用SRAM实现共享存储。图1中描绘了这种方案的实现方法。存储阵列由SRAM构成,与SRAM操作相关的信号为数据总线,地址总线,读写控制和片选。仲裁器由可编程逻辑实现,仲裁器的输入为两边端口送

第13章 Flash存储器

第13章Flash存储器 Flash存储器具有电可擦除、无需后备电源来保护数据、可在线编程、存储密度高、低功耗、成本较低等特点,这使得Flash存储器在嵌入式系统中的使用迅速增长。 本章主要以HC08系列中的GP32为例阐述Flash存储器的在线编程方法,也简要阐述了HCS08系列中GB60的在线编程方法。本章首先概述了Flash存储器的基本特点,并介绍其编程模式,随后给出M68HC908GP32的Flash存储器编程的基本操作及汇编语言和C语言的在线编程实例。最后讨论MC9S08GB60的Flash存储器编程方法。 Flash存储器编程方法有写入器模式与在线模式两种,本章讨论的是在线模式。有的芯片内部ROM中,包含了Flash擦除与写入子程序,在本章的进一步讨论中给出了调用方法,使Flash编程相对方便。有的芯片内部ROM中没有固化Flash擦除与写入子程序,只能自己编写Flash擦除与写入子程序。而编写Flash擦除与写入子程序需要较严格的规范,所以这是比较细致的工作,读者应仔细分析本章的例程,并参照例程编程。掌握了GP32芯片的Flash编程方法后,可以把此方法应用于整个系列的Flash编程。Flash在线编程对初学者有一定难度,希望通过实例分析学习。本章给出Flash在线编程的C语言实例,对于训练C语言与汇编联合编程技巧很有帮助。 13.1 Flash存储器概述与编程模式 理想的存储器应该具备存取速度快、不易失、存储密度高(单位体积存储容量大)、价格低等特点,但一般的存储器只具有这些特点中的一个或几个。近几年Flash存储器(有的译为:闪速存储器或快擦型存储器)技术趋于成熟,它结合了OTP存储器的成本优势和EEPROM的可再编程性能,是目前比较理想的存储器。Flash存储器具有电可擦除、无需后备电源来保护数据、可在线编程、存储密度高、低功耗、成本较低等特点。这些特点使得Flash存储器在嵌入式系统中获得广泛使用。从软件角度来看,Flash和EEPROM技术十分相似,主要的差别是Flash存储器一次只能擦除一个扇区,而不是EEPROM存储器的1个字节1个字节地擦除,典型的扇区大小是128B~16KB。尽管如此,因为Flash存储器的总体性价比,它还是比EEPROM更加流行,并且迅速取代了很多ROM器件。 嵌入式系统中使用Flash存储器有两种形式:一种是嵌入式处理器上集成了Flash,另一种是片外扩展Flash。 目前,许多MCU内部都集成了Flash存储器。Freescale公司在Flash存储器技术相当成熟的时候,在HC08系列单片机内集成了Flash存储器。该系列内部的Flash存储器不但可用编程器对其编程,而且可以由内部程序在线写入(编程),给嵌入式系统设计与编程提供了方便。存储器是MCU的重要组成部分,存储器技术的发展对MCU的发展起到了极大的推动作用。对于Freescale公司新推出的HCS08系列MCU采用第三

flash存储原理.

flash存储原理 一、半导体存储设备的原理 目前市面上出现了大量的便携式存储设备,这些设备大部分是以半导体芯片为存储介质的。采用半导体存储介质,可以把体积变的很小,便于携带;与硬盘之类的存储设备不同,它没有机械结构,所以也不怕碰撞;没有机械噪声;与其它存储设备相比,耗电量很小;读写速度也非常快。半导体存储设备的主要缺点就是价格和容量。 现在的半导体存储设备普遍采用了一种叫做“FLASH MEMORY”的技术。从字面上可理解为闪速存储器,它的擦写速度快是相对于EPROM而言的。FLASH MEMORY是一种非易失型存储器,因为掉电后,芯片内的数据不会丢失,所以很适合用来作电脑的外部存储设备。它采用电擦写方式、可10万次重复擦写、擦写速度快、耗电量小。 1.NOR型FLASH芯片 我们知道三极管具备导通和不导通两种状态,这两种状态可以用来表示数据0和数据1,因此利用三极管作为存储单元的三极管阵列就可作为存储设备。FLASH 技术是采用特殊的浮栅场效应管作为存储单元。这种场效应管的结构与普通场管有很大区别。它具有两个栅极,一个如普通场管栅极一样,用导线引出,称为“选择栅”;另一个则处于二氧化硅的包围之中不与任何部分相连,这个不与任何部分相连的栅极称为“浮栅”。通常情况下,浮栅不带电荷,则场效应管处于不导通状态,场效应管的漏极电平为高,则表示数据1。编程时,场效应管的漏极和选择栅都加上较高的编程电压,源极则接地。这样大量电子从源极流向漏极,形成相当大的电流,产生大量热电子,并从衬底的二氧化硅层俘获电子,由于电子的密度大,有的电子就到达了衬底与浮栅之间的二氧化硅层,这时由于选择栅加有高电压,在电场作用下,这些电子又通过二氧化硅层到达浮栅,并在浮栅上形成电子团。浮栅上的电子团即使在掉电的情况下,仍然会存留在浮栅上,所以信息能够长期保存(通常来说,这个时间可达10年。由于浮栅为负,所以选择栅为正,在存储器电路中,源极接地,所以相当于场效应管导通,漏极电平为低,即数据0被写入。擦除时,源极加上较高的编程电压,选择栅接地,漏极开

arm外部存储器控制器

外部存储器控制器 EMC:外部管理控制器. 在LPC2300系列ARM里,外部存储器控制器(EMC)为AHB总线和外部存储器件提供了接口,使得CPU得以扩展外部存储器. LPC2300系列中的LPC2378和LPC2388具备EMC,支持2个可单独配置的存储器组.这两个存储器组都支持SRAM,ROM,Flash,Burst ROM或一些外部I/O器件.存储器组的片选地址范围大小为64KB. 下面是EMC的控制器: 对于AHB从机寄存器接口,CPU可以通过AHB从机寄存器接口对EMC寄存器进行编程.为了避免可能发生的字顺序问题,操作EMC寄存器的过程中,所有数据的床上必须是32位宽的字. 通过数据缓冲区进行读写操作,可提供存储器带宽并减少传输等待时间.EMC含有4个16字大小的数据缓冲区.数据宽城区可用作读缓冲区,写缓冲区或读写缓冲区. 存储器控制器状态机包括一个静态存储器控制器.

CPU通过AHB从机存储器接口访问外部存储器,在访问外部存储器时,需要注意以下几点: 1.数据传输的字节顺序 2.数据产生的宽度 3.对写保护的存储器区域进行写操作. 我们再来看一下EMC的结构图: 我们再看看EMC的基本操作过程: 1.首先是使能EMC: 在使用EMC前一定要先在功率控制寄存器中将其使能:

PCONP=PCONP|0x00000800; //第11位置1 接下来,设置EMC控制寄存器EMCControl的第0位置1,使能EMC: EMCControl=0x00000001; 2.引脚连接: 将相关的引脚连接到EMC模块. PINSEL6=0x0000 5555; //选择D0~D7脚 PINSEL8=0x5555 5555; //选择A0~A15脚 tmp=PINSEL9; tmp&=&0x0FF0 FFFF; PINSEL9=tmp|0x5009 0000; //选择-OE,-WE,-CS0,-CS1脚 3.时序设置: 通常情况下,我们再操作外部存储器时分为读,写两个操作. 在读操作的过程中,我们需要配置下面的寄存器 a.静态存储器输出使能延时寄存器(EMCStaticWaitOen0-1); b.静态存储器读延时寄存器(EMCStaticWaitRd0-1); c.静态存储器页模式读延时寄存器(EMCStaticWaitPage0-1); 通过设置静态存储器输出使能延时寄存器(EMCStaticWaitOen0-1)可改变片选信号优先到输出有效的延时t; 通过静态存储器读延时寄存器(EMCStaticWaitRd0-1)可改变从片选信号有效到器件输出允许失效之间的延时t.

嵌入式存储器的全面解析

嵌入式存储器的全面解析 随着超大规模集成电路工艺的发展,人类已经进入了超深亚微米时代。先进的工艺使得人们能够把包括处理器、存储器、模拟电路、接口逻辑甚至射频电路集成到一个大规模的芯片上,形成所谓的SoC(片上系统)。作为SoC重要组成部分的嵌入式存储器,在SoC中所占的比重(面积)将逐渐增大。下面就随小编一起来了解一下相关内容吧。 近期台积电技术长孙元成在其自家技术论坛中,首次揭露台积电研发多年的eMRAM(嵌入式磁阻式随机存取存储)和eRRAM(嵌入式电阻式存储器)将分别订于明后年进行风险性试产。预计试产主要采用22nm工艺。这种次世代存储将能够为物联网、行动装置、高速运算电脑和智能汽车等四领域所提供效能更快和耗电更低的存储效能。台积电此举让嵌入式存储器再度回到人们的视线中。本文将为你阐述嵌入式存储器的前世今生。 何为嵌入式存储器嵌入式存储器现在已经不是一个新的概念了。相对于片外存储器,嵌入式存储器是指集成在片内与系统中各个逻辑、混合信号等IP共同组成单一芯片中的存储器。现已经成为SOC芯片的基本组成部分,几乎今天每个SOC芯片中嵌入式存储器都占有一定比重。 按照掉电后数据是否会丢失,可将嵌入式存储器分为两大类,一类是挥发性存储器,另一类则是非挥发性存储器。挥发性存储器是指掉电后数据会丢失,主要包括速度快、功耗低的SRAM和高密度的DRAM。而非挥发性存储器则刚好相反,其在实际应用中主要包括eFlash、EEPROM以及eMRAM、eRRAM、ePRAM等次世代存储器。 虽然都是存储器,但二者还是有些许不同。嵌入式存储器和分立式存储器最重要的不同之处在于嵌入式存储器往往跟应用IC自身的工艺特性条件有很大关系,比如用90nm和用45nm工艺做出来的芯片,其内部嵌入式存储器大小差别也是很大的。而分立式存储器件则主要围绕存储器器件工艺进行优化。 随着信息技术的发展,嵌入式存储器在SOC中的面积所占比重也在逐年增加,从图一可以看出,从1999年平均的20%上升到2007年的60-70%乃至2014年的90%的面积。可以看出,嵌入式存储器对于芯片系统性能的影响越来越大。

嵌入式系统中存储器类型的选择方法

嵌入式系统中存储器类型的选择方法 嵌入式系统中存储器类型的选择方法 存储器的类型将决定整个嵌入式系统的操作和性能,因此存储器的选择是一个非常重要的决策。无论系统是采用电池供电还是由市电供电,应用需求将决定存储器的类型(易失性或非易失性)以及使用目的(存储代码、数据或者两者兼有)。另外,在选择过程中,存储器的尺寸和成本也是需要考虑的重要因素。对于较小的系统,微控制器自带的存储器就有可能满足系统要求,而较大的系统可能要求增加外部存储器。为嵌入式系统选择存储器类型时,需要考虑一些设计参数,包括微控制器的选择、电压范围、电池寿命、读写速度、存储器尺寸、存储器的特性、擦除/写入的耐久性以及系统总成本。 图1列出了在嵌入式应用系统中最常用的存储器类型。下面讨论在选择存储器时应遵循的基本原则。 选择存储器时应遵循的基本原则 1.内部存储器与外部存储器 一般情况下,当确定了存储程序代码和数据所需要的存储空间之后,设计工程师将决定是采用内部存储器还是外部存储器。通常情况下,内部存储器的性价比最高但灵活性最低,因此设计工程师必须确定对存储的需求将来是否会增长,以及是否有某种途径可以升级到代码空间更大的微控制器。基于成本考虑,人们通常选择能满足应用要求的存储器容量最小的微控制器,因此在预测代码规模的时候要必须特别小心,因为代码规模增大可能要求更换微控制器。 目前市场上存在各种规模的外部存储器器件,我们很容易通过增加存储器来适应代码规模的增加。有时这意味着以封装尺寸相同但容量更大的存储器替代现有的存储器,或者在总线上增加存储器。即使微控制器带有内部存储器,也可以通过增加外部串行EEPROM 或闪存来满足系统对非易失性存储器的需求。 2.引导存储器

Flash存储器的技术和发展

湘潭大学论文 题目:关于Flash存储器的技术和发展 学院:材料与光电物理学院 专业:微电子学 学号:2010700518 姓名:李翼缚 完成日期:2014.2.24

目录 1引言 (4) 2Flash 存储器的基本工作原理 (4) 3 Flash存储器的编程机制 (5) 3.1 沟道热电子注入(CHE) (5) 3.2 F-N隧穿效应(F-NTunneling) (6) 4 Flash存储器的单元结构 (6) 5 Flash存储器的可靠性 (7) 5.1 CHE编程条件下的可靠性机制 (8) 5.2 隧道氧化层高场应力下的可靠性机制 (8) 6 Flash存储器的发展现状和未来趋势 (9) 参考文献: (10)

关于Flash存储器的技术和发展 摘要:Flash 存储器是在20世纪80年代末逐渐发展起来的一种新型半导体不挥发性存储器,它具有结构简单、高密度、低成本、高可靠性和在系统的电可擦除性等优点, 是当今半导体存储器市场中发展最为迅速的一种存储器。文章对F lash 存储器的发展历史和工作机理、单元结构与阵列结构、可靠性、世界发展的现状和未来趋势等进行了深入的探讨。 关键词:半导体存储器;不挥发性存储器; Flash存储器; ETOX结构 About Flash Memory Technology and Its Development Abstract: As a new non -volatile semiconductor memory introduced by Masuoka in 1984, flash memory has a number of advantages, such as simple structure, high integration density, low cost, and high reliability, and it is widely used in mobile phone, digital camer a, PCBIOS, DVD player, and soon. Its evolution, programming mechanism, cell structure, array structure, reliability are described, and its developing trend in the future is dis cussed. Key words: Semico nduct or memory; Flash memor y; Non-volatile memory ; ETOX

Flash做为存储器存储数据

STM32学习笔记-Flash做为存储器储存数据 说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置、芯片ID、自举程序等等。当然, FLASH 还可以用来装数据。 自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了。 FLASH分类 根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。主存储块用于存储程序,我们写的程序一般存储在这里。信息块又分成两部分:系统存储器、选项字节。系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。选项字节存储芯片的配置信息及对主存储块的保护信息。 FLASH的页面 STM32的FLASH主存储块按页组织,有的产品每页1KB,有的产品每页2KB。页面典型的用途就是用于按页擦除FLASH。从这点来看,页面有点像通用FLASH 的扇区。 STM32产品的分类 STM32根据FLASH主存储块容量、页面的不同,系统存储器的不同,分为小容量、中容量、大容量、互联型,共四类产品。 小容量产品主存储块1-32KB,每页1KB。系统存储器2KB。 中容量产品主存储块64-128KB,每页1KB。系统存储器2KB。 大容量产品主存储块256KB以上,每页2KB。系统存储器2KB。 互联型产品主存储块256KB以上,每页2KB。系统存储器18KB。 对于具体一个产品属于哪类,可以查数据手册,或根据以下简单的规则进行区分: STM32F101xx、STM32F102xx 、STM32F103xx产品,根据其主存储块容量,一定是小容量、中容量、大容量产品中的一种,STM32F105xx、STM32F107xx是互联型产品。 互联型产品与其它三类的不同之处就是BootLoader的不同,小中大容量产品的BootLoader只有2KB,只能通过USART1进行ISP,而互联型产品的BootLoader有18KB,能通过USAT1、4、CAN等多种方式进行ISP。小空量产品、中容量产品的BootLoader与大容量产品相同。 关于ISP与IAP ISP(In System Programming)在系统编程,是指直接在目标电路板上对芯片进行编程,一般需要一个自举程序(BootLoader)来执行。ISP也有叫ICP (In Circuit Programming)、在电路编程、在线编程。 IAP(In Application Programming)在应用中编程,是指最终产品出厂后,由最终用户在使用中对用

嵌入式系统存储器浅谈

嵌入式系统存储器浅谈 嵌入式系统存储器浅谈(zz)嵌入式系统与通用PC 机不同,一般没有硬盘这样的存储设备而是使用Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置,本文分析了嵌入式系统中常用的存储设备及其管理机制,介绍了常用的基于FLASH的文件系统类型。1.嵌入式系统存储设备及其管理机制分析构建适用于嵌入式系统的Linux文件系统,必然会涉及到两个关键点,一是文件系统类型的选择,它关系到文件系统的读写性能、尺寸大小;另一个就是根文件系统内容的选择,它关系到根文件系统所能提供的功能及尺寸大小。 嵌入式设备中使用的存储器是像Flash闪存芯片、小型闪存卡等专为嵌入式系统设计的存储装置。Flash是目前嵌入式系统中广泛采用的主流存储器,它的 主要特点是按整体/扇区擦除和按字节编程,具有低功耗、高密度、小体积等优点。目前,Flash分为NOR, NAND两种类型。 NOR型闪存可以直接读取芯片内储存的数据,因而速度比较快,但是价格较高。NOR型芯片,地址线与数据线分开,所以NOR型芯片可以像SRAM一样连在 数据线上,对NOR芯片可以“字”为基本单位操作,因此传输

效率很高,应用程序可以直接在Flash内运行,不必再把代码读到系统RAM中运行。它与 SRAM的最大不同在于写操作需要经过擦除和写入两个过程。 NAND型闪存芯片共用地址线与数据线,内部数据以块为单位进行存储,直接将NAND芯片做启动芯片比较难。NAND 闪存是连续存储介质,适合放大文件。 擦除NOR器件时是以64-128KB的块进行的,执行一个写入/擦除操作的时间为5s;擦除NAND器件是以8-32KB的块进行的,执行相同的操作最 多只需要4ms。NAND Rash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。NOR flash占据了容量为1―16MB闪存市场的大部分,而NAND flash只是用在8―128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储。寿命(耐用性),在NAND闪存中每个 块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8 倍,每个NAND存储器块在给定的时间内的删除次数要少一

嵌入式—flash存储器

存储器存储器 FLASH存储器存储器章FLASH 13章 第13

本章主要内容 Flash Flash存储器概述与编程模式存储器概述与编程模式存储器 MC908GP32MC908GP32单片机单片机单片机Flash Flash Flash存储器编程方法存储器编程方法存储器GP32GP32单片机单片机单片机Flash Flash Flash在线编程汇编语言实例在线编程汇编语言实例GP32GP32单片机单片机单片机Flash Flash Flash在线编程在线编程在线编程08C 08C 08C语言实例语言实例HCS08HCS08系列单片机系列单片机系列单片机Flash Flash Flash编程方法编程方法

13.1 Flash 13.1 Flash存储器概述与编程模式存储器概述与编程模式13.1.1 Flash存储器的基本特点与编程模式 (1) Flash存储器的基本特点 ①固有不挥发性::Flash Flash存储器不需要后备电源来保持数据存储器不需要后备电源来保持数据存储器不需要后备电源来保持数据。。所以所以,,它具有磁存储器无需电能保持数据的优点它具有磁存储器无需电能保持数据的优点。。 ②易更新性易更新性:Flash :Flash :Flash存储器具有电可擦除特点存储器具有电可擦除特点存储器具有电可擦除特点。。相对于相对于EPROM(EPROM(EPROM(电可编电可编程只读存储器程只读存储器))的紫外线擦除工艺的紫外线擦除工艺,,Flash Flash存储器的电擦除功能为开发者存储器的电擦除功能为开发者节省了时间节省了时间,,也为最终用户更新存储器内容提供了可能也为最终用户更新存储器内容提供了可能。。 ③成本低成本低、、密度高密度高、、可靠性好可靠性好::与EEPROM(EEPROM(电可擦除可编程的只读存电可擦除可编程的只读存储器储器))相比较相比较,,Flash Flash存储器的成本更低存储器的成本更低存储器的成本更低、、密度更高密度更高、、可靠性更好可靠性更好。。

ARM片外Flash存储器IAP解决办法

ARM片外Flash存储器IAP解决办法 0 引言 以ARM芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。在应用编程IAP (InApplicatAiONProgram)就是这样的自修改程序。它先在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。 针对嵌入式应用系统片外Flash存储器IAP无现成方案的问题,介绍一种基于代码重入思想的片外存储器IAP解决方案。结合LPC2210及SST39VFl60芯片,简介两款芯片特点,给出应用连接框图;分析IAP实现要点,并给出IAP的实现代码。下面以Phnips公司的LPC2210 和 Silicon storageTechnology 公司的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 硬件连接

FLASH闪存总体介绍

Flash闪存器总体介绍 闪存的英文名称是“Flash Memory”,一般简称为“Flash”,它属于内存器件的一种。 不过闪存的物理特性与常见的内存有根本性的差异: 目前各类DDR、SDRAM或者RDRAM都属于挥发性内存,只要停止电流供应内存中的数据便无法保持,因此每次电脑开机都需要把数据重新载入内存; 闪存则是一种不挥发性(Non-V olatile)内存,在没有电流供应的条件下也能够长久地保持数据,其存储特性相当于硬盘,这项特性正是闪存得以成为各类便携型数字设备的存储介质的基础。 NAND闪存的存储单元则采用串行结构,存储单元的读写是以页和块为单位来进行(一页包含若干字节,若干页则组成储存块,NAND的存储块大小为8到32KB),这种结构最大的优点在于容量可以做得很大,超过512MB容量的NAND 产品相当普遍,NAND 闪存的成本较低,有利于大规模普及。 NAND闪存的缺点在于读速度较慢,它的I/O 端口只有8个,比 NOR 要少多了。这区区8个I/O 端口只能以信号轮流传送的方式完成数据的传送,速度要比NOR闪存的并行传输模式慢得多。再加NAND闪存的逻辑为电子盘模

块结构,内部不存在专门的存储控制器,一旦出现数据坏块将无法修,可靠性较NOR 闪存要差。 NAND闪存被广泛用于移动存储、数码相机、MP3播放器、掌上电脑等新兴数字设备中。由于受到数码设备强劲发展的带动, NAND 闪存一直呈现指数级的超高速增长. NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。 NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。 性能比较 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。 由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。 执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统

嵌入式系统论文

浅谈嵌入式系统及其发展前景 (作者:赵玉雪班级:软件1112班学号:1120126238) 摘要 现今我们已进入到一个网络的时代,经历了漫长的单片机发展道路嵌入式系也逐步应用到各种网络环境中。嵌入式系统也有了独有的定义,嵌入式设备与互联网的结合才是嵌入式技术未来。本文介绍了嵌入式系统的发展历史,嵌入式系统的特点和分类,及其在国内外的应用情况,总结了该行业未来的发展趋势。 关键词嵌入式系统;嵌入式系统特点;应用;现状;前景

0引言 嵌入式系统是目前电子计算机的一种普遍应用形式,此类电子系统由于不被设备使用者在意,也被称之为埋藏式计算机,例如微控制器、微处理器以及常见的DSP等。嵌入式处理器可以使宿主设备功能得以智能化,无论是设计还是操作都比较简单方便,这些设备的功能具有一定的各异性,但都具有功能强和实时性强,结构相对比较紧凑,大大提高了可靠性等共同特点。 嵌入式系统作为某种技术过程的核心处理环节,是一种能够直接与现实环境接口或交互的信息处理系统。在这种应用环境下,信息处理系统处于嵌入式工作状态,即实时就绪与环互动,亦即实时工作方式,其典型例子如Pc在工业过程控制或实验监测中的应用。 1嵌入式系统概述 1.1嵌入式系统发展史 世界上第一个嵌入式系统是在1981年由Ready System发展的商业性嵌入式实时内核(VRTX32),距今已有30年的历史了。纵观历史,嵌入式系统历史的发展有三个明显的阶段: 阶段一,是嵌入式系统的出现阶段。这一阶段的主要特征是:操作系统处理效率低下、存储容量小、系统的结构以及功能都相对单一、几乎没有用户接口,受众群体为各类专业领域。作为嵌入式系统的早期阶段,这种系统以其专用计算机简单的功能或者以可编程控制器的单片机为核心的形式存在,具备设备指示、监测、伺服等功能,大部分的系统运用于各类工业控制与飞机、导弹等武器装备中。由于早期嵌入式系统并没有操作系统的支持,对系统的控制是通过汇编语言编程直接进行的,运行结束后对内存进行清理。 阶段二,是简单监控式的实时操作系统阶段。该阶段以嵌入式CPU和嵌入式操作系统为标志。随着计算机硬件高可靠、低功耗嵌入CPU,如Power PC等的出现,推动了各类商业嵌入式操作系统相继出现并以迅雷不及掩耳之势发展起来。该阶段鲜明的特点是系统开销小、效率高处理器种类繁多、较差的通用性、由于配备系统仿真器,因此操作系统具有一定的兼容性与扩展性。另外,由于软

基于ARM系统的基站空调节能控制器

北京师范大学成人高等教育2013届本科生毕业论文(设计) 基于ARM系统的基站空调节能控制器 学生姓名: 专业名称:电子信息科学与技术 学号: 2 指导教师: 完成时间: 2013-08-27

摘要 本设计运用STM32F101系列MCU为主控模块、Sensirion 的SHT10数字温湿度传感器、继电器、光耦开关、SIM900A GPRS通讯模块、以及RS232/485通信芯片等元器件,设计了温湿度采集电路、脉冲电表电量采集电路、开关量及模拟量采集电路,RS232/485通信驱动电路、以及GPRS 无线通信电路。解决通信基站内空调的自动启停以及与节能通风机组的联动工作,最终实现了基站节能减排的目的。同时该节能控制器还具有采集脉冲电量表电能数据以及通过GPRS无线通信上传的功能,方便对控制器以及基站能耗情况的集中统一管理。 关键词:基站、 STM32F101 MCU、SHT10数字温湿度传感器、GPRS无线通信、联动控制、节能减排

Based on ARM base station air conditioning energy-saving controller of the system Abstract This design USES STM32F101 series MCU as the master control module, the Sensirion SHT10 digital temperature and humidity sensor, relay, switch of light coupling, SIM900A GPRS communication module, and RS232/485 communication chip components, design of the temperature and humidity acquisition circuit, pulse power meter acquisition circuit, digital and analog acquisition circuit, RS232/485 communication drive circuit, and GPRS wireless communication circuit. Solve the communication base station air automatic start-stop and the joint operation with energy saving ventilation unit, finally realizes the purpose of the base station energy conservation and emissions reduction. At the same time the energy-saving controller also has a pulse electric scale electric energy data and upload through GPRS wireless communication function, convenient to the controller and the base station energy consumption situation of centralized and unified management. Keywords: Base stations; STM32F101 MCU; SHT10 digital temperature and humidity sensor; GPRS wireless communication; Linkage control; Energy Conservation and Emissions Reduction

基于ARM的嵌入式温度控制系统的设计

合肥工业大学 硕士学位论文 基于ARM的嵌入式温度控制系统的设计 姓名:陈文博 申请学位级别:硕士 专业:控制理论与控制工程 指导教师:王华强 20071201

基于ARM的嵌入式温度控制系统的设计 摘要 温度的测量和控制在工业生产中有广泛的应用,尤其在石油、化工、电力、 冶金等工业领域中,对温度的测量和监控是非常重要的一个环节,温度参数是工 业控制中的一项重要的指标。 本文主要研究了基于ARM9架构的嵌入式Linux系统在工业领域中各种炉温 控制场合中的应用。目前控制方案主要是采用传统的PLC和单片机进行控制。PLC主要是针对单项工程或者重复数极少的项目,灵活性相对不足,并且体积大,成本相对较高;而单片机主要用于小型设备的控制,具有成本低,功耗低,效率 高的特点,但可移植性较差。为了适应信息产业的发展,新技术革新以及产业的 专业化现代化的发展,本文针对PLC和单片机控制的优缺点和应用场合提出了采用ARM9嵌入式微控制器AT91RM9200和Limtx操作系统相结合的嵌入式温度控制系统,具有系统扩展性强、可靠性高、响应速度快、体积小等特点,为用 户提供了一种新型的控制方案。 本文首先论述了嵌入式操作系统的组成,接着设计了温度控制系统的硬件系统,主要包括CPU模块、模拟电路模块、存储模块和通信模块四个部分;在对温度控制系统的软件部分的设计中,主要是针对Boot-Loader的移植、Linux内 核移植、根文件系统的定制、驱动程序的编写和应用程序的编写五部分进行设计。 系统功能主要是循环采集AD通道数据,上传AD数据到服务器,接收服务器下发的控制数据包,记录日志等。通过在线运行测试,该系统稳定可靠,采集 和控制效果良好,可有效降低了生产成本和工人的劳动强度,为安全生产提供保 证。 关键词:ARM,Linux,嵌入式系统,温度控制系统

ARM与不同位宽存储器的地址线错位接口,外部总线接口深入.

ARM是32位,地址空间是2的32次幂,4G地址空间。所有的外设(FLASH,RAM,SD 卡等等)都映射到这4G的空间上。比如大部分 ARM7都把RAM映射到0x40000000,所以对RAM的操作就在0X40000000开始的地址上。FLASH从0X0开始。使用FLASH 还要考虑地址重映射,就是选择片内FLASH或片外FLASH。 FLASH一般是8位或16位,当它接到32位的ARM上时,地址位就会错位。对于16位FLASH,FLASH的A0要接ARM的A1。对于8位 FLASH,FLASH的A0 要接ARM的A0。ARM的A0对应8位,ARM的A1对应16位,ARM的A2对应32位,如果FLASH是32位,那么FLASH的A0接ARM的A2 32位的FLASH,FLASH的A0要接ARM的A2,因为32位地址表示4个字节,每次要跳4个字节的话,那么就是从A2开始才变化,A1 A0不变化 16位的FLASH,FLASH的A0要接ARM的A1,因为16位地址表示2个字节,每次要跳2个字节的话,那么就是从A1开始才变化,A0不变化 8位的FLASH,FLASH的A0要接ARM的A0,因为8位地址表示1个字节,每次要跳1个字节的话,那么就是从A0开始才变化。 对于 16位的FLASH ,我们可以这样认为:16位存储器的设计者将低位A[0]省掉了,我们只要读取一次就可以得到两个字节,读取的 这个地址对应于ARM发出的地址的A[21..1],即实际上是存储器需要的偶地址(偶地址是针对ARM发出的地址而言的)。 LPC2200,S3C2410A,S3C2440等都是上述这样的,当然也有不同的。 IMX27和BF537这两款CPU都是不管存储器是多少位的的,都是直接 A0-B0,没有任何考虑错位的情况,是因为他们的存储控制器已经内部作了处理 了,三星的如S3C2443\S3C2450\S3C6410等后续的也都是这样子了 再来看看外部总线配置EMC和外部总线功能引脚的关系: OE:输出使能 OUT EABLE WE:WRITE EABLE 写入使能 CE:chip EABLE 片选 ALE:地址锁存使能(ADRESS LOCK EABLE) BLS:字节选择信号 重点看 WE BLS 的关系 在LPC2200系列ARM中,为了适应外部存储器组的宽度和类型,EMC提供了一组字节选择信号,要实现这些功能,需要对相应存储器配置寄存器中的RBLE位进行设定。 对外部存储器组进行写访问时,RBLE位决定WE信号是否有效; 对外部存储器组进行读访问时,RBLE位决定BLSn信号是否有效。

相关文档