位置:51电子网 » 技术资料 » 存 储 器

基于FLASH介质嵌入式存储方案的设计与实现

发布时间:2008/5/26 0:00:00 访问次数:556

        

    

    

    摘要:作为一种新型的存储介质,flash以其优良的特性,在嵌入式领域中得到了广泛的应用。本文通过分析flash介质的自身特性,并结合嵌入式系统的特点,设计实现于兼容性、可靠性以及开销等方面都得到充分优化的flash存储系统。

    

    关键字嵌入式系统文件系统flash

    

    1引言

    

    flash(闪速存储器)作为一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。由于flash在结构和操作方式上与硬盘、e2rom等其他存储介质有较大区别,使用flash时必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。

    

    2flash的特点

    

    flash是一种非易失性存储器nvm(non-volatilememory),根据结构的不同可以将其分成norflash和nandflash两种。但不管哪一种都具有如下特点:

    

    1.区块结构

    

    flash在物理结构上分成若干个区块,区块之间相互独立。比如norflash把整个memory分成若干个sector,而nandflash把整个memory分成若干个block;

    

    2.先擦后写

    

    由于flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1。擦操作的最小单位是一个区块,而不是单个字节。

    

    3.操作指令

    

    除了norflash的读,flash的其它操作不能像ram那样,直接对目标地址进行总线操作。比如执行一次写操作,它必须输入一串特殊的指令(norflash),或者完成一段时序(nandflash)才能将数据写入到flash中。

    

    4.位反转

    

    由于flash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误。这就是位反转。位反转无法避免,只能通过其他手段对结果进行事后处理。

    

    5.坏块

    

    flash在使用过程中,可能导致某些区块的损坏。区块一旦损坏,将无法进行修复。如果对已损坏的区块进行操作,可能会带来不可预测的错误。尤其是nandflash在出厂时就可能存在这样的坏块(已经被标识出)。

    

    3关键设计

    

    3.1flash通用设计

    

    对于一个嵌入式系统,设备的兼容性越好,系统可行性就越好,产品也就越有竞争力。所以,为了兼容不同类型的flash设备,对flash进行通用设计至关重要。

    

    对于norflash,数据的读操作可以通过独立的数据总线和地址总线快速完成,然而norflash的其他操作需要通过特殊的指令来完成,更糟糕的是不同厂商生产的芯片这些指令互不相同。这就导致了设备的不兼容。

    

    对于nandflash,也存在这样的问题。nandflash可以根据相同的指令读取芯片的厂商号和设备号,从而通过识别设备号调用对应的时序流程实现操作。但是,系统中太多的判断,会使得程序的结构变得非常复杂。所以,在一定的条件下,nandflash设备还是不兼容的。

    

    为了解决这一问题,一个较好的方法是将flash的各个操作指令以及结构特性按照统一的格式存放到flash中固定位置。系统初始化时,将这个结构读入系统,通过分析这个结构,可以获得关于芯片所有相关信息,包括操作指令,区块分布等等。这样,系统可以轻松实现对不同型号flash的所有操作,极大地提高了设备的扩展性。

    

    3.2双模式文件系统设计

    

    嵌入式系统中文件数据的存放一般有两种结构,一种是索引格式的线性结构,一种是非线性的链表

        

    

    

    摘要:作为一种新型的存储介质,flash以其优良的特性,在嵌入式领域中得到了广泛的应用。本文通过分析flash介质的自身特性,并结合嵌入式系统的特点,设计实现于兼容性、可靠性以及开销等方面都得到充分优化的flash存储系统。

    

    关键字嵌入式系统文件系统flash

    

    1引言

    

    flash(闪速存储器)作为一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点,已成为嵌入式系统中数据和程序最主要的载体。由于flash在结构和操作方式上与硬盘、e2rom等其他存储介质有较大区别,使用flash时必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。

    

    2flash的特点

    

    flash是一种非易失性存储器nvm(non-volatilememory),根据结构的不同可以将其分成norflash和nandflash两种。但不管哪一种都具有如下特点:

    

    1.区块结构

    

    flash在物理结构上分成若干个区块,区块之间相互独立。比如norflash把整个memory分成若干个sector,而nandflash把整个memory分成若干个block;

    

    2.先擦后写

    

    由于flash的写操作只能将数据位从1写成0,不能从0写成1,所以在对存储器进行写入之前必须先执行擦操作,将预写入的数据位初始化为1。擦操作的最小单位是一个区块,而不是单个字节。

    

    3.操作指令

    

    除了norflash的读,flash的其它操作不能像ram那样,直接对目标地址进行总线操作。比如执行一次写操作,它必须输入一串特殊的指令(norflash),或者完成一段时序(nandflash)才能将数据写入到flash中。

    

    4.位反转

    

    由于flash固有的电器特性,在读写数据过程中,偶然会产生一位或几位数据错误。这就是位反转。位反转无法避免,只能通过其他手段对结果进行事后处理。

    

    5.坏块

    

    flash在使用过程中,可能导致某些区块的损坏。区块一旦损坏,将无法进行修复。如果对已损坏的区块进行操作,可能会带来不可预测的错误。尤其是nandflash在出厂时就可能存在这样的坏块(已经被标识出)。

    

    3关键设计

    

    3.1flash通用设计

    

    对于一个嵌入式系统,设备的兼容性越好,系统可行性就越好,产品也就越有竞争力。所以,为了兼容不同类型的flash设备,对flash进行通用设计至关重要。

    

    对于norflash,数据的读操作可以通过独立的数据总线和地址总线快速完成,然而norflash的其他操作需要通过特殊的指令来完成,更糟糕的是不同厂商生产的芯片这些指令互不相同。这就导致了设备的不兼容。

    

    对于nandflash,也存在这样的问题。nandflash可以根据相同的指令读取芯片的厂商号和设备号,从而通过识别设备号调用对应的时序流程实现操作。但是,系统中太多的判断,会使得程序的结构变得非常复杂。所以,在一定的条件下,nandflash设备还是不兼容的。

    

    为了解决这一问题,一个较好的方法是将flash的各个操作指令以及结构特性按照统一的格式存放到flash中固定位置。系统初始化时,将这个结构读入系统,通过分析这个结构,可以获得关于芯片所有相关信息,包括操作指令,区块分布等等。这样,系统可以轻松实现对不同型号flash的所有操作,极大地提高了设备的扩展性。

    

    3.2双模式文件系统设计

    

    嵌入式系统中文件数据的存放一般有两种结构,一种是索引格式的线性结构,一种是非线性的链表

相关IC型号

热门点击

 

推荐技术资料

循线机器人是机器人入门和
    循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!