S3C2410——SD卡SD卡简介SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。012345678DATA0-3:数据引脚(双向)CMD:命令引脚(双向)VDD:3.3V电压CLK:时钟3、4号引脚:地线总线接口控制器FLASH寄存器组SD卡内部寄存器名称位数描述CID128(CardIdentification)全球唯一SD卡标识寄存器,组成:厂家ID+产品ID+版本号+串号+生产日期RCA16(RelativeCardAddress)相对地址寄存器,用于在多卡系统中标识某卡,SD卡只有收到主机的RCA才可被读写。CSD128(CardSpecificData)专用数据寄存器,保存SD卡的配置信息,包括卡的容量、数据访问时间、最大传输率、最大读数据长度、最大读写电流、擦除保护和写保护等信息。SCR64(SDConfigurationReigister)SD卡配置寄存器,包括SD版本号、SD加密支持和数据总线宽度等信息。OCR32(OperatingCodeRegister)操作条件寄存器,记录了SD卡的操作电压范围(2.0-3.6)SD总线结构SD卡的工作模式1、1位SD模式(一位串行传输)2、4位SD模式(4为并行传输)3、SPI模式(SerialPeripheralInterface)当SD卡与读卡器刚刚相连的时候,默认工作在SD模式下,可通过SD指令切换至SPI模式。SDI模式——帧01SD命令CRC1命令帧帧起始标记方向标记,1表示主机向从机7比特CRC校验帧结束标记48比特固定长度有些命令帧需要应答,有些不需要•SD命令——格式01命令码命令参数1字节命令码举例:CMD1:读OCR寄存器命令二进制表示(6比特):0000012-5字节•SD命令Class0基本命令-bc不需要响应的广播命令.-bcr需要响应的广播命令.每个卡都会独立的接收命令和发送响应.-ac点对点命令,DAT线上没数据-adtc点对点命令,DAT线上有数据•SD命令•SD命令——命令码Class2读命令•SD命令——命令码Class3写命令•SD命令——命令码Class5擦除命令•SD命令Class8特定命令•SD命令MMC卡兼容命令在发送如下命令前必选首先发送CMD55命令(MMC卡不应答CMD55命令)判断是什么卡。•SD命令SDI模式——帧00状态/OCR/RCA1R1:状态/信息请求应答R3:OCR请求应答R6:RCA请求应答帧起始标记方向标记,0表示从机向主机帧结束标记48比特固定长度SDI模式——帧00CID/CSDCRC1R2应答帧:CID请求应答、CSD请求应答帧起始标记方向标记,0表示从机向主机7比特CRC校验帧结束标记136比特固定长度SDI模式——帧04095数据0CRC1标准数据帧(只用Data0引脚传输数据)帧起始标记16比特CRC校验帧结束标记SDI模式——帧04095数据3CRC1宽带数据帧(Data0-Data3同时传输数据)DAT304094数据2CRC1DAT204093数据1CRC1DAT104092数据0CRC1DAT0SDI模式——时序命令数据命令帧无响应时序SDI模式——时序命令数据命令帧命令/响应时序响应帧SDI模式——时序命令数据单块读命令单块读时序响应帧数据帧SDI模式——时序命令数据单块写命令单块写时序响应帧数据帧SDI模式——时序命令数据读开始命令多块读时序响应帧数据帧数据帧传输终止命令响应帧SDI模式——时序命令数据写开始命令多块写时序响应帧数据帧数据帧传输中终止命令响应帧S3C2410——SD控制器S3C2410内部集成的SD控制器SD卡识别模式状态迁移SD卡识别过程中用到的命令CMD0将SD卡重置为Idle状态ACM41请求OCR寄存器的值CMD2请求CID寄存器的值CMD3设置RCA寄存器的值CMD15将SD卡设置为Inactive状态以保护现场堆栈SD卡通过CMD15收到地址后就可以与主设备之间交换数据了,进入“数据交换模式”SD卡的数据模式状态迁移读数据指令CMD16设置“读数据块”的字节数CMD17读SD卡CSD寄存器中“读数据块”字段值CMD18连续读,直到收到CMD12(传输终止)指令CMD24设置写数据块的字节数CMD27设置CSD寄存器中可编程信息CMD25连续写,直到收到CMD12(传输终止)指令写数据指令S3C2410SD驱动程序架构SPI模式——通信SCLK:时钟信号线MOSI:主设备到从设备的数据线MISO:从设备到主设备的数据线SS:片选信号线SCLKMOSIMISOCS主设备从设备SPI模式——通信如果MCU没有集成SD控制器或MCU没有通过外扩SD控制器与SD卡连接,MCU与SD卡间可以通过SPI协议通信。1725SD卡处理器芯片SCLKMOSIMISOCSSPI模式——模式切换SD卡在上电初期自动进入SD总线模式,在此模式下向SD卡发送复位命令CMD0如果SD卡在接收复位命令过程中CS引脚电平有效,则进入SPI模式,否则工作在SD总线模式。1725SD卡处理器芯片SCLKMOSIMISOCS