基于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 总结及展望

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

继续阅读
51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

关于AVR单片机,你了解多少?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss