资料库

SD卡-中文学习笔记.pdf

第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
资料共46页,剩余部分请下载后查看
SD卡操作
一、 概述
1、简介
2、功能介绍
2.1 特点
3 SD总线模式
3.1 Negotiating Operation Conditions
3.2 SD卡获取和识别
3.3 卡状态
3.4 内存组织
3.5 读写操作
3.6 数据传输速率
3.7 数据保护
3.8数据擦除
3.9 写保护
3.10 拷贝位
3.11 CSD寄存器
4 SPI模式
二、 SD卡接口描述
1 引脚和寄存器
1.1 SD模式引脚
1.2 SPI模式引脚
1.3 寄存器
2 SD卡总线拓扑
3 SPI总线拓扑
4 电气接口
4.1 上电
5 寄存器
5.1 OCR(Operating Conditions Register)
5.2 CID(Card Identification)
5.3 CSD(Card Specific Data)
6 数据交互格式和卡容量
三、 SD卡协议
1 SD总线协议
2 协议功能描述
3 卡识别模式
3.1 重置
3.2 操作电压范围验证
3.3 卡识别过程
4 数据传输模式
4.1 宽总线选择/不选择
4.2 读数据格式
4.3 数据写格式
4.4 写保护管理
4.4.1 机械写保护开关
4.4.2 卡内部写保护
4.4.3 密码保护锁操作
5 时钟控制
6 CRC
7 错误条件
7.1 CRC和非法命令
8 命令
8.1 卡类型
8.2 命令格式
8.3 命令分类
8.4 详细命令描述
9 卡状态迁移表
10 响应
四、 在S3C2410中的使用
1 基本操作
1.1 SDI操作
1.2 CMD Path Programming
1.3 DAT Path Programming
2 SDIO操作
2.1 SDIO中断
2.2 读等待请求(Read Wait Request)
3寄存器
3.1 SDICON
3.2 SDIPRE(SDI模特率分频寄存器)
3.3 SDICARG(SDI命令参数寄存器)
3.4 SDICCON(SDI命令控制寄存器)
3.5 SDICSTA(SDI命令状态寄存器)
3.6 SDIRSP0(SDI响应寄存器0)
3.7 SDIRSP1(SDI响应寄存器1)
3.8 SDIRSP2(SDI响应寄存器2)
3.9 SDIRSP3(SDI响应寄存器3)
3.10 SDIDTIMER(SDI数据/忙时钟)
3.11 SDIBSIZE(SDI块大小寄存器)
3.12 SDIDCON(SDI数据控制寄存器)
3.13 SDIDCNT(SDI数据剩余计数寄存器)
3.14 SDIDSTA(SDI数据状态寄存器)
3.15 SDIFSTA (SDI数据FIFO状态寄存器)
3.16 SDIDAT(SDI数据寄存器)
3.17 SDIIMSK(SDI中断屏蔽寄存器)
SD 卡操作 一、 概述 1、简介 SD 卡是基于 flash 的存储卡。 SD 卡和 MMC 卡的区别在于初始化过程不同。 SD 卡的通信协议包括 SD 和 SPI 两类。 SD 卡使用卡内智能控制模块进行 FLASH 操作控制,包括协议、安全算法、数据存取、 ECC 算法、缺陷处理和分析、电源管理、时钟管理。
2、功能介绍 2.1 特点 1) 主机无关的 FLASH 内存擦除和编程 读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具 体操作的完成。当采用新型的 FLASH 时,主机代码无需更新。 2) 缺陷管理 3) 错误恢复 4) 电源管理 Flash 每个扇区有大约 10 万次的写寿命,读没有限制。 擦除操作可以加速写操作,因为在写之前会进行擦除。 3 SD 总线模式 3.1 Negotiating Operation Conditions 当主机定义了 SD 卡不支持的电压范围时,SD 卡将处于非活动状态,将忽略所有的总 线传输。要退出非活动状态唯一的方法就是重新上电。 3.2 SD 卡获取和识别 SD 卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。主机依次分别访 问每个卡,每个卡的 CID 寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。 主机通过 READ_CID 命令读取 CID 寄存器。CID 寄存器在 SD 卡生产过程中的测试和 格式化时被编程,主机只能读取该号。 DAT3 线上内置的上拉电阻用来侦测卡。在数据传输时电阻断开(使用 ACMD42)。
3.3 卡状态 卡状态分别存放在下面两个区域: 卡状态(Card Status),存放在一个 32 位状态寄存器,在卡响应主机命令时作为数据传 送给主机。 SD 状态(SD_Status),当主机使用 SD_STATUS(ACMD13)命令时,512 位以一个数 据块的方式发送给主机。SD_STATUS 还包括了和 BUS_WIDTH、安全相关位和扩展位等的 扩展状态位。 3.4 内存组织 数据读写的基本单元是一个字节,可以按要求组织成不同的块。
Block:块大小可以固定,也可以改变,允许的块大小是实际大小等信息存储在 CSD 寄 存器。 Sector:和擦除命令相关,由几个块组成。Sector 的大小对每个设备是固定的,大小信息 存储在 CSD 寄存器。 WP Group:写保护单位。大小包括几个 group,写保护由一位决定,对每个设备大小是 固定的,存储在 CSD 寄存器。 3.5 读写操作
Single Block Mode:主机根据事先定义的长度读写一个数据块。由发送模块产生一个 16 位的 CRC 校验码,接受端根据校验码进行检验。读操作的块长度受设备 sector 大小 (512 bytes)的限制,但是可以最小为一个字节。不对齐的访问是不允许的,每个数据块必须位于 单个物理 sector 内。写操作的大小必须为 sector 大小,起始地址必须与 sector 边界对齐。 Multiple Block Mode:主机可以读写多个数据块(相同长度),根据命令中的地址读取或 写入连续的内存地址。操作通过一个停止传输命令结束。写操作必须地址对齐。 3.6 数据传输速率 SD 卡可以通过单数据线(DAT0)或四根数据线(DAT0-DAT3)进行数据传输。单根 数据线传输最大传输速率为 25 Mbit/s,四根数据线最大传输速率为 100 Mbit/s。 3.7 数据保护 每个 sector 的数据通过 Error Correction Code (ECC)进行保护。在写 sector 时生成 ECC, 在读 sector 时检验 ECC。如果发现错误,在传输前进行纠正。 3.8 数据擦除 SD 卡数据擦除的最小单位是 sector。为了加速擦除操作,多个 sector 可以同时擦除。 为了方便选择,第一个指令包含起始地址,第二个指令包含结束地址,在地址范围内的所 有 sector 将被擦除。 3.9 写保护 两种写保护方式可供选择,永久保护和临时保护,两种方式都可以通过PROGRAM_CSD指令进行设置。 永久保护位一旦设置将无法清除。 3.10 拷贝位 通过CSD寄存器中的拷贝位(copy bit)设置SD卡中的数据是原始数据还是拷贝数据。拷贝位一旦设置, 将无法清除,在测试和格式化时使用。
3.11 CSD 寄存器 所有SD卡的配置信息存储在CSD寄存器。通过SEND_CSD读取,PROGRAM_CSD修改。 4 SPI 模式 二、 SD 卡接口描述 1 引脚和寄存器 主机通过 9 个引脚和 SD 卡相连 1.1 SD 模式引脚 扩展数据线(DAT1-DAT3)上电后为输入,SET_BUS_WIDTH 命令执行后作为数据线。即使只 有 DAT0 使用,所有数据线都和外部上拉电阻连接,否则 DAT1 & DAT2(如果未被使用) 的振荡输入将引起非期望的高电流损耗。 上电后,数据线输入 50K(+/-20K)欧姆的上拉(用来进行卡侦测和 SPI 模式选择)。用 户可以在常规数据传输时,通过 SET_CLR_CARD_DETECT (ACMD42)命令分离上拉。
1.2 SPI 模式引脚 1.3 寄存器 名称 CID RCA 宽度 128 16 描述 卡标识号 相对卡地址(Relative card address):本地系统中卡的地址,动 态变化,在主机初始化的时候确定 *SPI 模式中没有 卡描述数据:卡操作条件相关的信息数据 SD 配置寄存器:SD 卡特定信息数据 操作条件寄存器 128 64 32 CSD SCR OCR 主机通过重新上电来重置(reset)卡。卡有它自身检测上电的电路,当上电后卡状态切换到 idle 状态。 也可以通过 GO_IDLE (CMD0)指令来重置。 2 SD 卡总线拓扑 SD总线有6根通信线和三根电源供应线:  CMD——命令线是双向信号线。主机和卡通过push pull 模式工作。  DAT0-3——数据线是双向信号线。主机和卡通过push pull 模式工作。  CLK——时钟是从主机到卡的信号。CLK通过push pull 模式操作。  VDD—VDD是所有卡的电源供应线。  VSS[1:2]—VSS是2根地线。
在初始化的时候,向每个卡分别发送命令,允许应用检测卡并给物理槽(physical slot) 分配逻辑地址。数据通常分别传输给每个卡。然后,为了方便处理卡堆栈,初始化后所有 命令同时发送给所有卡,在命令数据包中包含了操作地址。 SD总线允许动态配置数据线数目。上电后默认SD卡只用DAT0作为数据传输线。初始 化后,主机可以改变总线宽度。这个特性使得在硬件开销和系统性能间取得平衡。
分享到:
收藏