资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SD 卡引脚定义 针脚 名称 类型描述 1.CD DAT3 I/O/PP 卡监测数据位 3 2.CMD PP 命令/回复 3. Vss S 地 4.Vcc S 供电电压 5.CLK I 时钟 6.Css2 S 地 7.DAT0 I/O/PP 数据位 0 8.DAT1 I/O/PP 数据位 1 9.DAT2 I/O/PP 数据位 2SD 卡接口标准规范SD 卡上所有单元由内部时钟发生器提供时钟。接口驱动单元同步外部时钟的 DAT 和 CMD 信号到内部所用时钟。 本卡由 6 线 SD 卡接口控制,包括:CMD,CLK,DAT0-DAT3 。 在多 SD 卡垛叠中为了标识 SD 卡,一个卡标识寄存器(CID) 和一个相应地址寄存器(RCA )预先准备好。 一个附加的寄存器包括不同类型操作参数。 这个寄存器叫做 CSD。 使用 SD 卡线访问存储器还是寄存器的通信由 SD 卡标准定义。 卡有自己的电源开通检测单元。 无需附加的主复位信号来在电源开启后安装卡。 它防短路,在带电插入或移出卡时。 无需外部编程电压。 编程电压卡内生成。SD 卡支持第二接口工作模式 SPI。 如果接到复位命令(CMD0 )时,CS 信号有效(低电平),SPI 模式启用。SD 卡接口规范(完整规范标准 )特性:容量:32MB/64MB/128MB/256MB/512MB/1GByte兼容规范版本 1.01卡上错误校正支持 CPRM两个可选的通信协议:SD 模式和 SPI 模式可变时钟频率 025MHz通信电压范围:2.0-3.6V 工作电压范围:2.0-3.6V低电压消耗:自动断电及自动睡醒,智能电源管理无需额外编程电压卡片带电插拔保护正向兼容 MMC 卡高速串行接口带随即存取支持双通道闪存交叉存取快写技术:一个低成本的方案,能够超高速闪存访问和高可靠数据存储最大读写速率:10Mbyte/s最大 10 个堆叠的卡(20MHz,Vcc=2.7-3.6V)数据寿命:10 万次编程/擦除CE 和 FCC 认证PIP 封装技术尺寸:24mm 宽32mm 长1.44mm 厚本 SD 卡高度集成闪存,具备串行和随机存取能力。 可以通过专用优化速度的串行接口访问,数据传输可靠。接口允许几个卡垛叠,通过他们的外部连接。接口完全符合最新的消费者标准,叫做 SD 卡系统标准,由 SD 卡系统规范定义。SD 卡系统是一个新的大容量存储系统,基于半导体技术的变革。它的出现,提供了一个便宜的、结实的卡片式的存储媒介,为了消费多媒体应用。SD 卡可以设计出便宜的播放器和驱动器而没有可移动的部分。一个低耗电和广供电电压的可以满足移动电话、电池应用比如音乐播放器、个人管理器、掌上电脑、电子书、电子百科全书、电子词典等等。使用非常有效的数据压缩比如 MPEG,SD 卡可以提供足够的容量来应付多媒体数据。SD 卡上所有单元由内部时钟发生器提供时钟。接口驱动单元同步外部时钟的 DAT 和 CMD 信号到内部所用时钟。本卡由 6 线 SD 卡接口控制,包括:CMD,CLK,DAT0-DAT3。在多 SD 卡垛叠中为了标识 SD 卡,一个卡标识寄存器(CID)和一个相应地址寄存器(RCA)预先准备好。一个附加的寄存器包括不同类型操作参数。这个寄存器叫做 CSD。使用 SD 卡线访问存储器还是寄存器的通信由 SD 卡标准定义。卡有自己的电源开通检测单元。无需附加的主复位信号来在电源开启后安装卡。它防短路,在带电插入或移出卡时。无需外部编程电压。编程电压卡内生成。SD 卡支持第二接口工作模式 SPI。如果接到复位命令(CMD0)时,CS 信号有效(低电平),SPI 模式启用。(译者按:以下部分为本人翻译)接口该 SD 卡的接口可以支持两种操作模式:。SD 卡模式。SPI 模式主机系统可以选择以上其中任一模式,SD 卡模式允许 4 线的高速数据传输。 SPI 模式允许简单通用的 SPI 通道接口, 这种模式相对于 SD 模式的不足之处是丧失了速度。SD 卡模式针脚定义1:S:电源供电,I:输入 O:输出 I/O:双向 PP:I/O 使用推挽驱动 SD 卡的总线概念SD 总线允许强大的 1 线到 4 线数据信号设置。当默认的上电后,SD 卡使用 DAT0。 初始化之后,主机可以改变线宽(译者按:即改为 2 根线,3 根线。)。混和的 SD 卡连接方式也适合于主机。在混和连接中 Vcc,Vss 和 CLK 的信号连接可以通用。但是,命令,回复,和数据(DAT03)这几根线,各个 SD 卡必须从主机分开。这个特性使得硬件和系统上交替使用。SD 总线上通信的命令和数据比特流从一个起始位开始,以停止位中止。CLK:每个时钟周期传输一个命令或数据位。频率可在 025MHz 之间变化。SD 卡的总线管理器可以不受任何限制的自由产生 025MHz 的频率。CMD:命令从该 CMD 线上串行传输。一个命令是一次主机到从卡操作的开始。命令可以以单机寻址(寻址命令)或呼叫所有卡(广播命令)方式发送。回复从该 CMD 线上串行传输。一个命令是对之前命令的回答。回复可以来自单机或所有卡。DAT03:数据可以从卡传向主机或副 versa。数据通过数据线传输。 二、SD 卡的命令1.SD 卡的命令格式:SD 卡的指令由 6 字节(Byte)组成,如下:Byte1:0 1 x x x x x x(命令号,由指令标志定义,如 CMD39 为 100111 即 16 进制 0x27,那么完整的CMD39 第一字节为 01100111,即 0x27+0x40)Byte2-5:Command Arguments,命令参数,有些命令没有参数Byte6:前 7 位为 CRC(Cyclic Redundacy Check,循环冗余校验 )校验位,最后一位为停止位 02.SD 卡的命令SD 卡命令共分为 12 类,分别为 class0 到 class11,不同的 SDd 卡,主控根据其功能,支持不同的命令集 如下:Class0 :(卡的识别、初始化等基本命令集)CMD0:复位 SD 卡.CMD1:读 OCR 寄存器.CMD9:读 CSD 寄存器.CMD10:读 CID 寄存器.CMD12:停止读多块时的数据传输CMD13:读 Card_Status 寄存器Class2 (读卡命令集):CMD16:设置块的长度CMD17:读单块.CMD18:读多块,直至主机发送 CMD12 为止. Class4(写卡命令集) :CMD24:写单块.CMD25:写多块.CMD27:写 CSD 寄存器 .Class5 (擦除卡命令集):CMD32:设置擦除块的起始地址.CMD33:设置擦除块的终止地址.CMD38: 擦除所选择的块.Class6(写保护命令集):CMD28:设置写保护块的地址.CMD29:擦除写保护块的地址.CMD30: Ask the card for the status of the write protection bitsclass7:卡的锁定,解锁功能命令集class8:申请特定命令集 。class10 11 :保留有关 sd 卡驱动和 fat fs 的实现用了 3 个文件来实现。sdboot.c 为 sd 的驱动(可理解为 pdd)层,主要实现一些对 sd 控制器的配置以及一些基本 sd 命令的实现和对 sd 卡的操作。sdmmc.c 实现了从 sd 卡读取nk 并跳到内存去运行的代码(基本可以理解为 sd 驱动的 mdd 层)。sdfat.c 文件就是实现 fat fs 的。mdd 层通过 fatfs 来对 pdd 层操作以实现读取文件。在整个过程中遇到了很多问题,现在列举如下:1)sd 卡初始化问题2)对 sd 卡操作问题SD 卡包括:一个标识寄存器 CID,一个相应地址寄存器 RCA,一个其他参数寄存器 CSD。检测卡的插入,直接用中断引脚的电平来判断。判断插入的卡是否是 sd 卡,用命令 cmd55 和 cmd41,因为 mmc 卡对 cmd55 不做回应。命令 9 就是获取 sd 卡中 csd 寄存器的值的,该值包括很多 sd 卡的信息,其中就有 sd 卡的容量。这个值在 sd 卡接收到 cmd9 之后会以 response 的形式存放在 sd 控制器的 SDI Response Register0,1,2,3 中。在执行 cmd9,cmd10 等这样的命令的时候,卡的状态应该是不选中的,或直接在执行它们之前发送 cmd7(0 )不选中卡,不然的话会 timeout。 用 cmd17 来读取单个 block 的数据,该命令要带地址参数(该参数通过 cmd3 命令来获取),然后根据 SDIDSTA 和 SDIFSTA 状态值来从 sd 控制器的 SDIDAT 寄存器中读出要读的数据。该命令与 cmd9相反,在执行它之前要选中卡。读完一个 block 之后要做一些善后工作,为下次读取做好准备,不然的话checkcmdend 就要一直循环了。因为用的是每次都读一个 block,并地址要以 block 对齐,这样就要考虑要读取的地址是否是 block 对齐的,长度是否够一个 block。SDIDCON 这个数据控制寄存器也很重要,一些对数据的操作形式就是在这里设置的。3)fat 文件系统问题根据 MBR 找到分区表,根据分区表找到该分区 MBR446B+4 个分区表(每个 16B)+2B 结束符)分区表中的第 9-12 字节为该分区的启始地址(单位没 sector),第 13-16 字节为分区的长度(单位也是 sector)4) 通信模式的切换:SD 卡有两种通信模式:SPI 模式和 SD 模式,默认情况下的通信模式是 SD 模式,但是我们常用的模式是 SPI 模式 ,这就需要一个切换模式的方法,具体的实现方法在其他地方也都有介绍,其关键的地方就是先上电延时大于 74 个时钟周期后发送复位命令 ,复位成功( 接收到 0x01 的响应)后,连续发送 CMD55 和 ACMD41,直到响应 0X00 为止,此时 SD 卡已经进入 SPI 模式。TF 卡,参考,未验证1,DATA22,CD/DATA33,CMD4,VCC5,CLK6,GND7,DATA08,DATA1sd 卡:一、SD MODE1、CD/DATA32、CMD3、VSS14、VDD5、CLK6、VSS27、DATA08、DATA19、DATA2二、SPI MODE1、CS2、DI3、VSS4、VDD5、SCLK6、VSS27、DO8、RSV9、RSVCF 卡一、PC CARD MEMORY MODE1、GND2、D33、D44、D55、D66、D77、CE18、A109、OE10、A911、A812、A713、VCC14、A615、A516、A417、A318、A219、A120、A021、D022、D123、D224、WP25、CD226、CD127、D1128、D1229、D1330、D1431、D1532、CE233、VS134、IORD35、IOWR36、WE37、RDY/BSY38、VCC39、CSEL40、VS241、RESET42、WAIT43、INPACK44、REG45、BVD246、BVD147、D848、D949、D1050、GNDCF 卡二、PC I/O CARD MODE 1、GND2、D33、D44、D55、D66、D77、CE18、A109、OE10、A911、A812、A713、
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号