基于ATmega32的SD卡上FAT32文件系统数据读取
SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2 g,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
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文件系统的效率。欢迎转载,本文来自电子发烧友网(http://www.elecfans.com )
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文件系统资源管理,因此本系统具有一定社会价值和应用价值。
基于ATmega32的SD卡上FAT32文件系统数据读取相关推荐
- SD卡移植FAT32文件系统无MBR
问题:在研究SD卡和FAT32文件系统的时候,发现SD卡有的有MBR,有的没有MBR,这个为什么呢? 分析:MBR是主引导记录,是在给磁盘分区的时候建立的,我们的SD卡没有这个可能就是没有进行过分区操 ...
- 挂载镜像SD卡的FAT32文件系统分区到Linux中
首先使用fdisk –l命令查看sd卡的分区息 可以看到,sd卡有三个分区,第一个分区是FAT32系统,主要存放内核img文件和dtb文件,第二个分区是Linux系统分区,第三个分区格式未知,实际是U ...
- 从sd卡启动之文件系统制作
在调试andriod的代码时候发现了一个问题.在andriod调试的时候无法进入常规的文件系统进行简单的操作.由于想要把alsa移植到210的开发板中,发现"/"文件系统是无法进行 ...
- mac os android sd卡,如何在Mac OS下永久删除SD卡上的文件?
Mac数据恢复软件可以轻松恢复已删除或格式化的数据.因此,在Mac OS下从SD卡删除文件时,Mac数据恢复软件也可以恢复删除的文件.在某些情况下,仅删除是不够的.例如,当您要丢弃旧的SD卡时,应确保 ...
- 监控器sd卡初始化怎么恢复数据?有这三种方法可尝试
sd卡监控器数据能恢复吗?监控器sd卡初始化怎么恢复数据?如果您的监控器sd卡被初始化(格式化)导致数据丢失,建议立即停止使用sd卡,因为如果您继续使用sd卡,它可能会覆盖您要恢复的数据,导致无法恢复 ...
- 【FatFs】基于STM32 SD卡移植FatFs文件系统
相关文章 <[SDIO]SDIO.SD卡.FatFs文件系统相关文章索引> 1.前言 FatFs是一个通用的FAT/exFAT文件系统模块,用于小型嵌入式系统.它完全是由 ANSI C 语 ...
- 【STM32Cube_20】在SD卡上移植FATFS文件系统
本篇详细的记录了如何使用STM32CubeMX移植FATFS文件系统到SD卡上. 1. 准备工作 硬件准备 开发板 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): Mi ...
- 学习笔记——基于FPGA的SD卡学习(1)
SD卡介绍 SD卡( Secure Digital Card),即安全数字卡 ,具有两个突出的优点 更高的安全性和更快的读写速度 . SD卡分类 SD卡从存储容量上分为3个级别,分别为SD卡.SD ...
- 新唐NUC980使用记录:U-Boot Linux 编译与烧录(基于SD1位置SD卡)
文章目录 目的 SD卡分区 U-Boot编译 U-Boot环境变量 Linux编译 默认设置 使用SD卡剩余分区 使用SD卡分区存放rootfs 制作系统镜像 总结 目的 这篇文章中将测试在 NUC9 ...
最新文章
- 再探文件输入和输出函数
- Java知多少(25)再谈Java包
- ado数据处理超时限制
- 合唱队(最长子序列问题)
- C++中在浏览器打开html文件
- Mac下安装caffe(cpu-only)
- tcpdf html 支持css吗,TCPDF 5.1 发布,增加对CSS的支持
- python读取文件格式化方法
- python读取txt文件
- 常见的 360° 全景视频格式介绍及播放方式
- Wps文件如何转成word文档
- itextpdf将带复选框的html_使用flying-saucer 实现 html转pdf实现input框select,textarea checkbox等的显示...
- 机械专业中的计算机应用系统,计算机技术在机械制造领域的应用
- 【ODX介绍】-3.1-ODX-D,ODX-F,ODX-C,ODX-V,ODX-M的XSD文件
- 用php实现日历输出,php 实现日历
- mac Anaconda matplotlib 中文乱码问题
- R语言--百度ECharts接口(echarts4r包)
- 64位Windows7下TQ2440开发板的环境搭建
- 用计算机对数字 字符,在计算机中用二进制表示指令和字符,用十进制表示数字?...
- 搭建机器人电控系统——器件选型——如何选择机器人系统电源?
热门文章
- 中国电子学会scratch等级考试三级历年真题解析【持续更新 已更新至2022年9月】
- 通过图像转换软件打造95%原创文章--真的可以告别伪原创(有点扯)
- Maya AdvancedSkeleton5 绑定笔记
- C++库std::future
- android将apk生成的二维码放到本地tomcatjenkin(Android 生成二维码)
- IEC104协议规约通过工业智能网关(协议转换器)转换modbus协议?
- 如何在mac上安装虚拟机搭载Windows
- 经典CNN模型特点总结
- 航电 2212 java AC
- SAP BAPI 生产订单确认相关