FPGA——SD卡控制器1

sd卡简介

sd卡(secure digital card),安全数码存储卡。是从MMC(多媒体卡)的基础上发展而来的,增加了更高的安全性和更快的读写速度。目前已经成为消费数码产品设备中最广泛的一种存储卡。

特点:体积小,传输速度快,容量大,支持热插拔

基于flash结构,所以可以断电保存数据
sd卡 = 卡套 + Miscro sd卡
sd卡有9个引脚,TF卡有8个引脚,MMC卡有七个引脚。
sd卡从存储容量上分为三个级别,不同协议规范的SD卡有不同的等级

sd卡类型 协议规范 容量等级 支持文件系统
SDSC SD1.0 -2GB FAT12,FAT16
SDHC SD2.0 2GB-32GB FAT32
SDXC SD3.0 32GB-2TB exFAT

TF卡引脚定义

FPGA——SD卡控制器1_第1张图片
主要有四根线:时钟,片选,主机输入从机输出,从机输入主机输出
主机指fpga,从机指sd卡

常用命令

命令格式(mosi:FPGA---->SD卡)

FPGA——SD卡控制器1_第2张图片
即:
在这里插入图片描述
共48bit
CMD(8bit):命令号格式为01xxxxxx
参数内容(32bit):有些参数是保留位,设置为0
校验(8bit):前七位为CRC校验,最后一位为停止位0
SPI格式只有在初始化时需要校验

常用命令(SPI模式)

命令索引 命令 参数 返回 描述
CMD0 8’h40 32‘h0 R1 使sd卡进入默认状态
CMD8 8’h48 bit[31:12]=15’h0,bit[11:8]=4’h1(电压范围),bit[7:0]校验字节 R7 发送主机电压范围,查看sd卡是否支持此电压,如果R7=bit[7:0]则支持此电压
CMD17 8’h51 bit[31:0]:sd卡读扇区地址 R1 sd卡读命令
CMD24 8’h58 bit[31:0]:sd卡写扇区地址 R1 sd卡写命令
CMD55 8’h77 32’h0 R1 告诉sd卡接下来是应用相关命令
ACMD41 8’h69 bit[30]=0,如果主机支持SDHC或SDXC,bit[30]=1,bit[29:0]=30’h0 R3 获取操作条件寄存器

sd卡返回命令(miso:SD卡---->FPGA)

R1(8bit)

FPGA——SD卡控制器1_第3张图片
发送CMD0,CMD55命令,如果sd卡返回R1=8’h01,sd卡进入空闲状态

R3(40bit)

FPGA——SD卡控制器1_第4张图片
发送ACMD41命令,如果sd卡返回R3[39:32]=8’h00,sd卡初始化成功

R7(40bit)

FPGA——SD卡控制器1_第5张图片
向sd卡发送CMD8,sd卡返回R7[11:8]=4’b0001

你可能感兴趣的:(FPGA)