电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 通信与网络 > 详细信息
通信与网络:NAND Flash K9T1G08U0M在网络存储中的应用
来源:   时间: 2007-11-30 2:12:39    
1 引言

  随着嵌入式系统广泛应用,嵌入式系统中的数据存储和数据管理则成为设计人员考虑的重点。在许多现场不可达数据采集应用中采用分布式数据存储,必然带来数据管理的不便,因此,集中管理数据成为一种思路。利用成熟的网络传输技术集中分布式嵌入式系统数据,采用C/S模式管理数据。对于大容量数据存储,选择介质存储是需要重点考虑的问题。目前大多采用IDE硬盘或SCSI硬盘存储,但都存在抗震和抗电磁干扰能力差、使用温度范围窄,无法长期在恶劣的环境中长期工作。电子式Flash存储器具有速度快、容量大、成本低、体积小等优点,尤其能够在恶劣的环境下正常工作。随着NAND Flash容量不断增大,选择NAND Flash作为嵌入式数据存储已成为一种趋势。

  本文以三星公司的K9T1G08U0M为例,设计了基于大容量NAND Flash的网络存储系统,该系统具有速度快、安全可靠、易扩展、抗震和抗干扰能力强、使用温度范围宽等特点,可方便的用于安全监控、生产数据记录、航行数据记录等方面,具有广阔的应用前景。

2 NAND Flash K9T1G08U0M

  K9T1G08U0M是一块1 056 Mbit的NANDFlash存储器,262 144行(page)×528列,其存储结构如图1所示,其中512列至527列间是备用区。一个528字节的数据寄存器附在存储单元阵列用于页读取和页写入操作中I/O缓存和存储区之间数据传输,存储阵列由构成NAND架构的16个单元组成,16单元的每一单元都存放在不同的页中,一个块包含32页2个NAND架构。一个NAND架构包含16个单元,一个块中总共有8 448个NAND架构。写入和读取操作都是基于页的,但擦除操作是基于块的,存储阵列包含8 192个独立可擦除的16 KB块。这表明K9T1G08U0M中位擦除操作是禁止的。

  K9T1G08U0M有8个复用I/O地址,减少了引脚数目并允许保持原系统板设计而使系统存储密度升级。命令、地址、数据都是在WE和CE控制下通过I/O写入。数据在WE上升沿锁存,命令和地址则是通过命令锁存允许(CLE)和地址锁存允许(ALE)区分,128 MB物理空间需求27位地址,因此需要4个字节地址周期:1个列周期,3个行周期。页读取和页写入都是在输入命令后紧跟着4个相同的地址周期。块擦除仅需要3个行周期。

3 NAND Flash编程特点

  Flash主要有3种操作。Flash写操作可使存储单元由1变为0,存储单元为0后,不能再通过写操作置为1;Flash读操作不改变存储单元;Flash擦除操作可使存储单元由0变为1,但不能只对某个单元进行擦除操作。Flash的擦除包括块擦除和芯片擦除。块擦除是把某一擦除块的内容都变为1,而芯片擦除是把整个Flash的内容都变为1。通常一个Flash存储器可分为若干个擦除块。Flash存储时,是以擦除块为单位。当在一个块中存储时,一旦对某一块中的某一位写0后,若再要改变成1,则必须先对整个块进行擦除,然后才能修改。这点也是Flash最为麻烦的。通常,容量小的块操作过程:先将整个块存储到RAM中,在RAM中对其修改,再擦除整个块,最后写入修改值。显然,这样频繁复杂的操作将影响Flash的使用寿命和系统性能,而且系统无大容量RAM空间资源。

4 存储策略及实现

4.1 存储策略

  在嵌入式网络存储应用中,首先考虑使用文件系统。文件系统必须保证数据完整性,也就是保证写入磁盘的数据与随后读取内容的一致性。目前在NANDFlash中使用的较多是日志文件,但日志文件系统为保障文件安全增加了额外的系统开销一每次更新磁盘节点,大多数“日志”操作是写同步,这就需要更多的磁盘I/O操作,而且日志文件系统更易产生碎片。

  为了尽可能减少文件存储造成碎片空间的浪费,考虑到文件内容实际是一种二进制数据流,且对于有限的网络节点,并不需要频繁地建立、删除文件。设计人员只对近期的数据情况比较关心。因此系统可采用循环存储,即为每个文件指定存储空间。当存储空间即将耗尽的时候,最新的数据覆盖早先数据。这样可有效的避免产生额外Flash碎片。同时在磁盘可利用空间小于一定阈值时,可通过网络报警提醒用户处理Flash中的历史数据或采取相关措施。

  由于NAND Flash具有一定的使用寿命,对于某一扇区的频繁读写将会严重影响Flash的使用寿命。因此可将Flash按流文件大小分块,通过循环存储避免Flash某些存储区域频繁的读写操作。当存储空间不足时,最新写入的数据覆盖早先的数据,这样既避免产生存储空间碎片也有效地延长Flash的使用寿命。

4.2 数据安全性考虑

4.2.1 无效块的管理

  由于NAND Flash的工艺不能保证NAND的存储阵列在其生命周期中具有可靠的性能,因此,在NAND的生产及使用过程中会产生无效块。无效块的特性:当编程/擦除时,不能将某些位置高,以免造成页写入和块擦除操作错误,反映到状态寄存器相应位上,因此必须对无效块加以标识。

  无效块总体上分为两大类:一类为固有无效块。该无效块是在生产过程中产生的,一般在出厂时,无效块第一页的备用区的第6个字节标记为非0xff的值。二类是使用无效块。在NAND Flash使用过程中,如果页写入或者块擦除错误。就可以简单地将这个块作为无效块,需将无效块作以标记。为了和固有无效块信息保持一致,需将该无效块的第一页的备用区第6个字节标记为非0xff。

  NAND Flash出厂时在备用区已经反映了无效块信息,因此在擦除某一个块前,一定要先检查备用区的第6个字节是否为0xff,如果是0xff就证明为有效块,可擦除;否则该块就不能擦除。

  为了对无效块管理。NAND Flash首块一定是有效块,在第0页中建立一张无效块表。对NANDFlash格式化时,需检测其原始无效块状态,将得到的原始无效块按块号大小顺序存入NAND Flash无效块表中。

  如果在对一个块的某个页进行写入时产生错误,则将该块标记为无效块。首先要把其他页里面的内容备份到另外一个空闲可用块中。然后,标记此块为无效块,并将该块号以二分法算法插入无效块表中。为防止误判,可以在块备份完成后,再将该无效块擦除一次,如果块擦除错误,证明该块是真正的无效块。

4.2.2 ECC校验

  Flash都存在位反现象,NAND Flash因注重于降低成本,位反现象比其他存储器更突出,而且数据存储应用对器件操作时可能由于电压不稳定等因素造成NAND操作错误。为尽可能减少错误,引入了软件ECC校验。此校验算法:把K9T1G08U0M的每一页分成4个512字节的数据区,4个对应的16字节备用区,每512字节数据采用ECC算法生成3字节的ECC校验码,存入相应备用区。数据读出后采用同样的算法生成新的3字节ECC校验码,对两次ECC校验码进行异或运算,根据结果做相应处理。这样可以检测和纠错一位数据,对于多位错误也可在应用程序中处理,可有效提高数据的可靠性,同时也为无效块检测提供依据。

4.3 实现

  硬件系统采用带网络功能的Coldfire 5307最小系统+多片K9W8G08U0M,其硬件接口设计如图2所示。Coldfire 5307的高8位数据线和A24、A25通过74AVC16245分别作为K9W8G08U0M的I/O总线和ALE、CLE信号,WE和OE经7432逻辑变换后控制K9W8G08U0M的读、写。同时Coldfire的PP口用于扩展CS7的地址范围,片选K9W8G08U0M阵列。软件方面,在该平台上移植了μClinux,考虑到系统的主要任务是数据存储,因此将NAND Flash驱动程序直接置于μClinux内核,使其成为新系统调用,并把新系统调用源代码添加到μClinux-dist/linux/kernel/sys.c文件中,然后修改μClinux-dist/lin-ux/include/asm-m68nommu/unistd.h,给新系统调用分配一个系统调用号,修改μClinux-dist/linux/arch/m68knommu/platform/5307/entry.S,添加新的系统调用函数指针long symbol_name(sys_*),通知内核其他部分又增加了新系统调用函数。然后编译新的Linux内核,在应用程序中使用预编译宏指令sgscall调用相应操作。

  应用程序基于socket编程,采用并发服务器模式,使系统能同时处理多个客户请求。服务器程序开始时调用socket()函数创建一个套接口,然后调用bind()函数将用户自定义端口捆绑到该套接口,并在程序中指定IP地址为INADDR_ANY,允许服务器接受任意IP地址客户的连接请求,通过调用listen()函数将此套接口转变成一个监听套接口,以监听连接到该端口上的客户连接请求。客户请求到达后,建立连接accept(),服务器调用fork()创建一个子进程为这个到达的客户提供服务,而父进程关闭已连接套接口,等待另一个客户的连接请求。在子进程中解析客户请求命令,根据命令进行存储、读取、擦除等操作。

5 结束语

  在嵌入式系统中实现NAND Flash的网络存储,可使分布式嵌入式系统的数据管理和用户管理集中在一个嵌入式服务器中,避免为了保存数据而必须采用的分散式用户管理,并有效降低整个系统成本。本系统经过随机数和文件的完整性系统测试,证实采用这种存储方式能够有效地完成系统需要的存储功能。目前该存储系统已应用到船载航行数据记录仪并运行良好。

相关信息
发表评论
打印本页 关闭本页
TI新型低功耗可编程DSP显著延长电池工作时间
    德州仪器(TI)宣布,其超低功耗可编程DSP产品系列又添新成员TMS320C5506DSP。这款业界最低功耗可编程DSP将进一步推动低功耗音频/语音应用领域的创新。全新TMS320C5506DSP在待机模式下的功耗仅为0.12mW,另外,其还具备众多其它低功耗特性,堪称同类产品中功耗最低的处理器。   全面的128KB片上存储器可显著简化编程工作,而全速USB2.0接口则提供了低成本的有线连接方案。C5506DSP...
>>详细内容
卫生间门控开关 (一)
    本例介绍的卫生间门控开关电路,可以用磁控门开关来控制卫生间内的照明灯和排风扇,实用性较强。  电路工作原理  该卫生间门控开关电路由电源电路和控制电路组成,如图3-52所示。   电源电路由电源变压器T、整流二极管VDl-VD4、滤波电容器Cl、C2和三端集成稳压器ICl组成。交流220V电压经T降压、VDl-VD4整流、Cl滤波和ICl稳压后,在C2两端产生+l2V电压,作为控制电路的工作电压...
>>详细内容
飞思卡尔新推三款MEMS三轴加速传感器,面向手机等应用
    飞思卡尔半导体(Freescale Semiconductor)目前正通过引入高敏感度的XYZ三轴加速计,满足当今智能移动设备领域日益增长的移动感应需求。   从MP3播放器到PDA,再到超小的笔记本电脑,当今的消费者正在越来越多地通过其使用的便携式电子设备的种类以及对这些设备的定制方式来彰显自己的个性。便携式设备的设计人员也在不断寻找新途径,以便在不增加设备尺寸的情况下,让设备具有更...
>>详细内容
吊灯红外遥控开关
    本例介绍的吊灯红外遥控开关,可用家用电器 (例如电视机、影碟机、录像机等)的遥控器进行遥控开、关灯及灯光选择操作。连续按动遥控器上任意键时,吊灯按第1组灯亮→第l、第2组灯均亮→3组灯全部点亮→3组灯全部熄灭→第1组灯亮…的顺序循环变化。  电路工作原理  该吊灯红外遥控开关电路由电源电路、红外接收电路、计数/分配器和控制执行电路组成,如图3-51所示。   电源电路...
>>详细内容
吊灯控制开关 (六)
    电路工作原理  该吊灯控制开关电路由电源电路和控制电路组成,如图3-50所示。   电源电路由电源变压器T、整流桥堆UR、滤波电容器Cl、C2、泄放电阻器Rl组成。  控制电路由电阻器R2-R6、电容器C3-C5、光耦合器VLCl、VLC2、晶闸管VTl、VT2、继电器Kl、K2和二极管VDl、VD2组成。  交流220V电压经T降压、UR整流及Cl、C2滤波后,为控制电路提供lOV左右的工作电压。  接通电源开...
>>详细内容
ANADIGICS最新集成射频模块简化3G手机设计
    ANADIGICS, Inc.在3GSM世界大会(3GSM World Congress)上推出了一个能帮助简化3G设计的前端模块(FEM)AWT6507和AWT6510。此举标志着该公司在整合领域的下一步行动,新的多芯片前端模块能为WCDMA/EDGE(WEDGE)移动手机提供一个完整的发射链,其中包括功率放大器(PA)、射频耦合器、发射滤波器和双工器以及天线开关。   这些前端模块使用了ANADIGICS专有的第三代低功耗高效率(HELP3)技...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com