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字节条目表示。每个条目记录名字、扩展名、属性(文件、目录、隐藏、只读、系统和卷)、创建的日期和时间、文件/目录