一种片外Flash存储器IAP的方案
发布时间:2008/5/28 0:00:00 访问次数:360
引言
以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所示。
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所示。
以arm芯片为处理器核的嵌入式应用系统,以其小体积、低功耗、低成本、高性能、丰富的片内资源以及对操作系统的广泛支持,得到了人们越来越多的青睐。包括工业控制领域、无线通信领域、网络应用、消费电子、成像和安全产品等,如今,arm微处理器及嵌入式技术的应用几乎已经渗透到了各个领域。其中,arm7作为arm微处理器系列中的一员,是低功耗的32位risc处理器。
samsung公司的s3c4510b、philips公司的lpc20xx、lpc21xx、lpc22xx系列等都是arm7处理器。这些为数繁多的arm7处理器,因其片内外设不同而各擅所长,但都应用同样的arm7tdmi核(或arm7tdmi-s核,这是arm7tdmi的综合版本,这两种核对处理器应用人员来说没有区别)。可以说,arm7tdm
|
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所示。
点击看原图
|
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所示。
点击看原图
|