大容量NORFlash与8位单片机的接口设计
发布时间:2008/6/3 0:00:00 访问次数:672
flash存储器又称闪速存储器,是20世纪80年代末逐渐发展起来的一种新型半导体不挥发存储器。它兼有ram和rom的特点,既可以在线擦除、改写,又能够在掉电后保持数据不丢失。norflash是flash存储器中最早出现的一个品种,与其他种类的flash存储器相比具有以下优势:可靠性高、随机读取速度快,可以单字节或单字编程,允许cpu直接从芯片中读取代码执行等。因此norflash存储器在嵌入式系统应用开发中占有非常重要的地位。本文以sst公司的norflash芯片sst39sf040和mcs-51单片机为例,针对大容量norflash在8位低档单片机中应用的特殊性,详细介绍了其接口硬件和接口软件的设计方法。
1sst39sf040芯片介绍
sst39sf040是sst公司最近推出的一种基于superflash技术的norflash存储器,属于sst公司并行闪速存储器系列;适用于需要程序在线写入或大容量、非易失性数据重复存储的场合。
1.1芯片内部功能结构和外部引脚
图1是sst39sf040的内部功能结构框图,由super-flash存储单元、行译码器、列译码器、地址缓冲与锁存器、输入/输出缓冲和数据锁存器以及控制逻辑电路等部分组成。图2是其外部引脚分布图,其中a18~a0为地址线,ce为芯片选通信号,oe可作为读信号,we为写信号,dq7~dq0为数据线。
1.2芯片的主要特性
①容量为512kb,按512k×8位结构组织。
②采用单一的5v电源供电,编程电源vpp在芯片内部产生。
③芯片可反复擦写100000次,数据保存时间为100年。
④工作电流典型值为10ma,待机电流典型值为30μa。
⑤扇区结构:扇区大小统一为4kb。
⑥读取、擦除和字节编程时间的典型值:数据读取时间为45~70ns;扇区擦除时间为18ms,整片擦除时间为70ms;字节编程时间为14μs。
⑦有记录内部擦除操作和编程写入操作完成与否的状态标志位。
⑧具有硬、软件数据保护功能。
⑨具有地址和数据锁存功能。
1.3芯片的操作
1.3.1芯片的软件操作命令序列
sst39sf040的软件操作可以分成两类:普通读操作和命令操作。
普通读操作非常简单,与ram的读操作类似,当oe和ce信号同时为低电平时,即可从芯片读出数据。
芯片的命令操作包括芯片的识别、字节编程、扇区擦除以及整片擦除等。这些操作分别由各自的软件操作命令序列来完成,如表1所列。其中,ba为待编程字节的地址,data为字节编程数据,sax为待擦除扇区的地址。命令中的地址只有低15位有效,高4位可任意设置为“0”或“1”。
sst39sf040的软件操作命令序列实际上是由一个或多个总线写操作组成的。以sst39sf040的扇区擦除为例,其操作过程包括3个步骤:第1步,开启擦除方式,用表1中给出的第1至第5周期的总线写操作来实现;第2步,装载扇区擦除命令(30h)和待擦除扇区的地址,用其对应的第6周期的总线写操作来实现;第3步,进行内部擦除。内部擦除时间最长为25ms。
总线写操作时,oe必须保持为高电平,ce和we应为低电平。地址和数据的锁存由ce和we两个信号的边沿进行控制。它们当中后出现的下降沿将锁存地址,先出现的上升沿将锁存数据。
1.3.2字节编程和擦除操作的状态检测
芯片在进行内部字节编程或擦除操作时都需要花费一定的时间,虽然可以采用固定的延时来等待这些操作的完成,但为了优化系统的字节编程和擦除操作时间,以及时判断内部操作的完成与否,sst39sf040提供了两个用于检测的状态位,即跳变位dq6和数据查询位dq7。在芯片进行内部操作时,只要根据图3的流程对dq6或者dq7进行查询就能及时作出判断。
2sst39sf040与mcs-51的接口设计
2.1硬件设计
硬件设计就是搭建合适的接口电路,将sst39sf040连接到mcs-51的系统总线上。根据sst39sf040和mcs-51系列单片机的结构特性,我们发现sst39sf040的数据线和读、写信号线可以很容易地连接到mcs-51的系统总线上,所以要考虑的主要问题是sst39sf040地址线的连接。由于其容量已经超出了mcs-51的寻址范围,19根地址线无法全部连接到mcs-51的地址总线上,因此必须在该系统中进行进一步的存储器扩展。存储器扩展通常可利用单片机空闲的i/o口线作为页面地址输出引脚来实现。但是许多应用系统当中,单片机的i/o口线都是非常紧张的,在没有多余的i/o口线时,页面地址就必须提前从数据总线输出并存放在锁存器中备用。具体做法是:将锁存器直接挂在数据总线上,为其安排一个i/o地址,从而构成页面寄存器,在访问存储器时,提前将页面地址作为数据写入页面寄存器即可。
根据以上分析可设计出sst39sf040与mcs-51之间的接口电路,如图4所示。本系统中,将512kb的存储器分
flash存储器又称闪速存储器,是20世纪80年代末逐渐发展起来的一种新型半导体不挥发存储器。它兼有ram和rom的特点,既可以在线擦除、改写,又能够在掉电后保持数据不丢失。norflash是flash存储器中最早出现的一个品种,与其他种类的flash存储器相比具有以下优势:可靠性高、随机读取速度快,可以单字节或单字编程,允许cpu直接从芯片中读取代码执行等。因此norflash存储器在嵌入式系统应用开发中占有非常重要的地位。本文以sst公司的norflash芯片sst39sf040和mcs-51单片机为例,针对大容量norflash在8位低档单片机中应用的特殊性,详细介绍了其接口硬件和接口软件的设计方法。
1sst39sf040芯片介绍
sst39sf040是sst公司最近推出的一种基于superflash技术的norflash存储器,属于sst公司并行闪速存储器系列;适用于需要程序在线写入或大容量、非易失性数据重复存储的场合。
1.1芯片内部功能结构和外部引脚
图1是sst39sf040的内部功能结构框图,由super-flash存储单元、行译码器、列译码器、地址缓冲与锁存器、输入/输出缓冲和数据锁存器以及控制逻辑电路等部分组成。图2是其外部引脚分布图,其中a18~a0为地址线,ce为芯片选通信号,oe可作为读信号,we为写信号,dq7~dq0为数据线。
1.2芯片的主要特性
①容量为512kb,按512k×8位结构组织。
②采用单一的5v电源供电,编程电源vpp在芯片内部产生。
③芯片可反复擦写100000次,数据保存时间为100年。
④工作电流典型值为10ma,待机电流典型值为30μa。
⑤扇区结构:扇区大小统一为4kb。
⑥读取、擦除和字节编程时间的典型值:数据读取时间为45~70ns;扇区擦除时间为18ms,整片擦除时间为70ms;字节编程时间为14μs。
⑦有记录内部擦除操作和编程写入操作完成与否的状态标志位。
⑧具有硬、软件数据保护功能。
⑨具有地址和数据锁存功能。
1.3芯片的操作
1.3.1芯片的软件操作命令序列
sst39sf040的软件操作可以分成两类:普通读操作和命令操作。
普通读操作非常简单,与ram的读操作类似,当oe和ce信号同时为低电平时,即可从芯片读出数据。
芯片的命令操作包括芯片的识别、字节编程、扇区擦除以及整片擦除等。这些操作分别由各自的软件操作命令序列来完成,如表1所列。其中,ba为待编程字节的地址,data为字节编程数据,sax为待擦除扇区的地址。命令中的地址只有低15位有效,高4位可任意设置为“0”或“1”。
sst39sf040的软件操作命令序列实际上是由一个或多个总线写操作组成的。以sst39sf040的扇区擦除为例,其操作过程包括3个步骤:第1步,开启擦除方式,用表1中给出的第1至第5周期的总线写操作来实现;第2步,装载扇区擦除命令(30h)和待擦除扇区的地址,用其对应的第6周期的总线写操作来实现;第3步,进行内部擦除。内部擦除时间最长为25ms。
总线写操作时,oe必须保持为高电平,ce和we应为低电平。地址和数据的锁存由ce和we两个信号的边沿进行控制。它们当中后出现的下降沿将锁存地址,先出现的上升沿将锁存数据。
1.3.2字节编程和擦除操作的状态检测
芯片在进行内部字节编程或擦除操作时都需要花费一定的时间,虽然可以采用固定的延时来等待这些操作的完成,但为了优化系统的字节编程和擦除操作时间,以及时判断内部操作的完成与否,sst39sf040提供了两个用于检测的状态位,即跳变位dq6和数据查询位dq7。在芯片进行内部操作时,只要根据图3的流程对dq6或者dq7进行查询就能及时作出判断。
2sst39sf040与mcs-51的接口设计
2.1硬件设计
硬件设计就是搭建合适的接口电路,将sst39sf040连接到mcs-51的系统总线上。根据sst39sf040和mcs-51系列单片机的结构特性,我们发现sst39sf040的数据线和读、写信号线可以很容易地连接到mcs-51的系统总线上,所以要考虑的主要问题是sst39sf040地址线的连接。由于其容量已经超出了mcs-51的寻址范围,19根地址线无法全部连接到mcs-51的地址总线上,因此必须在该系统中进行进一步的存储器扩展。存储器扩展通常可利用单片机空闲的i/o口线作为页面地址输出引脚来实现。但是许多应用系统当中,单片机的i/o口线都是非常紧张的,在没有多余的i/o口线时,页面地址就必须提前从数据总线输出并存放在锁存器中备用。具体做法是:将锁存器直接挂在数据总线上,为其安排一个i/o地址,从而构成页面寄存器,在访问存储器时,提前将页面地址作为数据写入页面寄存器即可。
根据以上分析可设计出sst39sf040与mcs-51之间的接口电路,如图4所示。本系统中,将512kb的存储器分