找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17140|回复: 18
打印 上一主题 下一主题
收起左侧

第20章 单片机驱动SD卡与znFAT文件系统

  [复制链接]
跳转到指定楼层
楼主
51单片机轻松入门—基于STC15W4K系列(C语言版)
李友全
编著 详见:http://www.51hei.com/bbs/dpj-37954-1.html

20SD卡与znFAT文件系统
1 电路图
2 程序移植
3 znFAT文件系统介绍

SD卡广泛运用在手机、数码相机中,本章带领大家入门。

TF卡比标准SD卡(如数码相机上使用的SD卡)在外形上更加小巧,通过SD转接卡也可当

作标准SD卡使用,TF卡主要用在手机上,其容量从128MB到32GB各种规格齐全, TF卡与 标准SD卡仅仅是封装上的不同,它们的传输协议是完全相同的。 SDHC是表示“高容量SD存储卡”,SD 2.0系统规定SDHC是容量大于2GB小于等于32GB的SD 卡,传输速度被定义为Class2(2MB/sec)、Class4(4MB/sec)、Class6(6MB/sec)等级别, 并且在卡片上必须有SDHC标志和速度等级标志,符合SDHC标准的TF卡如下图左所示

(class4是市场上用得最普遍的速度等级),另外,SD协会规定SDHC必须采用FAT32 文 件系统,这是因为之前在SD卡中使用的FAT16文件系统所支持的最大容量为2GB,并不能 满足SDHC的要求。

1 电路图


2 程序移植

SD卡的读写程序可直接使用成熟的程序包,一般不需要对程序包进行修改。

例20.1 SD卡扇区读写驱动测试,要求单片机上电后读取SD卡总容量并将结果通过串口发送 到计算机,R/C时钟:22.1184MHz,波特率9600,计算机串口助手使用字符格式显示,单片 机读取SD卡总容量后对一个程序指定的扇区地址进行数据写入与读出,并验证写入与读出数 据是否完全相符,同时把验证结果发送给计算机串口助手进行显示。

主程序代码如下:

// SD卡的扇区读写测试,可以支持MMC+SD1.0+SD2.0(SD与SDHC)。
#include "sd.h"
#include "uart.h" void main()
{
int i=0,res=0; // res 用于存放函数返回值
unsigned long sec=0; // sec 用于存放函数返回的扇区总数 port_mode(); // 所有IO口设为准双向弱上拉方式。 UART_Init(); // 波特率:9600 /22.1184MHZ
UART_Send_Str("串口设置完毕");
res=SD_Init(); UART_Send_StrNum("SD卡初始化完毕:",res);
sec=SD_GetTotalSec();
UART_Send_StrNum("总扇区:",sec); // 总容量=总扇区*512字节 UART_Send_StrNum("总容量(M):",sec>>11);
// sec>>11表示:总容量(字节)/1024/1024=兆字节

for(i=0;i<512;i++) pbuf[ i]=i; // 清空测试缓冲区

res=SD_Write_Sector(1000,pbuf);

// 512*1000=512千字节,表明可测试小至1M的卡 UART_Send_StrNum("SD卡写扇区完成:",res);

for(i=0;i<512;i++) pbuf[ i]=0; // 清空测试缓冲区

res=SD_Read_Sector(1000,pbuf); UART_Send_StrNum("SD卡读扇区完成:",res);

res=0;

for(i=0;i<512;i++) if(pbuf[ i]!=((unsigned char)i)) res=1;
if(res) UART_Send_Str("SD卡读写有错");
else UART_Send_Str("SD卡OK");
while(1);
}
程序运行结果如下图所示。

3 znFAT文件系统介绍

有了前面的驱动程序,我们已经可以使用SD卡来存储程序运行过程中的重要数据 了,由于SD卡存储容量很大,即使每次使用1个不同的扇区(512字节),也有足 够的空间来存储数据,但有一个问题,通过前面的驱动程序直接写入到SD卡的数 据无法直接在计算机上显示,在计算机上写入到SD卡中的数据也无法使用前面的 驱动程序直接读取出来,为解决这个问题,需要在前面驱动程序的基础上加入文 件系统,让单片机对文件的操作与计算机对文件的操作相兼容,在8位单片机上 方便使用的文件系统是znFAT,znFAT与存储设备的关系如图所示。



51单片机驱动sd卡上面压缩包所有程序下载: 第20章 SD卡.rar (11.3 MB, 下载次数: 366)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏17 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:113004 发表于 2016-5-21 19:54 | 只看该作者
感谢分享
回复

使用道具 举报

板凳
ID:58591 发表于 2016-10-12 15:52 | 只看该作者
感谢分享,支持下
回复

使用道具 举报

地板
ID:144711 发表于 2016-10-27 10:30 | 只看该作者
学习中 真是对文件系统不了解
回复

使用道具 举报

5#
ID:167829 发表于 2017-3-3 10:49 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
ID:171696 发表于 2017-3-18 20:44 | 只看该作者
感谢分享,支持下
回复

使用道具 举报

7#
ID:200484 发表于 2017-5-14 00:37 | 只看该作者
謝謝分享!不夠錢下載
回复

使用道具 举报

8#
ID:250362 发表于 2017-11-17 11:39 | 只看该作者
谢谢分享
回复

使用道具 举报

9#
ID:263813 发表于 2017-12-19 17:32 | 只看该作者
谢谢分享,先行收藏
回复

使用道具 举报

10#
ID:56377 发表于 2017-12-23 10:52 | 只看该作者
谢谢分享,先行收藏
回复

使用道具 举报

11#
ID:277451 发表于 2018-1-18 16:42 | 只看该作者
好东西啊,谢谢分享
回复

使用道具 举报

12#
ID:329461 发表于 2018-5-14 11:29 | 只看该作者
感谢分享
回复

使用道具 举报

13#
ID:393796 发表于 2018-10-23 23:48 | 只看该作者

感谢分享,支持下,辛苦了楼主
回复

使用道具 举报

14#
ID:222011 发表于 2018-11-4 22:13 | 只看该作者
感谢分享
回复

使用道具 举报

15#
ID:382264 发表于 2019-1-21 16:39 来自手机 | 只看该作者
好东西
回复

使用道具 举报

16#
ID:599538 发表于 2019-12-14 22:01 来自手机 | 只看该作者
好东西
回复

使用道具 举报

17#
ID:599538 发表于 2020-4-12 12:29 来自手机 | 只看该作者
支持,太有用了
回复

使用道具 举报

18#
ID:599538 发表于 2020-4-19 14:10 来自手机 | 只看该作者
感谢分享,正在学习
回复

使用道具 举报

19#
ID:983266 发表于 2021-11-22 00:37 | 只看该作者
好东西,现在正在调试这个程序,8G的卡,SPI模式,一直不成功,下载这个试试看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表