首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
测试测量
» 基于Flash的大容量高速数据记录仪设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于Flash的大容量高速数据记录仪设计
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2015-4-28 19:39
|
只看该作者
基于Flash的大容量高速数据记录仪设计
记录仪
,
Flash
,
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 内核和文件系统。
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 校验。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议