APP下载

铁电存储器与SD卡的数据传输方法

2010-09-25郭刚米文鹏董巍巍胡礼勇

单片机与嵌入式系统应用 2010年8期
关键词:铁电扇区存储器

郭刚,米文鹏,董巍巍,胡礼勇

(第二炮兵青州士官学校,262500 青州)

引 言

FM24C256铁电存储器具有非易失性和高可靠性,且结构简单,因此被广泛地应用于手持振动信号采集仪器中,作为数据采集存储器使用。当需要将铁电存储器中的数据传送到上位机时,目前的做法大多是通过串口或者USB接口连接采集器和上位机,上位机通过专门的软件接收数据。这样做需要进行线路连接,而且数据传输时间长、可靠性低。

SD卡(Secure Digital Memory Card)是由日本松下、东芝及美国SanDisk公司于1999年 8月共同开发研制的,一种基于半导体快速闪存的新一代记忆设备。它具备体积重量小、存储容量大、数据传输快等诸多优点,支持SD和SPI两种数据读写模式,很容易和具有SPI接口的单片机进行数据交互[1]。因此,先将铁电存储器中的数据以文件形式传输到SD卡上,再由上位机通过读卡器读取SD卡中的数据,逐渐成为一种廉价、便捷、高效的采集数据传输方案。本文介绍了一种利用ATmega64L的TWI和SPI接口,快速地实现 FM24C256铁电存储器数据向SD卡传输的一种方法。

1 系统硬件设计

1.1 总体设计

本系统采用Atmel公司AVR系列的ATmega64L单片机作为控制核心。ATmega64L为基于RISC结构的8位低功耗CMOS微处理器,大部分指令都可以在一个时钟周期内完成,最高可支持16 MHz的系统时钟;具有片载64 KB的在系统内可编程Flash、2 KB EEPROM 、4 KB SRAM,以及53个通用I/O口线、32个通用工作寄存器和串口、SPI接口、TWI接口等丰富的外围接口电路。[2]

FM24C256是用先进的铁电技术制造的256 Kb的非易失性存储器。它可以以总线速度进行写操作,掉电后可以保存10年,可以承受超过100亿次的读写操作,同时具有功耗低、可靠性高、结构简单等诸多优点,特别适合用作嵌入式手持数据采集系统的数据存储器。

系统硬件结构框图如图1所示,本文只研究虚线框内的部分。

1.2 ATmega64L与铁电的硬件接口设计

图1 系统硬件结构框图

ATmega64L单片机内部集成了 TWI(Two-Wire SerialInterface)接口模块。TWI由总线接口单元、比特率发生器、地址匹配单元和控制单元等几个子模块组成。该总线只需两个上拉电阻,使用时钟线 SCL和数据线SDA就可以将128个不同的具有TWI接口的设备连接到一起。TWI接口是面向字节和基于中断的,所有的总线事件都会产生一个TWI中断。由于TWI接口是基于中断的,因此TWI接口在字节发送和接收过程中不需要应用程序干预,而且支持主机和从机操作,数据传输频率高达400 kHz[2]。

铁电存储器 FM24C256的 SCL、SDA引脚分别和ATmega64L单片机的SCL(PD0)、SDA(PD1)引脚连接,并且分别通过1个6.8 kΩ的上拉电阻连接到+5 V电源;写保护引脚VP则与单片机的PD4引脚连接,以控制铁电存储器的写保护状态。

1.3 ATmega64L与SD卡的连接

SPI[2]接口是一种同步串行外设接口,允许CPU与各种外围接口器件以串行方式进行通信、交换信息。它使用4条线:串行时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(SS)。ATmega64L自带的SPI接口具有全双工、3线同步数据传输、主机或从机操作、LSB首先发送或MSB首先发送、7种可编程的比特率、传输结束中断、写碰撞标志检测、可以从闲置模式唤醒等特点。以ATmega64L为SPI的主设备时,用户只需编程控制SS引脚,向SPI数据寄存器写入数据(即启动SPI时钟),传输结束后SPI时钟停止,传输结束标志SPIF置位。

SD 卡的 1(CS)、2(DI)、5(SCLK)、7(DO)引脚分别和ATmega64L单 片机 的 PB0(SS)、PB2(MOSI)、PB1(SCK)、PB3(MISO)引脚连接。其中,2和7引脚还分别通过一个10 kΩ的上拉电阻连接到+3.3 V电源;VDD引脚连接+3.3 V电源;3和6引脚接地;8、9引脚不连接。

2 系统软件设计

2.1 FAT32文件系统

FAT32指的是文件分配表(File Allocation Table,FAT)采用32位二进制数记录管理的文件系统。FAT32文件系统将逻辑盘的空间划分为3个部分:引导区(BOOT)、文件分配表区(FAT)和数据区(DATA)。引导区和文件分配表区又合称为“系统区”。

引导区(BOOT区)从第1个扇区(逻辑扇区0)开始,使用3个扇区,之后还留有若干个保留扇区,共占用32个扇区。其中,第1个扇区中的BPB参数块记录分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元大小等重要参数。

文件分配表(FAT)从逻辑扇区1开始,是文件管理系统用来给每个文件分配磁盘物理空间的表格。它由表标识和簇映射的集合组成,一个完全相同的镜像副本连续存储在主FAT表后。文件分配表的作用就是跟踪文件,具体描述整个磁盘分区中的每个存储单元(簇)的使用情况、文件数据的簇存储情况(连续或碎片),以及树型目录结构。文件分配表实际上就是一个卷中所有簇使用情况的映射表,每个文件、目录都同表中的若干项具有对应联系,并在目录中进行索引。

FAT之后的根目录区用来记录整个磁盘上所有文件的有用信息,其中每一个文件占32字节,包括文件名、文件属性、文件的修改时间和文件的长度等[3]。由于FAT32文件系统对文件的概念进行了扩展,根目录也看作是文件,根目录区自然属于数据区的一部分,并位于数据区之首。根目录区后面的其他数据区,用来存储组成各个文件的数据信息。

2.2 ATmega64L对铁电存储器和SD卡的读写

ATmega64L通过片内的 TWI和SPI接口分别对铁电存储器和SD卡进行基本读写操作的方法,在许多文章[3-5]中已有详实介绍。这里仅给出自行编写的相应功能函数。其中,SLA是铁电地址,suba是子地址,Wdata是要写入的数据,sector是扇区地址,buffer是数据缓存数组。

2.3 铁电存储器与SD卡的数据传输

2.3.1 SD卡初始化

选择1个目前非常普及的2 GB SD卡,通过USB读卡器连接上位机;按FAT32格式对其进行格式化,并把预先建立的每个64 KB的标准文本文件1.txt、2.txt、3.txt和4.txt依次复制到SD卡上。通过磁盘软件WinHex查看SD卡中的信息,如图2所示。

图2明确显示,初始化完成后的SD卡每个扇区包含 512字节,每个簇包含4 096字节(即每个簇包含 8个扇区),整张SD卡包含490 557个簇;4个.txt文件的容量大小都是64 KB,在SD卡上的起始扇区号分别为7712、7840、7968、8096;每个文件占据 16 个连续的簇,即占用128个连续的扇区。

图2 扇区和簇容量关系图

2.3.2 数据传输的实现

ATmega64L单片机采集到的每个电压信号经10位A/D转换后存放在铁电中,占用2个连续的字节,而 SD卡数据区的1个字节对应着文本文件中的1个字符。它们的转化关系如图3所示。

图3 铁电—SD卡数据存储转化关系图

利用SD卡初始化后的文件结构和ATmega64L对铁电存储器/SD卡的底层读写函数,每次从铁电存储器中读出连续的256字节采样数据(128个采样点数据),转化成512字节数据存放在缓冲数组中,然后再把这些数据写入SD卡对应物理地址的一个扇区。按照顺序重复上述过程,便可轻松实现铁电存储器中的数据向SD卡的传输。本文使用一个函数来实现4块铁电存储器的数据向4个文本文件的传输。

结 语

本文在分析FAT32文件格式的基础上,利用AT-mega64L单片机对铁电存储器和SD卡物理地址的底层读写函数,实现了铁电存储器中二进制数据到SD卡上的传输,并保存为文本文件,为上位机对采集数据的进一步分析提供了便利。利用Windows操作系统完成了SD卡的文件系统的构建,单片机只需完成二进制数据的搬运,而不必进行复杂的FAT32文件系统的操作,从而提高了操作速度和可靠性。

经过实验验证,这种操作方法只需17 s便可把4块铁电存储器中的 128 KB(64K个采样数据)的数据传输到SD卡上,传输结果准确无误。只要不格式化SD卡或者更改.txt文件,这张SD卡上的剩余空间完全可以像普通SD卡一样正常使用。这为小型嵌入式手持数据采集系统的数据导出,提供了一种简单且高效的方法。

[1]SanDisk Corporation.SanDisk Secure Digital Card Product Manual,2003-12:1,9.

[2]Atmel Corporation.8-bit AVR Microcontroller ATmega64/64L M anual,2008-05:1-6,163-170,198-226.

[3]李文明,张涛,郑丽娜.AVR单片机读写SD卡技术[J].电子测量与仪器学报,2009(增刊):605-608.

[4]SD Group.SD Memory Card Specifications Physical Layer Specification.Version 1.0,2000-03.

[5]张洪涛,莫文承,李兵兵.基于SPI协议的SD卡读写机制与实现方法[J].电子元器件应用,2008,10(3):42-43,47.

猜你喜欢

铁电扇区存储器
硅片上集成高介电调谐率的柱状纳米晶BaTiO3铁电薄膜
分阶段调整增加扇区通行能力策略
静态随机存储器在轨自检算法
铁电材料中发现周期性半子晶格
U盘故障排除经验谈
铁电隧道结界面效应与界面调控
基于贝叶斯估计的短时空域扇区交通流量预测
铁电-介电复合陶瓷的介电响应
重建分区表与FAT32_DBR研究与实现
存储器——安格尔(墨西哥)▲