




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑基于Flash的大容量高速数据记录仪设计-设计应用现今嵌入式存储产品已渗透进人们生活工作中的方方面面,从ATM机到手持通讯设备。社会对嵌入式产品的性能也有越来越高的要求:大容量,高速度,断电保护,体积限制等等。当前数据记录仪的容量和速度普遍偏小。本文旨在研究一种的数据存储容量达512MB高速数据记录仪,它可以用于多路信号采集系统中。重点研究在嵌入式linux系统平台的架构下基于NandFlash的存储技术。
引言
Flash是一种不挥发性内存,在无电流供应的条件下也能够长久地保持数据,相对于传统的存储介质具有无可比拟的优势。目前主要的闪存分为两类:Intel首先开发的NORFlash和东芝发布的NandFlash。
NorFlash的特点是芯片内执行。应用程序可以直接在闪存内运行。不必再把代码读到系统RAM中。NOR的传输效率很高,但是写入和擦除速度很低。Nandflash存储单元的读写是以页和块为单位来进行,这种结构的优点在于容量可以做得很大,NAND闪存的成本较低,有利于大规模普及。主要功能是存储资料。故而现在码相机闪存卡和MP3播放器中存储设备几乎全部是NandFlash。现在大部分的嵌入式设备厂商出于成本的考虑都选择了NandFlash作为存储设备。这样增加了软件设计的复杂度,降低了系统效率而且也限制了Flash容量。
结合两类闪存的优缺点,本文中我们选择NandFlash作为数据记录仪上午数据存储器,norflash作为数据记录仪的程序存储器。
图1:系统整体结构图图
图2:系统应用软件流程
数据记录仪设计整体包括两块,其部分是数据采集模块一部分是数据存储模块,用TLC2578芯片来实现数据采集AD转换,系统的调度是ARM处理器,在这里使用S3c2440,ARM主要负责处理和控制。存储器负责程序和数据的存储,其中NandFLASH存储数据文件,NorFlash负责存储bootloader,操作系统内核和文件系统,SDRAM存储系统运行时的程序和数据,ARM通过GPIO连接相关继电器、触发设备、输出电压控制设备、以及特定设备采样A/D并进行驱动。
S3C2440是三星公司的ARM920T的ARM控制器:支持32b的高速AMBA总线接口;带有MMU,可以进行Linux操作系统的移植;支持大页NAND闪存控制器。NandFlash芯片选用K9F4G08U0M,这是Samsung生产的512MB的NANDFlash存储器。内部存储结构为(2K+64)字节×32页×4096块,NANDFlash接口信号比较少,数据线宽度只有8bit,CLE和ALE两个引脚信号用来区分总线上的数据类型,没有地址总线。NorFlash采用16MX16位的E28F128J3A,NORFlash接口与系统总路线完全匹配,16个数据输入输出引脚,可以连接在系统总线上。NORFlash有三个芯片片选引脚信号,选用作为片选信号,与处理器引脚相连。BYTE接高电平,表示Flash在16位数据传输模式下。
系统软件组成
本系统的软件部分包括应用程序和系统程序,应用程序主要是AD采集和读写Flash,见图2,而系统程序就是应用程序工作的软件平台。它由以下部分组成:系统引导程序、嵌入式操作系统linux内核、文件系统。
系统引导程序负责将操作系统内核固化到Flash中和系统初始化工作,然后将系统控制权交给操作系统。在本文里我们使用uboot作为系统引导程序。嵌入式操作系统内核是嵌入式系统加电运行后的管理平台,负责实时性任务和多任务的管理,这里选择嵌入式linux内核。
文件系统是对一个存储设备上的数据和元数据进行组织的机制。Linux文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。JFFS2是专门针对嵌入式系统中的Flash存储器的特性而设计的一种日志文件系统。YAFFS2支持大页面的NAND设备,并且对大页面的NAND设备做了优化。
软件平台固化在NorFlash中。根据软件平台的内容对NorFlash的地址空间进行分区,这里分三个区,分别存放bootloader、Linux内核和文件系统。
NandFlash驱动设计
NandFlash驱动程序框架
按照linux下驱动编写规范编写nandflash驱动,其实主要工作就是实现下面这个结构体中的函数。
s3c2440_nand_drive这个结构体用于向内核注册NandFlash设备,它会被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流程
NANDFlash块擦除
本论文所用到的NandFlash的块大小是32X(2k+64)Byte,整块擦除。命令代码流程:首先写入60h进入擦写模式,然后输入块地址,接下来写入D0h,表示擦写结束。
测试结果
在测试NandFlash的读写速度时,我们通过TFTP将数据到RAM中,NandFlash进行读、编程、擦写测试。这样可以比较真实的测试NandFlash的读写速度,测试结果表明从NandFlash读4MBbytes的数据所用的时间是3886ms,向NandFlash写4Mbytes数据所用的时间是14026ms,擦除NandFlash中的4MByte需要的时间是6毫秒。这个速度还是比较理想的,完成对32路AD采集过来数据的实时存储是足够的。而且512MByte的数据存储空间对于数据记录仪而言是一个非常大的容量。
结论
测试结果表明数据记录仪存储速度是比较理想的,完成对AD采集过来数据的实时存储是足够的。而且512MByte的数据存储空间对于数据记录仪而言是一个非常大的容量。
参考文献:
[1].TLC2578datasheet/datasheet/TLC2578+_1095381.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件模板色彩搭配图案
- 放手游戏培训课件
- 课件档案规范
- 速记方法教学课件
- 课件未安装转换程序问题
- 广东航空法自考试题及答案
- 历史国学考试题及答案
- 老庄导读考试题及答案
- 广东法学科目自考试题及答案
- 口服制剂考试题及答案
- GB/T 539-2008耐油石棉橡胶板
- GB/T 11270.1-2002超硬磨料制品金刚石圆锯片第1部分:焊接锯片
- GB/T 10159-2002钢琴
- 储备粮直属库原粮储存项目安全现状评价报告
- 第四章-清洁生产-清洁生产与循环经济课件
- 苏格拉底的哲学思想课件
- 重庆医科大学护理学考研大纲
- 品管圈提高痰培养标本留取率
- TSG11-2020 锅炉安全技术规程
- 物业小区绿化服务程序
- 土地管理法(1986年版)
评论
0/150
提交评论