- 1、本文档共46页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SD卡读写操作
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卡中的数据是原始数据还是拷贝数据。拷贝位一旦设置,
文档评论(0)