基于ATmega32的SD卡上FAT32文件系统数据读取
SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2 g,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
本文正是通过AVR单片机经过软硬结合的设计方案,来读取SD卡上FAT32文件系统中的数据,FAT32是微软公司开发的新一代的文件系统,支持更大的存储容量和长达255个字符的文件名,也可以通过串口转USB接口芯片通过计算机来访问存储器中的数据,从而实现多渠道的立体的访问方式,进一步提升了资源的利用率。
1 文件系统
1.1 FAT文件系统简介
文件配置表(FAT)是一种由微软公司发明的并带有部分专利的文件系统,供MS-DOS使用,也是非NT内核的微软窗口使用的文件系统。FAT文件系统考虑当时计算机效能有限,所以未被复杂化,因而被几乎所有个人计算机的操作系统支持。这些特性使它成为理想的软盘和记忆卡的文件系统。但FAT有一个严重的缺点:当文件被删除并且在同一位置被写入新数据,他们的片段通常是分散的,减慢了读写速度。磁盘碎片重整是一种解决方法,但必须经常重组来保持FAT文件系统的效率。
1.2 FAT文件系统升级版
FAT32实际上是文件分区表采取的一种形式,它是相对于FATl6而言的。它可以大大地节约磁盘空间。文件在磁盘上是以簇的方式存放的,簇里存放了一个文件就不能再存放另外的文件。
FAT32最大的优点是可以支持的磁盘大小达到2 TB(2 048 GB),但是不能支持小于512 MB的分区。由于采用了更小的簇,FAT32文件系统可以更有效率地保存信息。FAT32可以更高效地使用空间。FAT32使用较小的簇(即,对于大小在8 GB以内的驱动器,使用4 KB的簇),这与大的FAT或FAT16驱动器相比,可将磁盘空间的使用率提高10 9,6~15%。
FAT32更稳定可靠。FAT32可以重新定位根文件夹,而且它使用文件分配表的备份副本,而不是使用默认副本。此外,FAT32驱动器上的引导记录也得到扩展,包括了关键数据结构的备份副本。因此,与现有的FAT16驱动器相比,FAT32驱动器不容易受单点故障的影响。
FAT32更灵活。FAT32驱动器上的根文件夹是普通的簇链,因此它可以位于驱动器上的任何位置。以前对根文件夹数量的限制不复存在。此外,可以禁用文件分配表镜像,这样就可以让文件分配表的副本而不是让第一个文件分配表处于活动状态。这些功能允许您动态重调FAT32分区的大小。
2 硬件设计
2.1 芯片概述
ATmega32是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega32的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。ATmega32 AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问2个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。
PL2303用于实现USB和标准RS 232串行端口之间的转换,2个独立的大型缓冲用于两种总线的连接,大型数据缓冲器用于USB的批量数据传输,自动握手模式可用于串行通讯,因而可以达到远大于标准UART控制器的波特率。PL2303支持USB电源管理和远程唤醒协议。本设计中PL2303芯片主要应用在将主控单元的下载线与供电模块合二为一,大大简化了系统的设计复杂度。
NOKIA 5110液晶显示器,传统的点阵式液晶显示器,不内置英文及汉字字库,因此NOKIA 5110液晶显示的过程,需要单片机把从存储器中读取到的ASCII码值转换成对应的英文及汉字点阵信息,然后通过串口把点阵信息传输到液晶显示器上进行显示。
2.2 硬件设计
硬件单元包括:AVR主控ATmega32单元模块,SD卡接口模块,液晶显示接口模块,串口转USB接口。
2.2.1 主控电路设计
主控电路(如图1所示)主要负责将从输入接口中读到的数据转换成对应的字模码。
2.2.2 存储系统模块及下载接口设计
SD卡接口如图2所示。
2.2.3 液晶显示模块设计
液晶显示接口如图3所示。
2.2.4 USB转换接口模块设计
计算机端串行转USB接口的设计如图4所示。
3 软件设计
系统软件设计主要包括AVR单片机主控程序,中断服务控制子程序,LCD控制子程序,编码转化子程序等几个模块。单片机端程序运行流程如图5所示,计算机端运行程序流程如图6所示。
4 总结及展望
由于本设计中采用的都是一些通用器件,是对通
- 基于ARM9和μC/OS-II的SD卡文件系统设计与实现(07-08)
- 基于ARM9-μC/OS-II软硬件平台的SD卡文件系统的设计与实现(09-09)
- 基于FAT16文件系统的嵌入式温度记录器(05-30)
- SPI Flash M25P32 的TFFS文件系统的设计与实现(07-04)
- AT24C512中数据的文件系统化管理(10-09)
- 嵌入式设备上的文件系统优化设计(01-12)