微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 闪速内存硬件接口和程序设计中的关键技术

闪速内存硬件接口和程序设计中的关键技术

时间:03-23 来源:互联网 点击:

摘 要: 介绍了闪速内存的使用方法,并给出了单片机与闪速内存接口和程序设计中应注意的关键技术。

关键词: 单片机 闪速内存 公共闪存接口CFI

闪速内存(Flash Memory)以其集成度高、制造成本低、使用方便等诸多优点广泛地应用于办公设备、通信设备、医疗设备、家用电器等领域。利用其信息非易失性和可以在线更新资料参数特性,可将其作为具有一定灵活性的只读存储器使用。

在单片机应用系统中,经常遇到大容量的资料存储问题。闪速内存由于容量大、存储速度快、体积小、功耗低等诸多优点,而成为应用系统中数据存储器的首选。但是,由于单片机的资源有限,而闪速内存的种类和工作方式又千差万别,因而在单片机与闪速内存的接口电路和程序设计中,有许多关键技术问题需要解决。

单片机与闪速内存的接口电路应注意的问题有:

(1)很多单片机的工作电压为+5V,而很多闪速内存却工作在1.8~6V之间,有些闪速内存(Flash Memory)的擦除电压又工作在12V。

(2)8位的单片机很多,而闪速内存很多是16位的。

(3)同一型号的闪速内存由于厂家不同,引脚的定义是不一样的,例如Intel公司的28Foo8BV与AMD公司的29LV008有很多引脚是不一样的。

单片机与闪速内存的程序设计应注意的问题有:

(1)不同厂家的闪速内存使用不同的操作命令集,软件要根据不同厂家的闪速内存使用不同的操作命令集。

(2)很多闪速内存内部存储结构和时间参数是不同的。由于闪速内存内部都是分成不同大小存储块,在对闪速内存进行擦除操作时,软件要根据不同型号的闪速内存调整被擦除存储块的大小等参数。同时,由于不同型号的闪速内存间参数是不同,软件要根据闪速内存的时间参数来调整读写和擦除操作的时间。

针对上面遇到的问题,我们从硬件和软件两个方面来考虑单片机与闪速内存应用系统中应解决的关键技术问题。

1 单片机与闪速内存硬件接口的关键技术

生产闪速内存的半导体公司主要有美国的Intel、AMD公司和日本的Sharp、Fujitsu公司,这四家公司生产的闪速内存的市场占有份额相当大。表1列出了四家公司生产的主要型号的闪速内存的性能指针。

从表1中可以看出,不同厂家的闪速内存的工作电压和编程擦除电压是不一样的,同时资料位的长度也是不一样的。由于目前国内应用最广泛的单片机仍然是8位的MCS-51系列单片机,16位的单片机种模拟较少,而且工作电压在低电压(2.7~3.6V)的单片机又是寥寥无几。能否用市场上常见的普通8位单片机来设计一个与大多数闪速内存接口的电路呢?答案是肯定的。我们用普通的8位单片机AT89C52设计了一个与闪速内存TE28F160B3的接口电路,AT89C52是ATMEL公司生产的与MCS-51系列单片机兼容的8位单片机,它内部有一个16K 的E2PROM程序内存,它的工作电压是5V。TE28F160B3是INTEL公司生产的容量为16M位、数据总线宽度为16位的闪存内存,它的工作电压为2.7~3.6V。需要指出的是,虽然TE28F160B3的工作电压为2.7~3.6V,但是其各引脚的最大工作电压范围却在-0.5V~5.0V,各引脚高电平最高工作电压不能超过5.5V,这样就使得我们可以使用AT89C52来设计与TE28F160B3的接口电路。该接口电路如图1所示。

由于AT89C52是8位单片机,而TE28F160B3是16位数据总线,我们使用了两片74HC244和两片74HC373来完成8位和16位的资料转换。当AT89C52往TE28F160B3写资料时,首先单片机将高8位资料写入到锁存器74HC373-1中。其中74HC373-1锁存信号W373由译码器GAL16V8输出,然后单片机开始执行对TE28F160B3写资料操作,低8位资料由AT89C52的P0口直接写入TE28F160B3,而锁存在74HC373-1中的高8位资料通过缓冲器74HC244-1写入到TE28F160B3的DQ8~DQ15总线上。当AT89C52从TE28F160B3读数据时,读出的高8位资料先锁存到74HC373-2上,然后通过缓冲器74HC224-2读入到AT89C52中。TE28F160B3的存储容量为16M位,有20根地址线A0~A19,而AT89C52一共才有16根地址线。因此利用AT89C52的地址线A15、A14和A13经译码作为两片74HC244、两片74HC373和TE28F160B3的锁存信号和片选信号。这样地址线只剩下A0~A12,为此利用一片计数器4HC4040作为地址线A13~A19,从而就解决了AT89C52的寻址问题。

TE28F160B3的供电电源Vcc与AT89C52一样,均接+5V直流电源。但是TE28F160B3的编程电压和擦除电压Vpp必须接+12V。

图1的单片机使用了市场上常见的AT89C52,但在设计中我们推荐使用宽电压范围工作的单片机AT89LV52和地址译码器ATF16LV8,这样就可以使用+3V左右的供电电源。

在生产闪速内存的半导体公司Intel、AMD、Sharp和Fujitsu中,Intel和Sharp公司的闪速内

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top