sd卡SDIO方式的读写

本文详细介绍了SD卡的工作机制,包括NAND和NorFlash的区别,SDIO协议的时序逻辑和数据传输,以及FAT文件系统的组成部分和调用过程。特别关注了如何通过SDIO协议在嵌入式系统中进行数据操作和文件管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sd卡 secure digital memory card

nand flash 插入,清除,读写都要以块为单位。

nor flah 只要擦除时以块为单位,读取,写入可以以字节为单位。

sd卡知识

sd存储卡分为sd卡,sd hc卡,sdxc卡。

SDIO protocol

SDIO bus

SDIO的总线类型分为clock,cmd,data总线,其中data总线有1条或者4条。

时序逻辑是clock为上升沿时,cmd,data总线上的数据才有效,因此SDIO protocol 时同步通讯协议。

通信方式:host(主机)通过cmd总线向device发送命令,若device响应,则会执行该命令;若device不响应,则该命令无效。通过data block or data stream的方式在总线上传输数据,其中data block需要增加crc校验验证数据的正确与否。

      SDIO 传输1

                        SDIO 传输2

sd卡是存储器,存储器无论是清除,读取,创建数据都需要一定的时间,因此sd卡采用SDIO协议进行通信时会将D0总线拉低表示数据忙。

fat文件系统(file allocation table)

文件系统是使用存储器的抽象,提供了在存储器中创建文件,读取文件,删除文件,了解存储剩余容量等操作的接口。

相关定义

sectors:扇区,读写存储器的最小抽象存储单位,一般为512 byte,可以更大。

cluster(block): n个sectors组成了cluster(block)。在fat文件系统中,sectors组成存储单位叫做cluster,linux的文件系统叫做block。

fat文件系统的组成

fat文件系统由4个部分组成,分别是boot sector,fat region,root directory region, data region。

boot sector

boot sector引导扇区由Jump Instruction,OEM ID,BPB,end of sector marker组成。

OEM ID的全程是original equipment manufacturer identifier,用来记录系统设备制造商或是该volume创作者的信息。

BPB全程是BIOS parameter block。可能记录了总扇区数目,每个扇区拥有的字节数,每个簇有多少个扇区,保留扇区数,根目录项数,存储介质类型。

file allocation table

file allocation table指明了数据区每个簇分配的地址,每个簇之间的关系和每个簇的情况。

记录一个一个文件的分配情况,fat是映射到每个簇的条目列表,应该记录

  • 链中下一个簇的地址
  • 一个特殊的簇链结束符EOC,End Of Cluster-chain,或称End Of Chain)符号指示链的结束
  • 一个特殊的符号标示坏簇
  • 一个特殊的符号标示保留簇
  • 0来表示空闲簇

root directory

是一个表示目录的特殊类型文件(现今通常称为文件夹)。它里面保存的每个文件或目录使用表中的32字节条目表示。每个条目记录名字、扩展名、属性(文件、目录、隐藏、只读、系统和卷)、创建的日期和时间、文件/目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值