当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于Flash的大容量高速数据记录仪设计

   现今嵌入式存储产品已渗透进人们生活工作中的方方面面,从ATM 机到手持通讯设备。社会对嵌入式产品的性能也有越来越高的要求:大容量,高速度,断电保护,体积限制等等。当前数据记录仪的容量和速度普遍偏小。本文旨在研究一种的数据存储容量达512MB 高速数据记录仪,它可以用于多路信号采集系统中。重点研究在嵌入式linux 系统平台的架构下基于NandFlash 的存储技术。

  引言

  FLASH 是一种不挥发性内存,在无电流供应的条件下也能够长久地保持数据,相对于传统的存储介质具有无可比拟的优势。目前主要的闪存分为两类:Intel 首先开发的NOR flash 和东芝发布的NandFlash。

  Nor FLASH 的特点是芯片内执行。应用程序可以直接在闪存内运行。不必再把代码读到系统RAM 中。NOR 的传输效率很高,但是写入和擦除速度很低。Nandflash 存储单元的读写是以页和块为单位来进行,这种结构最大的优点在于容量可以做得很大,NAND 闪存的成本较低,有利于大规模普及。主要功能是存储资料。故而现在码相机闪存卡和MP3 播放器中存储设备几乎全部是NandFlash。现在大部分的嵌入式设备厂商出于成本的考虑都选择了NandFlash 作为存储设备。这样增加了软件设计的复杂度,降低了系统效率而且也限制了Flash 容量。

  结合两类闪存的优缺点,本文中我们选择NandFlash 作为数据记录仪上午数据存储器,norflash 作为数据记录仪的程序存储器。
 


图 1:系统整体结构图图

  数据记录仪设计整体包括两块,其部分是数据采集模块一部分是数据存储模块,用TLC2578 芯片来实现数据采集AD 转换,系统的调度核心是ARM 处理器,在这里使用S3c2440,ARM 主要负责核心处理和控制。存储器负责程序和数据的存储,其中Nand FLASH 存储数据文件,Nor Flash 负责存储bootloader,操作系统内核和文件系统,SDRAM 存储系统运行时的程序和数据,ARM 通过GPIO 连接相关继电器、触发设备、输出电压控制设备、以及特定设备采样A/D 并进行驱动。

  S3C2440 是三星公司的ARM920T 的ARM 控制器:支持32 b 的高速AMBA 总线接口;带有MMU,可以进行Linux 操作系统的移植;支持大页NAND 闪存控制器。NandFlash 芯片选用K9F4G08U0M,这是Samsung 生产的512 MB 的NAND Flash 存储器。内部存储结构为(2K+64)字节×32 页×4 096 块,NAND Flash 接口信号比较少,数据线宽度只有8bit,CLE 和ALE 两个引脚信号用来区分总线上的数据类型,没有地址总线。Nor Flash 采用16MX16 位的E28F128J3A,NORFlash 接口与系统总路线完全匹配,16 个数据输入输出引脚,可以连接在系统总线上。NORFlash 有三个芯片片选引脚信号,选用作为片选信号,与处理器引脚相连。BYTE接高电平,表示Flash 在16 位数据传输模式下。

  系统软件组成

  本系统的软件部分包括应用程序和系统程序,应用程序主要是 AD 采集和读写Flash,见图2,而系统程序就是应用程序工作的软件平台。它由以下部分组成:系统引导程序、嵌入式操作系统linux 内核、文件系统。

  系统引导程序负责将操作系统内核固化到Flash 中和系统初始化工作,然后将系统控制权交给操作系统。在本文里我们使用uboot 作为系统引导程序。嵌入式操作系统内核是嵌入式系统加电运行后的管理平台,负责实时性任务和多任务的管理,这里选择嵌入式linux 内核。

  文件系统是对一个存储设备上的数据和元数据进行组织的机制。Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。JFFS2 是专门针对嵌入式系统中的Flash 存储器的特性而设计的一种日志文件系统。YAFFS2 支持大页面的NAND 设备,并且对大页面的NAND 设备做了优化。

  软件平台固化在Nor Flash 中。根据软件平台的内容 对Nor Flash 的地址空间进行分区,这里分三个区,分别存放bootloader、Linux 内核和文件系统。[!--empirenews.page--]

  NandFlash 驱动设计

  NandFlash 驱动程序框架

  按照 linux 下驱动编写规范编写nand flash 驱动,其实主要工作就是实现下面这个结构体中的函数。


  s3c2440_nand_drive 这个结构体用于向内核注册Nand Flash 设备,它会被platform_driver_register 函数调用到。其中s3c2440_nand_probe 是最重要的,它完成对nand 设备的探测。


  Nand_scan 是在初始化nand 的时候对nand 进行的一步非常好重要的操作,在nand_scan 中会对我们所写的关于特定芯片的读写函数重载到nand_chip 结构中去,并会将mtd_info 结构体中的函数用nand 的函数来重载,实现了mtd 到底层驱动的联系。并且在nand_scan 函数中会通过读取nand 芯片的设备号和厂家号自动在芯片列表中寻找相应的型号和参数,并将其注册进去。

  NandFlash 读页操作函数

  NandFlash 读数据操作以页为单位,读数据首先写入读数据命令00H(如图3),然后输入要读取页的地址,接着从数据寄存器中读取数据,最后进行ECC 校验。

  NandFlash 写操作

  写操作其实就是对页进行编程命令。见图4,首先写入80h 开始编程模式,接下来写入地址和数据; 最后写入10h 表示编程结束。程序如下:


 


图3:读NandFlash 流程


图4: 写NandFlash 流程[!--empirenews.page--]


 

  NAND Flash 块擦除

  本论文所用到的Nand Flash 的块大小是32X(2k+64)Byte,整块擦除。命令代码流程:首先写入60h 进入擦写模式,然后输入块地址,接下来写入D0h, 表示擦写结束。

  测试结果

  在测试 Nand Flash 的读写速度时,我们通过TFTP 将数据下载到RAM 中,Nand Flash 进行读、编程、擦写测试。这样可以比较真实的测试Nand Flash 的读写速度,测试结果表明从NandFlash 读4MBbytes 的数据所用的时间是3886ms,向Nand Flash 写4Mbytes 数据所用的时间是14026ms,擦除NandFlash 中的4MByte 需要的时间是6 毫秒。这个速度还是比较理想的,完成对32 路AD 采集过来数据的实时存储是足够的。而且512MByte 的数据存储空间对于数据记录仪而言是一个非常大的容量。

  结论

  测试结果表明数据记录仪存储速度是比较理想的,完成对AD 采集过来数据的实时存储是足够的。而且512MByte 的数据存储空间对于数据记录仪而言是一个非常大的容量。

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

我们知道 Flash 读时序里有五大子序列 CMD + ADDR + MODE + DUMMY + READ,前面的文章中痞子衡讲过《串行NOR Flash的Continuous read模式》,Continuous r...

关键字: CMD ADDR Flash

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。

关键字: Flash 存储器 嵌入式系统

(全球TMT2022年8月2日讯)7月28日,为期三天的2022全球闪存峰会(Flash Memory World)召开。期间,2022年闪存风云榜榜单正式发布,忆联一举斩获"十大闪存控制器企业金奖"荣誉称号。...

关键字: 控制器 PCIE 电脑 Flash

(全球TMT2022年6月28日讯)浪潮存储基于大量的NAND测试数据,在反复探索和实践推理过程中发现了企业级固体硬盘普遍面临三个挑战: 首先,NAND特性会影响数据的可靠性。例如NAND中未写满数据的块因数据保...

关键字: NAND 闪存盘 电压 Flash

因为台湾英语里把固体电容称为Solid而得名。SSD由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上基本与普通硬盘一致(新兴的...

关键字: 电容 SSD Flash

TD-SCDMA是英文Time Division-Synchronous Code Division Multiple Access(时分同步码分多址)的简称,它是以我国知识产权为主的、被国际上广泛接受和认可的无线通信国...

关键字: TD-SCDMA HSPA+ 高速数据

摘要:阐述了NANDFLASH的工作原理和访问方式,提出了一种基于51内核单片机存储、读取NANDFLASH的实现方法,给出了K9F2G08UXA与单片机的接口电路,同时给出了对K9F2GO8UXA芯片进行读操作、页编程...

关键字: 51内核 NANDFLASH 块擦除 页编程

韩国首尔2021年11月9日 /美通社/ -- 今日,三星宣布成功开发出其业界首款基于14纳米的下一代移动DRAM -- LPDDR5X(低功耗双倍数据速率5X),将引领超高速数据服务市场的增长。 三星成功开发LPDD...

关键字: 高速数据 超高速 三星

摘 要:为解决实验室某些海洋观测类IO设备价格昂贵、体积较大、数量较少的问题,文中设计了一款IO设备模拟器。IO模拟器是一款模拟IO设备指令与相应响应的模块,系统以STM32F103为主控制器件,将Keil MDK-AR...

关键字: 模拟器 STM32 Flash 设备学习

01前言嵌入式软件中经常要存储一些非易失参数,例如用户设置、校准参数、设备运行参数等,通常情况下我们都会选择存储在EEPROM或者SPI-FLASH中。在削减成本考量的情况下,我们可以把存储器省下来,参数存储在内部fla...

关键字: Flash 嵌入式

嵌入式软件

15715 篇文章

关注

发布文章

编辑精选

技术子站

关闭