单片机大容量FLASHRAM的扩展
扫描二维码
随时随地手机看文章
微机监控设备常常需要对监控的数据进行实时记录,以便于事后分析处理,为事故分析、设备故障诊断和维修提供准确可靠的信息,如飞机“黑匣子”、列车“运行记录器”等。数据信息的记录需要大数据容量和实时快速的读写速度,以及在掉电和复位等干扰下的可靠的数据保护。现在一般采用非易失性RAM(NVRAM)为存储介质,其缺点是没有硬件和软件写保护,在强干扰下,程序误写的概率大。
新型闪速存储器(FLASHRAM)由于同时具有EPROM的可编程能力和EEPROM的电可擦写功能,又能像SRAM一样进行随机快速访问,因而越来越多的受到国内外的广泛关注和应用。28F040是一个容量为512K×8Bit可块擦除、字节编程的EEPROM,其擦除、编程电压均为5V。
美国SST公司FLASHRAM28S040的性能特点及技术参数
(1)单电源5V供电
(2)容量512×8Bit
(3)数据保存时间大于10年
(4)重复擦写次数典型值100,000次
(5)可分块擦除每块256字节
(6)可进行硬件及软件定写保护
(7)快速读取时间(150~200)ns
其引脚功能如下:A0~A18为地址线,A0~A7选择一块数据中的某个字节,A8~A18是块地址。DQ7~DQ0为数据I/O总线,读周期输出数据,在写周期接收数据。CE为片先线,低电平时芯片被选中。OE为输出使能端。 WE为写信号使能端。VCC为电源,接+5V;VSS接地。
28SF040是一个容量为512Kbyte的CMOS快速闪存,可块擦除、字节编程的EEPROM,与现存的EPROM、EEPROM兼容。它非常适合用程序和数据重复写入的场合。对这种系统的应用来说,28SF040可提高性能和稳定性。
FLASHRAM与80C196单片机接口实例
28SF040 是容量并行存储器共计512Kbyte,而80C196全部寻址空间仅为64Kbyte,因此直接寻址大于64Kbyte的存储器是不行的,需要采用分而扩展技术,即CPU只提供大容量存储器的低位地址线,如A0~A12,而高位地址线A13~A18则通过扩展的CPU的I/O口来分页寻址。
1.分页扩展28SF040原理框图
图1中单片机采用Intel垢80C196,其P1口的P1.0~P1.5来控制分页码* (0~63)。74HC138译码给28SF040的片选,其地址空间为8000H~9FFFH(也可以是4000~5FFFH等其他CPU 8K的地址空间),图中74HC373为地址锁存器。
有关地址描述如下:
[A15,A14,A13]通过138译码后形成8Kbyte空间的译码线对28SF040进行片选。
28SF040 共512Kbyte的空间,可分为64个8Kbyte,即64页,每页8Kbyte的空间。其中,28SF040的[A12,A11,…,A0]地址线直接与CPU的[A12,A11,…,A0]相接,高位地址线[A18,A17,A16,A15,A14,A13]通过CPU P1口的[P1.5,P1.4,P1.3,P1.2,P1.1,P1.0]进行页选。
2.FLASHRAM指定空间的寻址
在数据记录和转储过程中,有时需要对FLASHRAM特定的地址单元进行读写操作,如FLASHRAM的软件写保护等。下面以对FLASHRAM的红外线对地址15555H单元寻址为例,介绍对特定地址寻址。
15555H 是FLASHRAM28SF040的绝对地址,对于CPU来说,其寻址包括两部分,一是CPU的直接寻址区,即地址线A0~A12,直接和 FLASHRAM的地址线A0~A12相接,其值为[1010101010101],另一部分是CPU的译码地址,即地址线A13'~A15',没有和 FLASHRAM相接,用于系统译码片选FLASHRAM,其值为[100],因此CPU的地址为[1001010101010101]=9555H。
P1口直接和FLASHRAM的A13~A18相接,等于[001010]=0AH。
FLASHRAM的软件操作
FLASHRAM的读写包括块擦除(Sector_Erase)、芯片擦除(Chip_Erase)、字节编程、复位、读ID号、软件数据写保护、软件数据写保护打开。其命令字如下表:
(1)进行块擦除操作首先要写一个特征字,然后再发送块擦除命令。特征字为20H,表明以下将擦除一块数据区中256个字节的内容。块擦除命令为20H,其操作在写信号的上升沿开始。
(2)芯片擦除操作的特片字和命令字均为30H,其操作将擦除28SF040全部内容。
(3)字节编程操作的特征字为10H。
例如,对某一字节的写入,应首先判断芯片是否处于写保护打开状态(Unprotected),然后判断是否到了新的一页即下一页,如果是,先把此页全部内容擦除。然后写特征字10H,写数据DATA,之后进行两次读操作,若读出内容相同,则认为该字节已写入数据完成;若D7状态跳变,则说明写过程还未完成。
(4)复位命令能够安全地终止擦除或编程命令。在擦除或编程命令后执行复位命令字FFH即能安全终止擦除或编程操作,存储器的内容不会被改变。执行复位命令后,芯片返回读状态。
(5)读ID号操作的特征字为90H。地址0000H的输出厂商代码BFH,地址0001H输出芯片代码04H,任何其它有效的命令均会终止这一操作。
(6)软件数据保护是为了防止对存储器意外的写入数据或擦除数据,每一操作都包含两个命令字,一个为特片字,跟随一个执行命令字。软件数据写保护是一个整体的命令字,对芯片的整个存储阵列有效。
结论
由于FLASHRAM 28SF040具有与单片机接口简单、容量大以及非易失的特点,所以非常适合于作为便携式数据记录产品。本文介绍的技术已经成功地用于机车随车质量状态诊断记录仪,其中扩展了两片28F040的FLASHRAM,共计8Mbit,对32路机车运行质量状态参数每隔5S记录一次,记录时间长达5~6天,在一年半的实际运行中状态稳定,具有体积小,性能价格比高的特点。