使用使用stm32l053驱动驱动SD卡卡
本文章是关于使用stm32l053驱动SD卡。
我们先一起了解下sd卡的知识。
SD可分为3类:SD、SDHC、SDXC。
SD是早先的版本的,据说是由MMC演变而来的。最大支持2GB大小容量
SDHC是大容量SD卡,也就是SD High Capacity,支持最大32GB大小容量SDHC,Secure Digital High Capacity,大容量
SD,也就是说,超过2G的SD都叫SDHC,因为早期的SD使用的是FAT16文件系统,并不支持大容量,而SDHC升级为
FAT32,才支持2G以上的大容量。
SDXC(SD eXtended Capacity)支持最大2TB的大小容量。SDXC是SD eXtended Capacity的缩写,是新提出的标准,除了容
量可以升级为最大2T以外,主要是可以支持300M/s的传输速度,也就是说是“高速SD”卡。不过支持SDXC卡的数码相机并不
多,主要都是今年推出的新品,而SDXC又是不可向下兼容的,不支持普通的SD和SDHC卡槽和读卡器。对于大部分数码相机
和单反来说,高速SDHC存储卡的速度已经足以实现高速连拍和高清视频拍摄。
1:SD卡上所有的单元由内部时钟发生器( Internal Clock )提供时钟。接口驱动单元
( Internal driver)同步外部时钟的DAT和CMD信号到内部所用的时钟。
2:本卡由6线SD卡接口控制,包括:CMD,CLK,DAT0-DAT3。
3:SD卡垛叠中为了标识SD卡,一个卡标识寄存器(CID)和一个相应地址寄存器(RCA)
预先准备好。
4:一个附加的寄存器包括不同类型操作参数。这个寄存器叫做CSD。
5:如果接到复位命令(CMD0)时,CS信号有效(低电平),SPI模式启用。命令CMD0
就是0,CMD16就是16,其它以此类推
6:使用SD卡线访问存储器还是寄存器的通信由SD卡标准定义。
7:卡有自己的电源开通检测单元, 无需附加的主复位信号来在电源开启后安装卡。 它
防短路,在带电插入或移出卡时,无需外部编程电压, 编程电压卡内生成。
SD卡的内存组织形式:
数据读写的基本单元是一个字节,可以按要求组织成不同的块。
Block:块大小可以固定,也可以改变,允许的块大小是实际大小等信息存储在CSD 寄存
器。
Sector:和擦除命令相关,由几个块组成。Sector 的大小对每个设备是固定的,大小信
息存储在CSD 寄存器。
SD卡共支持三种传输模式:
1)SPI模式(独立序列输入和序列输出)
2)1位SD模式 (独立指令和数据通道,独有的传输格式)
3)4位SD模式 (使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)
本实验我们采用的是SPI模式,我们主要对这个模式进行分析。
SD 卡可以通过单数据线(DAT0)或四根数据线(DAT0-DAT3)进行数据传输。单根数据线传输最大传输速率为25 Mbit/s,
四根数据线最大传输速率为100 Mbit/s。
SPI模式相对于SD模式的不足之处是丧失了速度性能。SPI模式使用字节传输,所有的数据被融合到一些字节中。SPI模式的
优点就是简化主机的设计。
SD卡SPI模式针脚定义如下: