一种SD卡上FAT32文件系统数据读取

时间:2011-09-04

  SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2 g,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。

  SD 卡在24mm×32mm×2.1mm的体积内结合了SanDisk快闪记忆卡控制与MLC(Multilevel Cell)技术和Toshiba(东芝)0.16u及0.13u的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏

  1 文件系统

  1.1 FAT文件系统简介

  文件配置表(FAT)是一种由微软公司发明的并带有部分的文件系统,供MS-DOS使用,也是非NT内核的微软窗口使用的文件系统。FAT文件系统考虑当时计算机效能有限,所以未被复杂化,因而被几乎所有个人计算机的操作系统支持。这些特性使它成为理想的软盘和记忆卡的文件系统。但FAT有一个严重的缺点:当文件被删除并且在同一位置被写入新数据,他们的片段通常是分散的,减慢了读写速度。磁盘碎片重整是一种解决方法,但必须经常重组来保持FAT文件系统的效率。

  微软在Dos/Windows系列操作系统中共使用了6种不同的文件系统(包括即将在windows的下一个版本中使用的Winfs)。它们分别是:FAt12、FAT16、FAT32、NTFS、NTFS5.0和WINFS。下面我们一一来对它们的相关特点和规则做个介绍。其中FAt12、FAT16、FAT32均是Fat文件系统。是File Allocation Table的简称。

  1.2 FAT文件系统升级版

  FAT32实际上是文件分区表采取的一种形式,它是相对于FATl6而言的。它可以大大地节约磁盘空间。文件在磁盘上是以簇的方式存放的,簇里存放了一个文件就不能再存放另外的文件。

  FAT32的优点是可以支持的磁盘大小达到2 TB(2 048 GB),但是不能支持小于512 MB的分区。由于采用了更小的簇,FAT32文件系统可以更有效率地保存信息。这与大的FAT或FAT16驱动器相比,可将磁盘空间的使用率提高10 9,6~15%。

  FAT32更稳定可靠。FAT32可以重新定位根文件夹,而且它使用文件分配表的备份副本,而不是使用默认副本。此外,FAT32驱动器上的引导记录也得到扩展,包括了关键数据结构的备份副本。因此,与现有的FAT16驱动器相比,FAT32驱动器不容易受单点故障的影响。

  FAT32更灵活。FAT32驱动器上的根文件夹是普通的簇链,因此它可以位于驱动器上的任何位置。以前对根文件夹数量的限制不复存在。这样就可以让文件分配表的副本而不是让个文件分配表处于活动状态。这些功能允许您动态重调FAT32分区的大小。

  2 硬件设计

  2.1 芯片概述

  芯片就是IC,泛指所有的电子元器件,是在硅板上集合多种电子元器件实现某种特定功能的电路模块。它是电子设备中重要的部分,承担着运算和存储的功能。集成电路的应用范围覆盖了军工、民用的几乎所有的电子设备。

  ATmega32是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega32的数据吞吐率高达1 MIPS/MHz,所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问2个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器至10倍的数据吞吐率。

  PL2303用于实现USB和标准RS 232串行端口之间的转换,2个独立的大型缓冲用于两种总线的连接,大型数据缓冲器用于USB的批量数据传输,自动握手模式可用于串行通讯,因而可以达到远大于标准UART控制器的波特率。

  NOKIA 5110液晶显示器,传统的点阵式液晶显示器,不内置英文及汉字字库,因此NOKIA 5110液晶显示的过程,需要单片机把从存储器中读取到的ASCII码值转换成对应的英文及汉字点阵信息,然后通过串口把点阵信息传输到液晶显示器上进行显示。

  2.2 硬件设计

  硬件单元包括:AVR主控ATmega32单元模块,SD卡接口模块,液晶显示接口模块,串口转USB接口。

  2.2.1 主控电路设计

  主控电路(如图1所示)主要负责将从输入接口中读到的数据转换成对应的字模码。

主控电路设计 www.elecfans.com

  2.2.2 存储系统模块及接口设计

  SD卡接口如图2所示。

  2.2.3 液晶显示模块设计

  液晶显示接口如图3所示。

液晶显示接口 www.elecfans.com

  2.2.4 USB转换接口模块设计

  计算机端串行转USB接口的设计如图4所示。

 计算机端串行转USB接口的设计 www.elecfans.com

  3 软件设计

  软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。建议用数学语言来抽象事务和问题,因为数学是的抽象语言,并且它的本质就是抽象。将复杂的问题分解成可以管理的片断会更容易。将问题或事物分解并模块化这使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。

  系统软件设计主要包括AVR单片机主控程序,中断服务控制子程序,LCD控制子程序,编码转化子程序等几个模块。单片机端程序运行流程如图5所示,计算机端运行程序流程如图6所示。

单片机端程序运行流程如图5所示,计算机端运行程序流程如图6所示 www.elecfans.com

 

  4 总结及展望

  由于本设计中采用的都是一些通用器件,是对通用器件的尝试性扩展应用,通过LCD设计的人机接口实现设备的友好操作,能够通过单片机和计算机进行双向立体式的读写,能够实现在线的实时的FAT32文件系统资源管理,因此本系统具有一定社会价值和应用价值。


  
上一篇:对数放大器AD8310的介绍
下一篇:在TMS320VC5402上移植μC/OS-II操作系统

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料