当前位置:文档之家› SD卡存储应用解决方案文档

SD卡存储应用解决方案文档

SD卡存储应用解决方案文档
SD卡存储应用解决方案文档

目录

第1章 SD/MMC卡读写模块 (1)

1.1 SD/MMC卡的外部物理接口 (1)

1.1.1 SD模式 (2)

1.1.2 SPI模式 (3)

1.2 访问SD/MMC卡的SPI模式硬件电路设计 (4)

1.2.1 SPI总线 (5)

1.2.2 卡供电控制 (5)

1.2.3 卡检测电路 (5)

1.3 SD/MMC卡读写模块的文件结构及整体构架 (5)

1.3.1 SD/MMC卡读写模块的文件组成 (5)

1.3.2 SD/MMC读写模块整体框架 (6)

1.4 SD/MMC卡读写模块的使用说明 (6)

1.4.1 SD/MMC卡读写模块的硬件配置 (6)

1.4.2 SD/MMC卡读写模块提供的API函数 (9)

1.5 SD/MMC卡读写模块的应用示例一 (11)

1.5.1 硬件连接与配置 (11)

1.5.2 实现方法 (11)

1.6 SD/MMC卡读写模块的使用示例二 (18)

1.6.1 实现方法 (18)

1.6.2 例子建立与运行步骤 (20)

1.6.3 参考程序 (24)

1.7 SD/MMC软件包应用总结 (27)

第1章SD/MMC卡读写模块

SD/MMC卡是一种大容量(最大可达4GB)、性价比高、体积小、访问接口简单的存储卡。SD/MMC卡大量应用于数码相机、MP3机、手机、大容量存储设备,作为这些便携式设备的存储载体,它还具有低功耗、非易失性、保存数据无需消耗能量等特点。

SD卡接口向下兼容MMC(MutliMediaCard多媒体卡)卡,访问SD卡的SPI协议及部分命令也适用于MMC卡。

SD/MMC卡读写模块是ZLG 系列中间件的重要成员之一,又称为ZLG/SD。该模块是一个用来访问SD/MMC卡的软件读写模块,目前最新版本为2.00,本版本不仅能读写SD卡,还可以读写MMC卡;不仅能在前后台系统(无实时操作系统)中使用,还可以在嵌入式操作系统μC/OS-II中使用。本文模块只支持SD/MMC卡的SPI模式。

在本章中,除了特别说明以外,“卡”都是指SD卡或MMC卡。

1.1 SD/MMC卡的外部物理接口

SD和MMC卡的外形和接口触点如图 1.1所示。其中SD卡的外形尺寸为:24mm x 32mm x 2.1mm(普通)或24mm x 32mm x 1.4mm(薄SD存储卡),MMC卡的外形尺寸为24mm x 32mm x 1.4mm。

图 1.1 SD卡和MMC卡实物图

图1.2 SD卡和MMC卡接口示意图(上视图)

表1.1为SD/MMC卡各触点的名称及作用,其中MMC卡只使用了1 ~ 7触点。

表1.1 SD/MMC卡的焊盘分配

SD模式SPI模式

脚名称1类型描述名称类型描述

1 CD/DAT3

2 I/O/PP3卡的检测/数据线[Bit 3]CS I 片选(低电平有效)

2 CMD PP4命令/响应DI I5数据输入

3 V SS1 S 电源地VSS S 电源地

续上表 引

SD模式SPI模式

脚名称1类型描述名称类型描述

4 V DD S 电源VDD S 电源

5 CLK I 时钟SCLK I 时钟

6 V SS2 S 电源地VSS2 S 电源地

7 DAT0 I/O/PP 数据线[Bit 0] DO O/PP 数据输出

8 DAT1 I/O/PP 数据线[Bit 1] RSV

9 DAT2 I/O/PP 数据线[Bit 2] RSV

注:1. S:电源;I:输入;O:推挽输出;PP:推挽I/O。

2. 扩展的DAT线(DAT1 ~ DAT3)在上电后处于输入状态。它们在执行SET_BUS_WIDTH命令后

作为DAT线操作。当不使用DAT1 ~ DAT3线时,主机应使自己的DAT1~DAT3线处于输入模式。

这样定义是为了与MMC卡保持兼容。

3. 上电后,这条线为带50K?上拉电阻的输入线(可以用于检测卡是否存在或选择SPI模式)。用

户可以在正常的数据传输中用SET_CLR_CARD_DETECT(ACMD42)命令断开上拉电阻的连接。

MMC卡的该引脚在SD模式下为保留引脚,在SD模式下无任何作用。

4. MMC卡在SD模式下为:I/O/PP/OD。

5. MMC卡在SPI模式下为:I/PP。

由表1.1可见,SD卡和MMC卡在不同的通信模式下,各引脚的功能也不相同。这里的通信模式是指微控制器(主机)访问卡时使用的通信协议,分别为SD模式和SPI模式。

在具体通信过程中,主机只能选择其中一种通信模式。通信模式的选择对于主机来说是透明的。卡将会自动检测复位命令的模式(即自动检测复位命令使用的协议),而且要求以后双方的通信都按相同的通信模式进行。所以,在只使用一种通信模式的时候,无需使用另一种模式。下面先简单介绍这两种模式。

1.1.1 SD模式

在SD模式下,主机使用SD总线访问SD卡,其总线拓扑结构如图1.3所示。由图可见,SD总线上不仅可以挂接SD卡,还可以挂接MMC卡。

图1.3 SD存储卡系统(SD模式)的总线拓扑结构

SD总线上的信号线的详细功能描述如表1.2所示。

表1.2 SD总线信号线功能描述

信号线功能描述

CLK 主机向卡发送的用于同步双方通信的时钟信号

CMD 双向的命令/响应信号

DAT0 ~ DAT3 4个双向的数据信号(MMC卡只有DAT0信号线)

VDD 电源正极,一般电压范围为2.7 ~ 3.6V

VSS1、VSS2 电源地

SD存储卡系统(SD模式)的总线拓扑结构为: 一个主机(如微控制器)、多个从机(卡)和同步的星形拓扑结构(参考图 1.3)。所有卡共用时钟CLK、电源和地信号。而命令线(CMD)和数据线(DAT0 ~ DAT3)则是卡的专用线,即每张卡都独立拥有这些信号线。请注意,MMC卡只能使用1条数据线DAT0。

1.1.2 SPI模式

在SPI模式下,主机使用SPI总线访问卡,当今大部分微控制器本身都带有硬件SPI 接口,所以使用微控制器的SPI接口访问卡是很方便的。微控制器在卡上电后的第1个复位命令就可以选择卡进入SPI模式或SD模式,但在卡上电期间,它们之间的通信模式不能更改为SD模式。

卡的SPI接口与大多数微控制器的SPI接口兼容。卡的SPI总线的信号线如表1.3所示。

表1.3 SD卡与MMC卡的SPI接口描述

信号线功能描述

CS 主机向卡发送的片选信号

CLK 主机向卡发送的时钟信号

DataIn 主机向卡发送的单向数据信号

DataOut 卡向主机发送的单向数据信号

SPI总线以字节为单位进行数据传输,所有数据令牌都是字节(8位)的倍数,而且字节通常与CS信号对齐。SD卡存储卡系统如图1.4所示。

图1.4 SD存储卡系统(SPI模式)的总线拓扑结构

当主机外部连接有多张SD卡或MMC卡时,主机利用CS信号线对卡进行寻址。例如:在图1.4中,当主机需要向SD存储卡A传输数据或需要从该卡接收数据时,必须将CS(A)置为低电平(同时其它卡的CS信号线必须置为高电平)。

CS信号在SPI处理(命令、响应和数据)期间必须续持有效(低电平)。唯一例外的情况是在对卡编程的过程。在这个过程中,主机可以使CS信号为高电平,但不影响卡的编程。

由图1.4可见,当SPI总线上挂接N张卡时,需要N条CS片选线。

1.2 访问SD/MMC卡的SPI模式硬件电路设计

SD/MMC卡可以采用SD总线访问,也可以采用SPI总线访问,考虑到大部分微控制器都有SPI接口而没有SD总线接口,而且如果采用I/O口模拟SD总线,不但增加了软件的开销,而且对大多数微控制器而言,模拟总线远不如真正的SD总线速度快,这将大大降低总线数据传输的速度。

基于以上的考虑,采用LPC2103微控制器的SPI接口为例子,设计访问SD/MMC卡的硬件接口电路。LPC2103微控制器与SD/MMC卡卡座接口电路如图1.5所示。

图1.5 SD卡卡座与LPC2103接口电路(SPI模式)

图中,LPC2103与SD/MMC卡卡座的连接引脚如表1.4所示。

表1.4 LPC2103与SD/MMC卡卡座的连接引脚

LPC2103接口含义

P0.8_CS SPI片选信号,用于选择SPI从机,该引脚为普通I/O口

P0.4_SCK SPI时钟信号,由主机发出,用于同步主机之间的数据传输

P0.6_MOSI SPI主机输出,从机输入信号

LPC2103接口含义

P0.5_MISO SPI主机输入,从机输出信号

P0.9_SD_POWER 卡供电控制,当LPC2103的P0.9输出低电平时给卡供电

P0.10_SD_INSERT卡完全插入到卡座中检测线,完全插入时卡座输出低电平,否则输出高电平P0.11_SD_WP 卡是否写保护检测,写保护时卡座输出高电平,否则输出低电平注意:对于不同的卡座,卡完全插入检测电平和写保护检测电平可能有所不同。

1.2.1 SPI总线

如图1.5所示,LPC2103 SPI接口的P0.8_CS、P0.4_SCK、P0.6_MOSI、P0.5_MISO直接连接到卡座的相应接口,其中SPI的两个数据线P0.6_MOSI、P0.5_MISO还分别接上拉电阻,这是为了使本电路可以与MMC卡的接口兼容。SPI模式下无需用到的信号线DAT2和DATA1分别接下拉电阻。

1.2.2 卡供电控制

卡的供电采用可控方式,这是为了防止SD/MMC卡进入不确定状态时,可以通过对卡重新上电使卡复位而无需拔出卡。

可控电路采用P型MOS管2SJ355,由LPC2103的GPIO口P0.9_SD_POWER进行控制,当P0.9_SD_POWER输出高电平时,2SJ355关断,不给卡供电;当P0.9_SD_POWER 输出低电平时,2SJ355开通,VCC3.3电源(电压为3.3V)给卡供电。

采用2SJ355的目的是当它开通时,管子上的压降比较小。2SJ355的相关特性请见其数据手册。用户也可以采用其它P型的MOS管,但是要考虑管子开通时,漏极与源极之间的压降要足够小(保证SD/MMC卡的工作电压在允许范围内),管子允许通过的电流也要满足卡的要求,一般一张SD/MMC卡工作时的最大电流通常为45mA左右,所以选用的MOS管要求允许通过100mA左右的电流。

1.2.3 卡检测电路

卡检测电路包括两部分:卡是否完全插入到卡座中和卡是否写保护。

检测信号由卡座的两个引脚以电平的方式输出。当卡插入到卡座并插入到位时,P0.10_CARD_INSERT(第10脚)由于卡座内部触点连接到GND,输出低电平;当卡拔出时,该引脚由于上拉电阻R2的存在而输出高电平,该输出由LPC2103的输入引脚GPIO(P0.10_SD_INSERT)来检测。

卡是否写保护的检测与卡是否完全插入到卡座中的检测原理是一样的。

1.3 SD/MMC卡读写模块的文件结构及整体构架

本小节介绍本模块的组成文件以及它们之间的关系。

1.3.1 SD/MMC卡读写模块的文件组成

SD/MMC卡读写模块包括的文件如表1.5所示。

表1.5 SD/MMC卡读写模块包含的文件

文件作用

sdconfig.h 卡读写模块硬件配置头文件

sdspihal.c 读写模块硬件抽象层,实现SPI接口初始化,SPI字节的收、发等与SPI硬件相关的函数

文件作用

sdspihal.h sdspihal.c头文件

sdcmd.c 读写模块命令层,实现卡的各种命令以及主机与卡之间的数据流控制

sdcmd.h sdcmd.c头文件

sddriver.c 读写模块应用层,实现卡的读、写、擦API函数,该文件还包含一些卡操作函数sddriver.h sddriver.c头文件,包括函数执行错误代码

sdcrc.c 卡相关的CRC运算函数

sdcrc.h sdcrc.h头文件

表1.5中这些文件构成了本模块,下面说明由这些文件构成的整体框架。

1.3.2 SD/MMC读写模块整体框架

考虑到该模块的可移植性及易用性,将模块分为3个层,如图1.6所示。图中的实时操作系统并不是必须的,也就是说,本模块既可以应用于前后台系统(无实时操作系统),也可以应用于实时操作系统中,本模块提供在前后台系统和实时操作系统μC/OS-II中接口统一的API函数。

是否使用实时操作系统由本模块sdconfig.h文件中的宏定义SD_UCOSII_EN来使能或禁止。

图1.6 SD/MMC卡读写模块结构图

各层的特点如下:

(1)硬件抽象层:读写SD/MMC卡的硬件条件配置,与硬件相关的函数;

(2)命令层:SD/MMC卡的相关命令以及卡与主机之间数据流的控制,这一层与硬件

无关;

(3)应用层:向用户应用程序或文件系统提供操作卡的API函数。如果采用操作系统,

这一层由实时操作系统控制。

1.4 SD/MMC卡读写模块的使用说明

使用本模块之前,必须配置好本模块使用的硬件条件,如果硬件条件与1.2小节中的硬件条件一样,那么无须配置本软件包就可以立即使用。下面说明怎样配置本模块的硬件条件,才能将其用于LPC2103系列微控制器。

1.4.1 SD/MMC卡读写模块的硬件配置

SD/MMC卡读写模块在LPC2103的配置只与sdconfig.h文件相关,配置头文件sdconfig.h使用户能方便地配置本模块的相关功能及裁剪某些对用户来说无需用到的函数。该小节提到的所有程序清单都在该文件上。下面阐述该头文件的配置方法。

1.模块参数配置

模块的参数配置如程序清单1.1所示,配置选项如下:

(1)是否运行于μC/OS-II中。本模块既可以运行于前后台系统中,又可以运行于实时

操作系统μC/OS-II中。当运行于μC/OS-II中时,宏定义SD_UCOSII_EN的值应

置为1,否则应置为0。

(2)CRC校验。由于SD/MMC卡在SPI通信模式下可以不需要进行数据传输的CRC

校验,该宏用于使能或禁止本读写模块的数据传输CRC校验功能。使能CRC校

验则通信可靠性更高,但CRC运算也带来传输速度的一些损失,由于本模块采用

查表的方法计算CRC16,所以速度只是略有损失。

(3)SPI时钟频率。定义SPI总线的CLK线的频率,该频率值用于计算读、写、擦操

作中的超时时间对应的CLK个数,这样就将超时时间转换为超时计数。该频率值

的单位为:Hz,该值需要用户定义。

(4)SD/MMC卡块的长度。定义SD/MMC卡块的最大长度,当今流行的SD/MMC卡

块的最大长度大部分都支持512字节。宏定义SD_BLOCKSIZE_NBITS值为9,

对应于29 512字节(对应于宏定义SD_BLOCKSIZE的值),

SD_BLOCKSIZE_NBITS与SD_BLOCKSIZE一定要有这样的对应关系。

SD_BLOCKSIZE_NBITS参数用于固件程序数据计算的方便。用户一般无须改动

这两个宏定义的值。

程序清单1.1 模块参数配置

是否在μC/OS-II上运行本模块 */

1 /*

#define

SD_UCOSII_EN

#define SD_CRC_EN 0 /* 设置数据传输时是否使用CRC */

/*

正常通信时,SPI时钟频率(Hz) */ #define

SPI_CLOCK 5529600

#define SD_BLOCKSIZE 512 /* SD/MMC卡块的长度*/

#define SD_BLOCKSIZE_NBITS 9 /* 2的9次方为512(即SD_BLOCKSIZE的值)*/ 2.功能配置

模块中有一些功能不是所有用户都可能用到的,所以可以裁剪去不需要的函数,以减

小其代码量。程序清单1.2的宏定义用于使能编译读写模块中的某些比较少用的函数,当

取值为1时,使能编译对应的函数;为0时,禁止编译对应的函数。这些宏定义起到裁剪

读写模块代码大小的目的。

程序清单1.2 模块函数使能

/* 下面函数不常用,如果用户不需要,可置为 0 裁剪指定函数 */

#define SD_ReadMultiBlock_EN 0 /* 是否使能读多块函数*/

#define SD_WriteMultiBlock_EN 0 /* 是否使能写多块函数*/

是否使能擦卡函数*/

#define SD_EraseBlock_EN

0 /*

#define SD_ProgramCSD_EN 0 /* 是否使能写CSD寄存器函数*/

#define SD_ReadCID_EN 0 /* 是否使能读CID寄存器函数 */ #define SD_ReadSD_Status_EN 0 /*

是否使能读SD Status寄存器函数*/

是否使能读SCR寄存器函数*/

#define SD_ReadSCR_EN 0 /*

3.硬件条件配置

这部分以宏的形式对卡的SPI口和IO口相关操作进行定义,尽可能地将硬件相关的部

分放于这一部分。例如,配置LPC2103的4个I/O口为SPI接口的宏定义如程序清单1.3(1)

所示。对于SD卡卡座供电引脚的控制如程序清单1.3(2)所示。用户阅读LPC2103的数据

手册就可以了解这些配置的含义。该文件还包括对其它IO口的配置,详见sdconfig.h文件。

程序清单1.3 LPC2103的IO 口配置宏定义

/* 初始化 IO 口为SPI 接口 */

#define SPI_INIT() PINSEL0 &= ~((0x03 << 8) + (0x03 << 10) + (0x03 << 12)); \

PINSEL0 |= (0x01 << 8) + (0x01 << 10) + (0x01 << 12);

(1) /* 电源控制引脚 */

(2)

#define SD_POWER (0x01 << 9) #define SD_POWER_GPIO() PINSEL0 &= ~(0x03 << 18) /* 设置 POWER 口为GPIO 口 */ #define SD_POWER_OUT() IODIR |=

SD_POWER /* 设置 POWER 口为输出口 */

#define SD_POWER_OFF() IOSET = SD_POWER /* 置 POWER 为高电平 */ #define SD_POWER_ON()

IOCLR = SD_POWER

/* 置 POWER 为低电平

*/

配置头文件的全部内容就介绍到此,如果要将本模块移植到其它MCU ,则还需修改sdhal.c 文件,这一部分与MCU 的SPI 接口操作相关,如果使用LPC2103,那么无须改动该文件。

还有一点容易忽略的,就是必须将LPC2103的外设时钟频率Fpclk 调至最高(在允许范围内),这样,读写模块的读定速度才能达到最高。而且SD/MMC 卡的SPI 总线协议中,要求SPI 主机必须能够控制SPI 总线的时钟频率。LPC2103对SPI 总线时钟的控制函数说明如下。

4. 设置SPI 接口的时钟频率小于400kHz

该函数主要是在SD/MMC 卡初始化阶段,用于设置SPI 接口的时钟频率小于400kHz ,因为MMC 卡在初始化期间SPI 总线的时钟频率不能高于400kHz ,这样本模块才能达到兼容MMC 卡的目的。该函数如程序清单1.4所示(见sdhal.c 文件)。该函数只是修改LPC2103

SPI 接口的SPI 时钟计数寄存器SPI_SPCCR 的分频值来达到目的。

程序清单1.4 设置SPI 接口的时钟频率小于400kHz

void SPI_Clk400k(void) {

SPI_SPCCR = 128; /* 设置SPI 时钟分频值为128 */ }

如果LPC2103的外部晶振频率Fosc = 11.0592MHz ,内核时钟频率Fcclk 设置为Fosc 的4倍,即Fcclk = 44.2368 MHz 。外设时钟频率设置为与内核时钟频率相同,即Fpclk = Fcclk = 44.2368 MHz ,那么SPI 总线的时钟为Fpclk 经过SPI_SPCCR 寄存器分频后的时钟。所以,要使SPI 接口的时钟频率少于400kHz ,同时又要保证SPI_SPCCR 寄存器的值为大于8的偶数,该寄存器的分频值要设为128。

得到的SPI 接口SCK 的频率为:

44.2368 / 128 = 0.3456 MHz = 345.6kHz < 400kHz 。

同样,如果要设置SCK 的频率为最大值,只须调用void SPI_ClkToMax(void)函数(见sdhal.c 文件),该函数只是将SPI_SPCCR 的值改为8,那么得到SCK 的频率为:

44.2368 / 8 = 5.5296MHz 。

需要注意,当今流行的SD/MMC 卡的SPI 接口的时钟频率一般不允许超过25MHz ,所以在定义MCU 访问SD/MMC 卡的时钟频率时,必须注意这一点。

如果读者的外部晶振频率Fosc 或LPC2103外设时钟频率Fpclk 改变了,请注意修改这

两个函数中的分频值,来优化读写模块对卡的访问速度。

配置好了硬件,那么可以使用本模块了,那么本模块提供了哪些API函数方便用户访问SD/MMC卡?下面介绍这些API函数的接口。

1.4.2 SD/MMC卡读写模块提供的API函数

用户可以利用本模块提供的API函数对SD/MMC卡进行访问,见表1.6至表1.11。

表1.6 SD_Initialize()

函数名称SD_Initialize

函数原型INT8U SD_Initialize(void)

功能描述初始化SD/MMC卡、设置块大小为512字节,获取卡的相关信息

函数参数无

函数返回值 SD_NO_ERR:初始化成功;> 0: 初始化失败(错误码,见表1.12)

特殊说明

和注意点

该函数设置了卡的读/写块长度为512字节

表1.7 SD_ReadBlock ()

函数名称SD_ReadBlock

函数原型INT8U SD_ReadBlock(INT32U blockaddr, INT8U *recbuf)

功能描述读SD/MMC卡的一个块

函数参数blockaddr:以块为单位的块地址。例如,卡开始的0 ~ 511字节为块地址0,512 ~ 1023字节的块地址为1

recbuf:接收缓冲区,长度固定为512字节

函数返回值 SD_NO_ERR:读成功;> 0: 读失败(错误码,见表1.12)特殊说明

和注意点

recbuf的长度必须是512字节

表1.8 SD_WriteBlock()

函数名称SD_WriteBlock

函数原型INT8U SD_WriteBlock(INT32U blockaddr, INT8U *sendbuf)

功能描述写SD/MMC卡的一个块

函数参数blockaddr:以块为单位的块地址。例如,卡开始的0 ~ 511字节为块地址0,512 ~ 1023字节的块地址为1

sendbuf:发送缓冲区,长度固定为512字节

函数返回值 SD_NO_ERR:写成功;> 0: 写失败(错误码,见表1.12)

特殊说明

和注意点

sendbuf的长度必须是512字节

表1.9 SD_ReadMultiBlock()

函数名称SD_ReadMultiBlock

函数原型INT8U SD_ReadMultiBlock(INT32U blockaddr, INT32U blocknum, INT8U *recbuf)功能描述读SD/MMC卡的多个块

函数参数blockaddr:以块为单位的块地址

blocknum:块数

recbuf:接收缓冲区,长度为512 * blocknum字节

函数返回值 SD_NO_ERR:读成功;> 0: 读失败(错误码,见表1.12)

特殊说明

和注意点

使用时必须将sdconfig.h中的宏定义值SD_ReadMultiBlock_EN置为1

表1.10 SD_WriteMultiBlock ()

函数名称SD_WriteMultiBlock

函数原型INT8U SD_WriteMultiBlock(INT32U blockaddr, INT32U blocknum, INT8U *sendbuf)功能描述读SD/MMC卡的多个块

函数参数blockaddr:以块为单位的块地址

blocknum:块数

sendbuf: 发送缓冲区,长度为512 * blocknum字节

函数返回值 SD_NO_ERR:写成功;> 0: 写失败(错误码,见表1.12)

特殊说明

和注意点

使用时必须将sdconfig.h中的宏定义值SD_WriteMultiBlock_EN置为1

表1.11 SD_EraseBlock()

函数名称SD_EraseBlock

函数原型INT8U SD_EraseBlock(INT32U startaddr, INT32U blocknum)

功能描述擦除SD/MMC卡的多个块

函数参数startaddr:以块为单位的块擦除起始地址blocknum:块数(取值范围1 ~ sds.block_num)

函数返回值 SD_NO_ERR:擦除成功;> 0: 擦除失败(错误码,见表1.12)

特殊说明和注意点使用时必须将sdconfig.h中的宏定义值SD_EraseBlock_EN置为1。Startaddr 和 blocknum 建议为 sds.erase_unit 的整数倍, 因为有的卡只能以 sds.erase_unit 为单位进行擦除

其它函数不常用,这里就不一一列出了。需要用到其它函数的读者可以阅读源码中的函数说明。表1.6至表1.11函数返回值所代表的含义如表1.12所示。

表1.12 错误代码列表

错误码宏定义宏定义值含义

SD_NO_ERR 0x00

函数执行成功

SD_ERR_NO_CARD 0x01

卡没有完全插入到卡座中

SD_ERR_USER_PARAM 0x02

用户使用API函数时,入口参数有错误

SD_ERR_CARD_PARAM 0x03

卡中参数有错误(与本模块不兼容)

SD_ERR_VOL_NOTSUSP 0x04

卡不支持3.3V供电

SD_ERR_OVER_CARDRANGE 0x05 操作超出卡存储器范围

SD_ERR_UNKNOWN_CARD 0x06

无法识别卡型

SD_ERR_CMD_RESPTYPE 0x10

命令类型错误

SD_ERR_CMD_TIMEOUT 0x11

命令响应超时

错误码宏定义宏定义值含义

SD_ERR_CMD_RESP 0x12

命令响应错误

SD_ERR_DATA_CRC16 0x20

数据流CRC16校验不通过

SD_ERR_DATA_START_TOK 0x21

读单块或多块时,数据开始令牌不正确

SD_ERR_DATA_RESP 0x22

写单块或多块时,卡数据响应令牌不正确

SD_ERR_TIMEOUT_WAIT 0x30

写或擦操作时,发生超时错误

SD_ERR_TIMEOUT_READ 0x31

读操作超时错误

SD_ERR_TIMEOUT_WRITE 0x32

写操作超时错误

SD_ERR_TIMEOUT_ERASE 0x33

擦除操作超时错误

SD_ERR_TIMEOUT_WAITIDLE 0x34 初始化卡时,等待卡退出空闲状态超时错误

SD_ERR_WRITE_BLK 0x40

写块数据错误

SD_ERR_WRITE_BLKNUMS 0x41

写多块时,想要写入的块与正确写入的块数不一致

SD_ERR_WRITE_PROTECT 0x42

卡外壳的写保护开关打在写保护位置

SD_ERR_CREATE_SEMSD 0xA0

创建访问卡的信号量失败

下面给出使用SD/MMC卡读写模块的一个例子。

1.5 SD/MMC卡读写模块的应用示例一

下面给出在LPC2103微处理器上使用SD/MMC卡读写模块对SD/MMC卡进行读、写数据的例子。该例子利用LPC2103提供的SPI接口读写SD/MMC卡,并将写入的数据读出后与原始数据做比较,验证读写操作的正确性。

1.5.1 硬件连接与配置

用杜邦线将EasyARM2103与SD CARD PACK连接起来,连线方法如表1.13所示。

表1.13 EasyARM2103与SD CARD PACK连接关系

EasyARM2103(JP5)SD CARD PACK引脚(J1)引线含义

3.3V 3.3V

SD CARD PACK供电电源

GND GND

电源地

P0.9 POW_C

控制3.3V电源供给卡

P0.8 CS

选择SD/MMC卡

P0.6 MOSI

主机SPI数据输出,卡SPI数据输入P0.4 SCK

SPI总线时钟

P0.5 MISO

主机SPI数据输入,卡SPI数据输出P0.10 INSERT

卡完全插入卡座检测

P0.11 WP

卡写保护机械开关检测

SD/MMC卡读写模块默认的硬件配置和表1.13的硬件条件相符。因此,不需要对读写模块进行配置。

1.5.2 实现方法

本例子将对SD/MMC卡进行读、写和擦除等常用操作。例子的软件结构如图 1.7所示。

广州致远电子有限公司 Tel :(020)38730976 38730977 Fax :38730925 https://www.doczj.com/doc/7714066135.html,

图 1.7 主函数流程图

SD 卡应用示例主函数如程序清单 1.5所示。

程序清单 1.5 SD 卡操作主函数代码

int main (void) {

uint32 i; uint8 status;

uint8 sdbuf[512]=

{0}; /* 存放写入数据缓冲区 */ uint8 sdbuf2[512]={0}; /* 存放读出数据缓冲区 */

PINSEL1 =

0x00000000; /* 设置管脚连接GPIO

*/ IO0DIR |= BEEP;

/* 设置BEEP 控制口为输出 */

IO0SET = BEEP;

for(i =

0;i<512;i++){ /* 初始化写入数据

*/

sdbuf[i] =

i&0xff; } status = SD_Initialize(&sds);

/* SD 初始化

*/

if (status != SD_NO_ERR){

while(1); } status = SD_WriteBlock(&sds,0,sdbuf);

/* 将sdbuf 缓冲区数据写入第0块中*/

if (status != SD_NO_ERR){

while(1); }

status =

SD_ReadBlock(&sds,0,sdbuf2); /* 读第0块的数据

*/

if (status != SD_NO_ERR){ while(1); }

status =

memcmp(sdbuf,sdbuf2,512); /* 对sdbuf2与sdbuf 的内容进行比较*/

if(status!=0){ /* 数据比较错误,蜂鸣器蜂鸣三声 */ BeepOnOff(3);

}

else{ /* 数据比较正确,蜂鸣一声 */ BeepOnOff(1);

}

while(1);

return 0;

}

下文将对程序清单 1.5中的SD卡初始化、SD卡单块读和单块写等常用命令进行简要

分析讲解。

1. SD卡初始化

SD卡初始化流程如图 1.8所示,首先初始化访问卡的硬件条件,SdSpiHal_Initialize ()函数代码如程序清单 1.6所示。

程序清单 1.6 初始化卡访问卡的硬件条件

INT8U SdSpiHal_Initialize(sd_struct *sds)

{

对卡先下电,再上电 */ SD_Power(); /*

SPI_INIT(); /* 初始化SPI接口*/

SD_INSERT_GPIO();

SD_INSERT_IN(); /* 检测卡完全插入口为输入口*/ (1)SD_WP_GPIO();

SD_WP_IN(); /* 写保护检测口为输入口*/ (2)SPI_CS_SET(); /* CS置高*/ SdSpiHal_SetMCIClock(sds, SD_RATE_SLOW); /* 设置SPI频率小于等于400kHZ */ SPI_SPCR = 0 << 3 | /* CPHA = 0第一个时钟采样*/

1 << 4 | /* CPOL = 1,SCK低有效*/

1 << 5 | /* MSTR = 1,设置为主模式*/

0 << 6 | /* LSBF = 0,SPI传输MSB在先*/

0 << 7 ; /* SPIE = 0,SPI中断禁止*/

SD_NO_ERR;

return

}

对SD卡先下电,再上电后,对SPI总线接口进行初始化。程序清单 1.6(1)将用于

检测卡是否完全插入的卡座的I/O引脚初始化为GPIO,并且设置为输入口。程序清单 1.6(2)将用于检测卡是否写保护的I/O引脚初始化为GPIO,并且设置为输入口。

设置SPI的SCK引脚输出频率小于等于400KHz,是因为MMC卡在复位阶段要求SPI

的时钟频率要小于等于400KHz。

注意:在本软件包中没有用到LPC2103的SPI模块的P0.7(SPI从机选择输入)引脚,由于芯片特

性要求,在LPC2103的SPI模块不充当从机时,不需要将此引脚初始化为SPI模式,如果初始化,SPI

模块将自动转入从机模式。

图 1.8 SD卡初始化流程

卡完全插入卡座与卡写保护检测只须检测相关I/O口的电平即可。卡完全插入卡座检测函数如程序清单 1.7所示。该函数返回0表示卡未完全插入,此时,SD/MMC卡读/写软件包不能对卡进行操作。当卡完全插入时,P0.10_SD_INSERT引脚输出低电平。

程序清单 1.7 卡完全插入卡座检测函数

INT8U SdHal_CheckCard(sd_struct *sds)

{

if (SD_INSERT_STATUS() != 0)

return 0; /* 未完全插入 not insert entirely */

else

entirely */ return 1; /* 完全插入insert

}

对于SD卡初始化流程中的其它操作如复位卡进入空闲状态、激活卡进入初始化以及

设置块长度读取卡信息等操作,是访问应用SD/MMC卡前规定必须要进行的准备性工作,只有获取相应的信息,并将卡设置为合适的状态,才可对卡进行读写访问。

2. SD卡单块写操作

SD/MMC卡在SPI模式下的写操作包括两种:写单块和写多块。本示例重点介绍写单

块操作。卡初始化函数SD_Initialize()已经调用了SpiCmd_Set_BlockLen()函数设定了读/写

数据块的长度SD_BLOCKSIZE字节,卡在初始化后,读/写都是以块为单位,一次写操作

至少要写SD_BLOCKSIZE字节。SD_BLOCKSIZE字节一般都为512字节。

SD卡单块写操作流程图如图 1.9所示。写单块是这样进行的:

图 1.9 SD卡单块写操作流程图

(1)主机检测卡是否完全插入到卡座中;

(2)主机检测卡是否写保护;

(3)以上条件满足后,主机向卡发送写单块命令,写入地址为blockaddr的一个数据块;

(4)主机紧跟这向卡发送要写入的数据块,数据块长度为SD_BLOCKSIZE。

SD卡单块写操作程序清单如程序清单 1.8所示,建议客户的应用时直接调用软件包

的API函数操作。

程序清单 1.8 SD卡单块写操作代码

/******************************************************************************************

** 函数名称:SD_WriteBlock

** 功能描述:SPI模式下, 向SD/MMC卡中写入一个块

** 输 入:sd_struct *sds:SD/MMC卡信息结构体

** INT32U blockaddr:以块为单位的块地址, 例如, 卡开始的0 ~ 511字节为块地址0, 512 ~

** 1023字节的块地址为1

** INT8U *sendbuf :发送缓冲区,长度固定为 512 字节

** 输出:无

** 返回值:0:正确>0:错误码, 见 sddriver.h 文件

******************************************************************************************/ INT8U SD_WriteBlock(sd_struct *sds, INT32U blockaddr, INT8U *sendbuf)

{

ret,tmp[2];

INT8U

SD_RequestOSSem(sds);

/* 向OS 申请访问卡信号量 */

if (!SdHal_CheckCard(sds)) {

SD_ReleaseOSSem(sds);

return SD_ERR_NO_CARD;

/* 卡没完全插入卡中 */

}

if (blockaddr > sds->block_num) {

SD_ReleaseOSSem(sds);

return SD_ERR_OVER_CARDRANGE; /* 操作超出卡容量范围 */ }

if (SdHal_CheckCardWP(sds)) { SD_ReleaseOSSem(sds);

return SD_ERR_WRITE_PROTECT; /* 卡有写保护 */ }

ret = SpiCmd_Write_Single_Block(sds, blockaddr); /* 写单块命令

*/

if (ret != SD_NO_ERR) { SD_ReleaseOSSem(sds); return ret; }

ret = SdSpi_WriteBlockData(sds, 0, SD_BLOCKSIZE, sendbuf);/* 写入数据 */ if (ret == SD_NO_ERR) { /* 读寄存器, 检查写入是否成功 */ ret = SpiCmd_Send_Status(sds, 2, tmp); if (ret != SD_NO_ERR) { SD_ReleaseOSSem(sds);

return ret;

/* 读寄存器失败

*/

}

if((tmp[0] != 0) || (tmp[1] != 0)) {

SD_ReleaseOSSem(sds);

ret =

SD_ERR_WRITE_BLK; /* 响应指示写失败

*/

}

} SD_ReleaseOSSem(sds);

return ret;

/* 返回写入结果

*/

}

3. SD 卡单块读操作

SD/MMC 卡在SPI 模式下的读操作也包括两种:读单块和读多块。本示例重点介绍读单块操作。卡初始化函数SD_Initialize()已经调用了SpiCmd_Set_BlockLen()函数设定了读/写数据块的长度SD_BLOCKSIZE 字节。卡在初始化后,读/写都是以块为单位,所以一次读操作至少要读SD_BLOCKSIZE 个字节。SD_BLOCKSIZE 字节一般都为512字节。

SD 卡单块读操作流程图如图 1.10所示。读单块是这样进行的:

图 1.10 SD单块读操作流程图

(1)主机首先检查卡是否已经完全插入卡座中;

(2)检查块地址是否超出卡的容量范围;

(3)以上条件满足后,向卡发送读单块命令,读取地址为blockaddr的一个数据块;

(4)调用读取块数据函数从卡读取一个数据块。

SD卡单块读操作程序清单如程序清单 1.9所示,建议客户的应用时直接调用软件包

的API函数操作。

程序清单 1.9 SD卡单块读操作代码

/******************************************************************************************

** 函数名称:SD_ReadBlock

** 功能描述:SPI模式下, 从SD/MMC卡中读出一个数据块

** 输 入:sd_struct *sds:SD/MMC卡信息结构体

** INT32U blockaddr:以块为单位的块地址, 例如, 卡开始的0 ~ 511字节为块地址0, 512 ~

** 1023字节的块地址为1

** 输出:INT8U *recbuf:接收缓冲区,长度固定为 512 字节

** 返回值:0:正确>0:错误码, 见 sddriver.h 文件

******************************************************************************************/ INT8U SD_ReadBlock(sd_struct *sds, INT32U blockaddr, INT8U *recbuf)

{

INT8U

ret;

SD_RequestOSSem(sds); /* 向OS申请访问卡信号量*/

{

(!SdHal_CheckCard(sds))

if

SD_ReleaseOSSem(sds);

return SD_ERR_NO_CARD; /* 卡没完全插入卡中 */ }

if (blockaddr > sds->block_num) {

SD_ReleaseOSSem(sds);

操作超出卡容量范围 */ return

SD_ERR_OVER_CARDRANGE; /*

}

读单块命令*/ ret =SpiCmd_Read_Single_Block(sds,

/*

blockaddr);

if (ret != SD_NO_ERR) {

SD_ReleaseOSSem(sds);

return ret;

}

ret =SdSpi_ReadBlockData(sds, SD_BLOCKSIZE, recbuf); /* 读出数据*/ SD_ReleaseOSSem(sds); /*

归还访问卡信号量*/ return

ret;

}

1.6 SD/MMC卡读写模块的使用示例二

下面给出在LPC2103微处理器上使用SD/MMC卡读写模块对SD/MMC卡进行读、写、

擦的例子。该例子基于uCOS-II操作系统,利用LPC2103提供的SPI接口读写

SD/MMC

卡,读取的数据通过LPC2103的UART0发送到PC机的软件界面显示出来,要写入卡的数据也可以通过PC机软件通过UART0写入到卡中,另外,本例子也提供了擦卡的演示。

1.6.1 实现方法

本例子最主要的任务是演示读写SD/MMC卡,为了实现能够实现LPC2103与PC的通信,本例子使用了串口中间件与数据队列中间件,来收发来自PC机的数据。例子的软件结构如图1.11所示。

图1.11 例子实现方法

图1.11中,本例子只包括两个中间件和两个任务:

z串口中间件与数据队列中间件。这两个中间件用于接收来自UART0的数据,或将数据通过UART0发送到PC。

z串口接收数据任务。接收来自PC机的数据,并负责将收到的数据发送给卡操作任务。

z卡操作任务。接收来自串口接收数据任务的数据,根据数据中包括的命令和数据实现对SD/MMC卡的读、写、擦。并将执行结果或数据提交给串口中间件与数据

队列中间件,由它们发送到PC机,报告读到的数据或执行的结果。

可见,PC机与卡操作任务之间需要一个协议来协调,才能正确完成对SD/MMC卡的初始化、读、写、擦。

因此,可以制定一个简单的协议来完成:

(1)定义LPC2103的UART0接收触发中断深度为8个字节,并定义8个字节为一帧,

数据的传输以帧为单位,PC机发送的帧称为命令帧,LPC2103发送的帧称为响应

帧。

(2)PC机发送的每一帧的第1个字节为命令字,2 ~ 8个字节为数据部分,如图1.12

所示。

(3)LPC2103每收到PC机的一个帧,根据命令字进行相应的处理(如读卡),然后将

处理结果打包成一帧发回PC机,帧头为LPC2103收到的命令字,2 ~ 8字节为响

应部分。

PC ?LPC213x 命令帧

LPC213x ?PC 响应帧

图1.12 PC 机发送的命令帧与LPC2103的响应帧

(4) 在内存中开辟一片缓冲区INT8U sd_buf[512],大小为520字节(比SD/MMC 卡

的一个块大8个字节)。用于保存从卡中读到的数据或即将写进卡中的数据。 (5) 根据以上四点,制定卡操作任务对SD/MMC 卡进行初始化、读、写、擦的方法,

其示意图如图1.13所示。

图1.13 卡操作任务对命令帧的响应示意图

如图1.13所示,卡操作任务根据命令帧的第1个字节,执行下面的分支。

z CMD_SD_INIT 命令,卡初始化命令。卡操作任务执行对SD/MMC 卡的初始化,

然后将执行结果放入响应帧的第2个字节,向PC 机报告初始化结果。 z CMD_SD_READ 命令,读指定的块。PC 机将要读的块地址放入CMD_SD_READ

命令后的两个字节中,卡操作任务调用读块函数读出指定的块,暂存于sd_buf[]中,读块函数的返回值放入响应帧的第2个字节,向PC 机报告读操作是否成功。 z CMD_SD_WRITE 命令,写指定的块。PC 机将要写的块地址放入

CMD_SD_WRITE 命令后的两个字节中,卡操作任务调用写块函数将sd_buf[]中的数据写入卡中,写块函数的返回值放入响应帧的第2个字节,向PC 机报告写操作是否成功。

z CMD_SD_ERASE 命令,擦除指定的块。PC 机将要擦除的块的地址与要擦除的

块数放在该命令字的后面,卡操作任务调用擦块函数将指定的块擦除,擦除函数的返回值放入响应帧的第2个字节,向PC 报告擦除操作是否成功。

爱国者SD存储卡 使用指南

爱国者SD存储卡使用指南 ·第一次使用新卡时 a.在使用卡前,必须先格式化。 ·sd卡的维护 a.卡被插入或取出时请关闭电源。 b.长期重复使用卡将导致其性能降低,此时你需要购买新卡,以备使用。爱国者公司不保证卡的老化和破损。 c.卡是精密电子器件。不要折断或以任何重力冲击。 d.请勿将卡存放在强电和强磁场中,例如:在扬声器或电视接收机旁边。 e.请勿在主高温,高湿,高腐蚀的地方使用和保存此卡。 f.请勿将卡接触灰尘,如已沾染灰尘,使用软布清除。 g.当不使用卡时,请将卡保存在盒中。 h.长期拍摄或播放时,您可能发现卡发热,这是正常现象。 ·保存sd卡数据 (1).如果sd卡出现下列任何情况,记录数据可能陂破坏: a.使用sd卡的方式不正确。 b.初始化,播放资料,记录资料时关闭电源或取出sd卡。 (2).建议将重要资料复制保管在其它媒体作为备份,例如:软盘、硬盘、cd等。 (3).对于不正常使用SD卡造成的记录资料丢失,爱国者公司不负任何责任,敬请谅解。

aigo SD CARD Quick Guide ·How to use the SD CARD: SD CARD is easy to use, the instructions on how to use SD CARD with Windows 2000/XP/Vista on computer/camera are shown below: 1. 1) Turn on your computer. 1. 2) Plug the SD CARD into the SD MMC MS of the computer. The SD CARD symbol should appear under the”My Computer”file. Under Windows 2000/XP, an icon will appear in the taskbar. 1. 3) Plug the SD CARD into the SD MMC MS of the camera. The SD CARD symbol should appear ,and the camera will have the memory space of the SD CARD. · Technical parameter -Capacity: 2~32GB -Erase cycles > 5,000times -Data Transfer Rate: up to 480Mbps -Connectivity: USB Port Type A

存储卡参数表

目前机友们使用高速闪存TF卡的越来越多了,4GB、8GB、已经很平常了,甚至16GB和32GB也有测试上机的,牛人多啊。但大部分机友还是对什么是SD卡,TF卡,SDHC标准,和Class传输速度等级不是很明白,而且很多人对买卡还是比较盲目,本人特搜集了关于这方面的知识、加上个人的了解和经验作个简单综合性的分析,有错误之处望指正 1:SD卡和TF卡 大家知道我们的手机使用的是指甲盖大小的存储卡,这个卡其实就是TF卡。而经常提到的SD卡又是什么卡呢?简单的说吧,SD卡体积比较大,大家买卡的时候应该记得那个白色的小塑胶盒子里面有两个卡,小的就是TF卡,大的是适配器(大家也称为卡托),这个TF卡可以插进卡托里面,这样就形成了一个SD卡,可以简单的理解为TF卡+卡托=SD卡,这样的SD卡可以插到读卡器里用于数据传输,也可以适用于某些例如数码相机一类的兼容性数码产品,而我们的手机就只要这个小小的TF卡就可以了。(用于非手机等较大的数码产品的存储卡是一个完整的SD卡,不像我们买到的手机卡这样可以组合和拆分的)看图: 2:SDHC标准和CLASS传输速度等级 什么是SDHC标准? SDHC是“High Capacity SD Memory Card”的缩写,即“高容量SD存储卡”。2006年5月SD协会发布了最新版的SD 2.0的系统规范,在其中规定SDHC是符合新的规范、且容量大于2GB小于等于32GB的SD卡。

SDHC最大的特点就是高容量(2GB-32GB)。另外,SD协会规定SDHC必须采用FAT32 文件系统,这是因为之前在SD卡中使用的FAT16文件系统所支持的最大容量为2GB,并不能满足SDHC的要求。 SDHC标志如下图: 作为SD卡的继任者,SDHC主要特征在于文件格式从以前的FAT12、FAT16提升到了FAT32,而且最高支持32GB。同时传输速度被重新定义为Class2(2MB/sec)、Class4(4MB/sec)、Class6(6MB/sec)等级别,高速的SD卡可以支持高分辨视频录制的实时存储。 SDHC卡的外形尺寸与目前的SD卡一样(含TF卡),著作权保护机能等也和以前相同,但是由于文件系统被变更,以前只支持FAT12/16格式的SD设备存在不兼容现象,而现在也支持FAT32(SDHC)的机器,这可以读取现存的FAT12/16格式的SD卡。SDHC标志 所有大于2G容量的SD卡必须符合SDHC规范,规范中指出SDHC至少需符合Class 2的速度等级,并且在卡片上必须有SDHC标志和速度等级标志。 符合SDHC标准的TF卡如下图: 在市场上有一些品牌提供的4GB或更高容量的SD卡并不符合以上条件,例如缺少SDHC标志或速度等级标志,这些存储卡不能被称为SDHC卡,严格说来它们是不被SD协会所认可的,这类卡在使用中很可能出现与设备的兼容性问题。

空SD卡怎样恢复数据重新使用

空SD卡怎样恢复数据重新使用 如今SD卡已经逐渐普及,随之而来的问题也不容忽视。在众多SD卡问题中,我们常常会遇到SD卡显示为空的故障,这是什么原因导致的?又应该怎样修复SD卡呢? 故障:SD卡显示为空 有时,当您在相机、手机或其他移动设备上使用SD卡时,会出现“空白SD卡”、“SD 卡显示为空”的问题。这种故障下,SD卡无法使用、无法进行数据备份与转移,原先保存在SD卡中的数据也没办法通过SD卡恢复出来。 为什么SD卡会显示为空呢? SD卡显示为空的原因 型号不匹配。这种情况在手机上比较常见,当您的SD卡型号和手机型号不匹配时,可能会出现SD卡显示为空的故障。在购买SD卡时,您应该询问销售人员SD卡支持的手机型号。 SD卡逻辑损坏。SD卡内部系统文件丢失或损坏,导致设备无法识别SD卡或识别出错。 SD卡物理损坏。如内部电路烧坏、芯片损坏等。 怎样恢复SD卡数据 当您发现SD卡显示为空的故障时,如果您有重要数据保存在SD卡中,想必您的当务

之急,是进行SD卡数据恢复。在这里,我们将为您介绍一款专业的数据恢复软件——迷你兔数据恢复。 迷你兔数据恢复软件支持硬盘、U盘、SD卡等多种设备,可恢复意外删除的数据、被格式化的数据、病毒攻击丢失的数据,以及因为各种意外情况丢失的数据。 该软件操作简单,扫描深度,效果强大。 接下来,我们将为您展示恢复SD卡数据的详细步骤。 第一步:安装并运行迷你兔数据恢复软件,点击“开始恢复”。 第二步:在“可移动磁盘”中,找到您的SD卡所在的移动盘,点击“扫描”。 第三步:扫描结束以后,您就可以在丢失数据的列表中,筛选并勾选您要恢复的SD卡数据,重新保存到安全磁盘中。

手机sd卡数据恢复,手机sd卡无法读取如何恢复

手机sd卡数据恢复,手机sd卡无法读取如何恢复——相信很多消费者一定有很多这样的苦恼,就是手机的SD卡中的数据不小心被删掉,或者由于一些原因不得不将它格式化。这时比较棘手的一个问题就出现了,删除或者格式化之后许多重要的东西就不见了。这是很让人着急的一件事,因为毕竟SD卡里储存了许许多多带有美好回忆的照片,或是自己很喜欢的音乐,更或者是极为重要的文件等等。一旦丢失,普通的方法几乎无法找回这些文件了,让人非常无奈。 那么到底手机SD卡的数据误删除了应该怎么办?如何才能彻底恢复SD卡丢失的数据呢?这时许多消费者就不知道该怎么办了,接下来这里将有一些办法可以为这些消费者解决这个让人束手无策的办法。 首先大家可以在网上找到和自己手机型号匹配的SD卡数据恢复软件,通过和自己手机型号匹配的软件来修复SD卡中的数据,这样就可以了。当然如果自己不会做的话你也可以上网看教程,不过在用软件进行SD卡数据修复的时候一定要小心,不会也可以请会的人来帮自己。 以上所说的这种方法是最简单的一种,很方便很快捷,恢复效果也很好。所以,有手机SD卡中数据不小心被删掉或者格式化的消费者,就不用再为丢失的数据而担心了! 手机SD卡数据丢失还有一种办法,就是接下来要为大家推荐一款很好用的软件,名字叫做“数据恢复软件”,许多手机SD卡数据丢失的消费者都是使用这个软件来恢复丢失的数据的。数据恢复软件自身带有的“深度数据恢复”功能,能够彻底的将数据进行深度扫描和重新整合还原,快速将手机SD卡之中的数据恢复出来。从目前软件机构对数据恢复软件的实际评测来看,其数据恢复速度和效果都是最佳的。

强力建议手机SD卡数据丢失,或者不小心删掉东西,更或者被格式化的消费者可以尝试使用这款数据恢复软件进行恢复操作,数据恢复。 其实手机SD卡中的数据丢失并不是大问题,只要确保使用高效安全的数据恢复软件,即可对误删除或者错误格式化的数据进行恢复。千万不要使用破解版的软件,因为此类软件大多由于破解而导致性能不稳定,容易造成数据二次破坏,导致数据彻底无法恢复。

SD卡无法读取该如何恢复数据

SD卡无法读取该如何恢复数据 随着手机性能越来越高,用户对于手机容量的需求也越来越大,现在很多手机都以扩展的SD卡来增加手机的存储容量。在使用SD卡的过程中,大家可能会遇到SD卡无法读取的情况,很多用户都不知晓SD卡无法读取的原因,也不知道该采取什么方式来解决SD卡出现的问题。大家都知道,SD卡重要的不是本身而是其存储的数据,目前有什么方法可以帮助大家恢复SD卡中的数据吗? 针对造成SD卡无法读取的原因不同,解决的方法也各有不同。下面就跟大家简要分析一下SD卡无法读取的原因和相应的解决方法。 原因一:SD卡不干净 不少用户平时不注意保养自己的电子产品,对SD卡的保护不够好,SD卡的金属区域会沾有灰尘或油污,造成与卡槽接触不良,有时无法读取的情况。 解决方法:检查SD卡的金属区域是否暗淡或有斑,如果有,使用酒精或水清理,吹干即可。 原因二:卡槽受挤压 现在市场上的超薄机型越来越多,其卡槽设计非常巧妙。如果使用非原装电池,可能由于厚度超出标准对卡槽形成挤压,出现手机SD卡无法读取的现象。 解决方法:更换原装电池试试。 原因三:卡槽金属丝生锈或歪曲 很多手机的SD卡都支持热插拔,频繁的抽查SD卡可能会造成SD卡卡槽金属丝过度弯曲或生锈。 解决方法:仔细检查卡槽金属丝是否弯曲或生锈,如果弯曲,用针将金属丝下挑;如果生锈,清理即可。 原因四:SD卡中毒 目前智能手机的应用市场上有很多软件或游戏都包含病毒,如果SD卡中毒,很可能无法正常读取。 解决方法:使用读卡器连接电脑,使用杀毒软件清理,如果仍无法解决,将SD卡格式化。 原因五:SD卡损坏 这个很容易判断,使用读卡器连接电脑,如果可以正常显示,说明SD卡完好,如果不能读取,说明SD卡已经损坏。 当SD卡无法读取时,用户如果没办法将SD卡中的数据提取出来,就只有请教专业的数据恢复机构,让专业的数据恢复人员帮助我们找回SD卡中的数据。 当用户发现SD卡无法读取时,不要惊慌,要立即停止使用SD卡,不要胡乱对SD卡进行任何操作造成SD卡进一步损坏,然后将SD卡送交天盾数据恢复中心进行数据恢复,一般情况下都可以恢复过来。

[教程] 将SD卡映射为手机内存 完整详细Link2SD教程(包括SD分区教程)

[教程]将SD卡映射为手机内存完整详细Link2SD教程(包括SD分区教程) 这个需要借助于电脑实现的,首先下载个分区软件本人是用的win pm分区的。下面有附件可以自行下载,先声明必须是ROOT过后的机子才可以的哦。 1.打开下载好的win pm 2.将内存卡用读卡器连接至电脑,注意一定要使用读卡器,使用手机的磁盘模式会出问题 3.如图,我们可以看到内存卡盘符,右键点击删除,勾选“下一次不询问卷标”,"确定","确定"

4.之后,看到内存卡盘符已成为自由分区,这是我么再次右键点击创建,按图分配大小,其中新大小是之后能被电脑识别用来做存储用的空间大小,剩下的空间即是用来装手机程序的,大小自定,一般剩余留下512M做EXt分区就够了,我这里留下200M

5.随意输入卷名,分区FAT32,确定 6.这是会看到又多了一个自由分区,就是刚刚剩下的那一部分,再次右键创建,新大小天上剩下的空间即可,在此之后的自由空间为0,确定

7.随意输入卷名,格式为EXT2FS,确定 8.这时候所有的更改都已经完成,但是这些更改并不是真的发生了,我们还需要点击左上角的应用,使刚才的更改生效。提示选是,然后耐心等待操作完成,完成后点击下方关闭按钮即可。

9.这时候依然无法在电脑上看到FAT32分区的盘符,我们右键点击我的电脑(计算机)——管理,进入磁盘管理器,找到刚才分出的FAT分区,右键更改驱动器名和路径,点击添加,默认即可,确定。 二.使用link2sd汉化版 1.在手机上安装link2sd并打开 2.有提示选择SD卡第二分区系统,我们选择刚才分区使用的EXT2,确定

当SD卡中的数据不小心被删除了该怎么找回的技巧攻略

当SD卡中的数据不小心被删除了该怎么找回的技巧攻略 如今,SD卡越来越普及,硬盘早已不是存储文件的唯一工具,相机,手机,摄像机等数码产品皆凭借SD卡存储照片、视频,毫不夸张地讲人们生活的很多珍贵瞬间都保存在SD卡当中。然而,当我们用SD卡的过程中,有时会遇到棘手问题,也许昨天可以正常使用SD 卡,今天就无法打开了。在这种时候,大部分人的脑子里的第一念头就是,SD卡里面的数据岂不就丢失了?还能找回来?可以恢复那些珍贵的音频图文和机要文件吗?在这种情况之下,大家最好寻找高效而安全的文件恢复方法,把已经丢失的信息数据给找回来。 造成SD卡数据丢失的原因 为什么SD卡的文件会丢失?难道是打开的方式错误?或者SD卡不能被电脑读取?实际上导致SD卡数据丢失的因素各种各样,只有搞清楚了状况和原因,方能更好地解决问题,其中包括如下: 因素一:插口故障

如果SD卡无法被读取,首先检查读卡器接口和电脑接口有没有损坏,多次尝试多次验证,并且在另外的计算机上插上查看SD卡能否被读取。 因素二:SD卡太多污渍 大部分用户不会经常保养SD卡,因此SD卡的金属区域使用过久之后,难免会有灰尘或油污污染,导致与卡槽接触不良,出现不能读取的状况。在此情况下,可以查看SD卡上是否有暗淡痕迹或有污渍斑点,如果有,则以酒精或水清理干净,然后风干便行了。 因素三:SD卡中病毒 当我们以手机安装新的软件时候,或是在电脑上存储数据进入SD卡的时候,都有几率会出现SD卡被病毒感染的情况,然后就出现SD卡无法被读取,在这种情况下,最好凭借杀毒软件来杀毒,如果无效,可以格式化SD卡。 因素四:生锈或扭曲 检查SD卡的卡槽金属丝有没有扭曲或锈蚀,如果扭曲,即以针将金属丝挑正,如果发生了锈蚀的情况,清理干净锈斑后,即可正常使用了。 因素五:SD卡格式化 如若是自己不小心操作导致SD卡内的数据被删除,数据被清空,或者无意中将SD卡给格式化,这时候可以使用【迷你兔数据恢复软件】,快速高效安全地将SD卡上的数据找回来。第一步、运行迷你兔数据恢复软件,选择‘移动存储设备恢复’功能。 迷你兔数据恢复软件不仅可以免费恢复SD卡中被删除数据、中病毒、被格式化而丢失的数据,而且可以免费恢复硬盘、U盘、USB存储设备中丢失的文件,几乎可以支持所有类型的文件,而且不会对数据有任何损坏,不会有任何写入操作,因此不会对丢失的数据进行覆盖,安全性和恢复能力都极为可靠。

SD存储卡新规格UHS

SD存储卡新规格UHS-I 东芝UHS-I高速SDHC存储卡来源:东芝(Toshiba)官方网站 [点击放大] 虽然在一些高端的数码单反(也称为单反数码相机或者简称为DSLR上,还在使用CF存储卡(比如佳能的EOS 1D系列),但是SD/SDHC存储卡基本上已经完全占领了其他数码单反的领地,甚至是一度不支持SD卡的索尼也完全放开了对SD存储卡的支持。 但是随着数码单反的像素越来越高,尤其是高清摄像能力的普遍加入,即便是Class 10规格的高速SDHC也未见得能满足需求。因此,SD卡协会在今年6月份颁布了UHS-I和UHS Speed Class 1两款性能标识。UHS-I表示支持UHS(Ultra High Speed,超高速)接口,其带宽达到104MB/s。在此基础上,如果存储卡性能能够满足实时存储高清视频的标准,即可标识“UHS Speed Class 1”。 东芝近期就推出了具备UHS-I认证的SDHC存储卡,容量为8GB、16GB和32GB三种,其写入速度达到了80MB/s,这个速度,已经超过了移动硬盘,而电脑上的USB 2.0接口已经成为瓶颈了! 需要注意的是,UHS-I和UHS Speed Class 1两种标志,并不是仅限于SDHC存储卡,未来的SDXC存储卡,也可能会拥有这样的标志。而目前,我们所知道的是,SDXC存储卡的最大容量可以达到2TB,最高传输速度可以达到300MB/s,起步容量为64GB。

UHS-I与UHS Speed Class 1是SD卡协会于2010年6月24日推出的两种新的高速性能标识。前者代表设备或存储卡的总线接口带宽可达到104MB/s(不代表实际传输速度),后者则表示在此基础上能够进行实时存储高清视频。 在现有的数码单反相机产品中,尼康D7000是第一台能够支持UHS-I规范的机型。我们就来看看,D7000搭配新的UHS-I SD卡,能够带来多少性能上的提升。 本次对比使用Sandisk Extreme SD卡与Sandisk Extreme Pro SD卡。Extreme卡上的Class 10表示这是一张在UHS-I规范推出前最高速级别的SD卡,Extreme Pro卡上的I和U1则表示该卡支持UHS-I和UHS Speed C lass 1规范。 D7000的标称连拍速度是6fps,分别使用两张SD卡进行连拍测试,结果如下: Sandisk Extreme Pro UHS-I:缓冲区清除时间约7s。缓冲区满后连拍速度约为1.9fps。 Sandisk Extreme Class 10:缓冲区清除时间约11s。缓冲区满后连拍速度约为1.7fps。 从以上对比结果来看,Extreme Pro卡的优势是很明显的。尽管如此,D7000也并没有完全发挥UHS-I SD卡的性能。 此外,无论是Extrem还是Extrem Pro卡,都比Ultra II(Class 4)卡快得多。同样的测试下,Ultra II的缓冲区清除时间约15s,在缓冲区满后无法继续连拍(拍1张照片约1-2s)。

SD卡原理及内部结构

1、简介: SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。 SD 卡内部结构及引脚如下图所示:

SD卡内部图.JPG 2、SD卡管脚图:

SD卡图.JPG 3、SPI模式下SD各管脚名称为: sd 卡: SPI模式下SD各管脚名称为.JPG

注:一般SD有两种模式:SD模式和SPI模式,管脚定义如下:(A)、SD MODE 1、CD/DATA3 2、CMD 3、VSS1 4、VDD 5、CLK 6、VSS2 7、DATA0 8、DATA1 9、DATA2 (B)、SPI MODE 1、CS 2、DI 3、VSS 4、VDD 5、SCLK 6、VSS2 7、DO 8、RSV 9、RSV SD 卡主要引脚和功能为: CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz 的频率; CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡; DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。 SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在

书籍-SD卡规范

1.概述 SD存储卡(Secure Digital Memory Card)是特别为符合新出现的音频和视频消费电子设备的安全性、容量、性能和环境等要湂而设计的一种存储卡。SD存储卡包含符合SDMI标准安全性的版权保护机制,速度更快而且存储容量更大。SD存储卡的安全绻统使用双方认证和“新的密码算滕”技术,防止卡的内容被非滕使用。它还提供了一种无安全性的访问方滕访问用户自己的内容。SD存储卡的物理外形、引脚分配和数据传输协议都向前兼容多媒体卡(MultiMediaCard),但也增加了一些内容。 SD存储卡的通信基于一个高级的9引脚接口(时钟、命令、4条数据线和3条电源线),可以在最高25MHz频率和低电压范围内工作。通信协议也是本规范的一部分。SD存储卡的主机接口也支持常规的多媒体卡操作。也帱是说向前兼容多媒体卡。实际上,SD存储卡和多媒体卡的主要区别在初始化过程。 SD存储卡规范共有几个文档,其文档结构图如图1所示。 ·SD存储卡音频规范 这个规范以及其他规范介绍了某些应用(这里是音频应用)的规范以及实现要湂。 ·SD存储卡文件绻统规范 介绍了保存在SD存储卡中的数据的文件格式结构规范(包括有保护和无保护方面)。 ·SD存储卡安全规范 介绍了版权保护机制以及支持的应用专用命令。 ·SD存储卡物理幂规范(本规范) 介绍了SD存储卡使用的物理接口和命令协议。本规范的目的是定义SD存储卡的环境和操作。 本文档分几个部分,第三章概述了绻统的概念。一般的SD存储卡特性在第四章介绍。由于这里定义了卡的所有幞性,我们建议同时参考产品文档。卡的寄存器在第五章介绍。第六章定义了SD存储卡的硬件接口电渔参数。第八章介绍了SD存储卡的物理和机械特性以及卡槽的最帏标准。

一种恢复u盘打不开的方法(也适用于内存卡数据恢复)

一种恢复u盘打不开的方法(也适用于内存卡数据恢复) 打开磁盘的时候提示未格式化的恢复步骤,移动硬盘打不开,U盘提示格式化 有时候我们会碰到某个分区用着用着就打不开了,在浏览器里面双击这个盘符就会提示磁盘未格式化,是否要格式它,碰到这种情况不要惊慌,更加不要按系统的提示去乖乖的格掉这个盘符。保持好数据现场,大多数情况下这类提示格式化的数据还是可以完整恢复的。系统出现这种盘符打不开,一般是由以下几种原因引起的,比如病毒引起或者非法关机造成分区数据异常,破坏了分区里面某些关键数据,或者是电源不稳定供电不足导致磁盘I/O出错,热插拔移动硬盘或者U盘也经常会出现提示未要恢复的现象。 下面我们用超级数据恢复软件来介绍一下如何来恢复盘符提示未格式化的数据恢复过程。这是一个移动硬盘,里面有4个分区,在某次接上硬盘后发现第一个分区打不开了,系统浏览器里面这个盘符还显示,不过卷标改变了,一点这个盘符就跳出一个窗口说磁盘未格式化,询问是否要格式化这个磁盘,根目录打不开也看不到了。这个分区是FAT32的,因为格式化后会破坏数据,所以不能去格这个盘的。 运行超级硬盘数据恢复软件后,我们选第3项,恢复丢失的分区,这个功能适合这类根目录打不开提示需要格式的情况。我们点下一步后,选择这个移动硬盘“磁盘2”,再点下一步按钮。

等待几分钟扫描分区,就可以列出了这个丢失的分区,以蓝色字体来加亮显示出来,很容易区分出,而其他灰色字体的分区是现在系统里面正常的分区,不是我们需要恢复的,就不要选它。选上蓝色的分区后,点下一步按钮。这个在系统里面打不开的分区,根目录很清晰的就显示在我们的恢复软件里面,数据是正常完好的,恢复后文件都对,可以正常使用。

各种SD存储卡常见问题的解决方法

一、无法格式化。 现象:用读卡器与电脑相连后系统提示存储卡没有格式化,当选择格式化后,系统提示“windows无法完成格式化”。 原因:使用sd卡时没有按操作规程退出硬件,在出现读写问题后强行移除sd卡。 解决:先用磁盘检测程序对sd卡进行检测,在检测时选中“自动修复文件系统错误”和“扫描并试图恢复坏扇区”。扫描完成后对sd卡进行格式化。 二、无法识别。 现象:sd卡无法被数码相机识别。 原因:一般数码相机所支持的文件系统为fat,而在windows下格式化一般为fat32或ntfs格式,而这两种格式却不能被相机识别。另一个原因可能是病毒作怪。 解决:用读卡器与电脑连接后格式化成fat格式,或者安装在相机上用相机上的格式化程序格式化一遍。 三、不能写入数据。 现象:用读卡器与电脑连接后向里面写入数据时,提示存储卡写保护,虽然可以看到里面的内容,但无法写入数据。 原因:一个原因是由于频繁使用读卡器,导致sd卡与读卡器接触不良,另一个原因是sd卡质量不过硬,在使用过程产生了坏道。 解决:对于接触不良的情况可以换一个读卡器。如果是sd卡有坏道,可以找一些低级格式化软件对存储卡进行低级格式化。 四、无法移除硬件。 现象:在微机上使用完后,按正常操作删除硬件时提示暂时无法删除硬件。 原因:可能是一些自动运行的病毒作怪。如在卡上有autorun.inf文件时,就会出现这个问题。另一个原因是不正确的操作导致存储卡上出现逻辑故障,为了保护卡不受损坏而自动加上了逻辑锁。 解决:由于病毒原因造成的可以进行杀毒。

对于第二个原因可以执行如下操作: 1、在存储卡所在盘符上点右键,选择属性-工具-查错,在接下来的对话框中钩选“自动修复文件系统错误”和“扫描并试图恢复坏扇区”。 2、进入资源管理器,结束explorer.exe这个进程,然后在应用程序选项卡中执行新任务-浏览-c:\windows\explorer.exe,等桌面重现出现后,再停止存储卡。 3、如果经常出现这种情况,可以在记事本输入“taskkill /im rundll32.exe”,建立一个批处理文件,在出现故障时运行一下这个批处理文件。 关于手机的可以参考这个P6的方法,虽说机型不一样,道理很多是相通的 状况一:P6内存卡插入时电脑显示的是无法连接 这个问题相信有很多机友们在使用其他电子产品的时候遇到过这种情况,一般这种情况主要是内存卡和电脑不兼容,可将内存卡放回手机,用P6自带内存卡格式化功能进行重新格式化操作即可。 状况二:内存卡装上时无法打开网页,拔掉却可以 一般这种情况是第三方输入法引起,建议重新下载输入法。 状况三:格式化内存后显示无法使用 检查格式化后显示为FAT32格式,如果显示FAT16必须重新格式化并选择FAT32格式。如果手机无法修复,可通过电脑系统的磁盘工具进行修复。 状况四:内存卡放入读卡器没反应或直接死机 这时需要大家检查一下内存与读卡器是否接触良好,建议换个读卡器试试,别轻易格式化,实在不行就换个内存卡吧。 以下内容均从网上搜集整理而来,可能更加可以完善解决方案,也希望塞班机友增加补充。 【状况一】:将内存卡插在电脑上,内存卡无法识别的问题。这种情况往往是因为内存卡在电脑上进行格式化,但是格式化与手机不兼容造成的。

sd卡协议分析

sd Mmc 目录 第一章 SD卡系统概念 3 §1.1 SD卡概述 3 §1.2 SD卡的系统特征 3 §1.3 SD卡的系统概念 4 §1.4 SD卡的总线传输 6 §1.5 SD卡的引脚 10 §1.6 SD卡主要寄存器介绍 12 §1.7 SD卡子系统结构 14 第二章 SD卡初始化及状态转换 16 §2.1SD卡状态及初始化过程 16 §2.2SD卡数据传输过程 18 1.SD卡基础 1.SD卡概述 SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,同时三个公司联合成立了SD协会,并制定SD卡相关的协议标准。SD卡协议主要包括物理层协议、SD卡控制器设计手册、SDIO卡手册三部分。 其中SDIO指的是安全数字输入输出卡(Secure Digital Input and Output Card),是在SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD上的 I/O数据接位与这些外围设备进行数据传输。相关的一些设备为:GPS、

相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。SDIO本质上是一种接口,通过该接口可以连接一些其他功能的设备而非仅仅是存储设备。 1.2 SD卡的系统特征(SD物理层协议v 2.0) ?针对移动和固定应用; ?存储容量: 标准容量SD存储卡:最高2G 高容量SD存储卡:2G以上(在该规范版本中,最高32G) ?电压范围: 高电压SD存储卡—操作电压范围:2.7~3.6V 双电压SD存储卡—操作电压范围:低电压范围(T.B.D)和 2.7~ 3.6V ?分为只读卡和读/写卡; ?默认模式:时钟频率可在0~25MHz间变化,高达12.5MB/s 的接口速度(使用4条并行数据线) ; ?高速模式:时钟频率可在0~50MHz间变化,高达25MB/s 的接口速度(使用4条并行数据线) ; ?支持高速,电子商务和将来功能的转换功能命令; ?存储域错误纠正; ?读操作期间移去卡,内容不损坏; ?内容保护机制—符合SDMI标准的最高安全性; ?卡的密码保护(CMD42 - LOCK_UNLOCK);

一般sd卡内存卡的损坏的原因和解决方法。。

一般sd卡内存卡的损坏的原因和解决方法。。 ★一般内存卡的损坏分为未设密码电脑读不出卡密码忘记无法格式化I/O 错误三大类情况。首先先说未设密码机器读不出卡的情况这种情况基本是由于不支持热拔插直接拔卡和读卡器写卡操作失误造成的使卡造成逻辑错误这种情况可以使用诺顿磁盘修复工具和硬盘还原来修复具体操作过程不再详述只提到一点假如内存卡放入读卡器之后系统一直读卡但没有任何响应甚至假死机器的卡灯一直亮着这种情况下上述两项工具是没有任何用处的因为打开软件它们根本识别不到内存卡。这里讲一种解决办法就是先找到一张相同容量的内存卡放入读卡器然后点击右键“格式化”出来格式化菜单这时把卡拔出格式化菜单并不会随之消失你在这时插入有问题的那张卡然后选择“FAT32”格式开始格式化这个过程可能要等很久有时会过很久出现“Windows”无法完成格式化但这时不要放弃重复上述过程大概十次会格式化成功一次成功一次之后你点击右键的属性选项“检查错误”修复坏扇区如果内存卡存在物理损坏这里的进程会非常慢在这个过程之后再把格式选择为“FAT”再格式化一遍就大功告成了再说设密码无法格式化的原因出现这种问题有很多原因有很多是待卡格式之后内存卡突然出现密码一种是设置背景使用E盘上的图片或MBM格式图片而重启之后被锁还有很多原因。解决这些问题是不能在XP系统下格机的因为机器根本识别不出来目前最完美的方案是用9210C或9300强行格这种方法论坛里有详解。有两种方案第一种找一台DAK或CANON的支持内存卡存储的相机打开机器机器基本上都可以直接格卡没有出现密码提示因为相机的系统设置不像手机有按键设置相对手机设置它是较为简单的基本上只要支持内存卡存储越是低端越好。第二种方法适合二版机是在那台引起错误的手机上解决这种方法用QD试过别的机器不太清楚具体方案是使用蓝牙给出问题的手机装上SeleQ在装SeleQ时一定要装入手机存储因为选择存储卡后马上会出现“系统错误”装入之后重启手机然后在SeleQ里就可以看见E盘了这时你去内存卡里一个一个的删文件直到删空之后回到C盘SYSTEM文件夹里会出现两个MMC前缀的文件全部删除后回到电脑上卡还是不能读的这时用上面提到的方法就可以了但需要耐心。删除后在手机里它还是提示输入密码的。对于I/O错误看一些书上说可以用磁盘修复但还是I/O错误电脑是根本读不出的直接就弹出“I/O”错误。关于修复软件推荐FlashDoctor和mmcmedic。

SD卡文件删除后怎么才能恢复

SD卡文件删除后怎么才能恢复 SD卡,又叫安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写PDA)和多媒体播放器等。Sd卡被越来越多的使用于存储信息中。信息越多,数据的安全风险越高。一旦我们的sd卡出现数据丢失,我们该采取那种办法保护我们的数据呢? 其实,面对SD卡的数据丢失,我们可以采用现在网上比较流行的数据恢复软件。小编在这里给大家推荐一款国产数据恢复软件,叫恢复软件,因为他有个闪电扫描功能我喜欢,能节约很多时间。小编就用迅龙为例给大家讲讲怎样使用这一类软件吧。 根据文件类型几乎是囊括所有文件类型,凡是需要数据恢复的文件都可以进行恢复。文件类型不仅包括音频文件、视频文件,还包括常用的压缩包,文档,图片等类型。数据恢复软件还有一个特色就是误清空回收站功能,软件能够对整个硬盘上的文件误清空回收站后进行恢复。经过测试对比发现恢复效果的确非常好。下面我们就来看一下如何利用恢复软件找回SD卡的数据。 第一步,将自己的电脑与SD卡或者手机连接,刷新我的电脑页面,显示SD卡。 第二步,打开恢复软件,如果电脑上没有安装的话,去网站上下载安装。 第三步,选择误格式化硬盘,然后从中选择自己想要恢复的磁盘,单击进入下一步。 第四步,软件会扫描分区格式化之前的文件,耐心等待扫面完成即可。 第五步,从下面恢复结果的界面中选择自己要恢复的文件,因为是格式化导致的数据丢失,因此也可以全部恢复。 因为是对SD卡格式化数据恢复,因此在恢复的时候也可以选择U盘手机/相机卡恢复或者万能恢复作为自己的恢复方式。怎么样,看了我的文章,大家是不是也都明白了如何解决SD卡格式化数据恢复的问题了呢?

SD卡存储应用解决方案文档

目录 第1章 SD/MMC卡读写模块 (1) 1.1 SD/MMC卡的外部物理接口 (1) 1.1.1 SD模式 (2) 1.1.2 SPI模式 (3) 1.2 访问SD/MMC卡的SPI模式硬件电路设计 (4) 1.2.1 SPI总线 (5) 1.2.2 卡供电控制 (5) 1.2.3 卡检测电路 (5) 1.3 SD/MMC卡读写模块的文件结构及整体构架 (5) 1.3.1 SD/MMC卡读写模块的文件组成 (5) 1.3.2 SD/MMC读写模块整体框架 (6) 1.4 SD/MMC卡读写模块的使用说明 (6) 1.4.1 SD/MMC卡读写模块的硬件配置 (6) 1.4.2 SD/MMC卡读写模块提供的API函数 (9) 1.5 SD/MMC卡读写模块的应用示例一 (11) 1.5.1 硬件连接与配置 (11) 1.5.2 实现方法 (11) 1.6 SD/MMC卡读写模块的使用示例二 (18) 1.6.1 实现方法 (18) 1.6.2 例子建立与运行步骤 (20) 1.6.3 参考程序 (24) 1.7 SD/MMC软件包应用总结 (27)

第1章SD/MMC卡读写模块 SD/MMC卡是一种大容量(最大可达4GB)、性价比高、体积小、访问接口简单的存储卡。SD/MMC卡大量应用于数码相机、MP3机、手机、大容量存储设备,作为这些便携式设备的存储载体,它还具有低功耗、非易失性、保存数据无需消耗能量等特点。 SD卡接口向下兼容MMC(MutliMediaCard多媒体卡)卡,访问SD卡的SPI协议及部分命令也适用于MMC卡。 SD/MMC卡读写模块是ZLG 系列中间件的重要成员之一,又称为ZLG/SD。该模块是一个用来访问SD/MMC卡的软件读写模块,目前最新版本为2.00,本版本不仅能读写SD卡,还可以读写MMC卡;不仅能在前后台系统(无实时操作系统)中使用,还可以在嵌入式操作系统μC/OS-II中使用。本文模块只支持SD/MMC卡的SPI模式。 在本章中,除了特别说明以外,“卡”都是指SD卡或MMC卡。 1.1 SD/MMC卡的外部物理接口 SD和MMC卡的外形和接口触点如图 1.1所示。其中SD卡的外形尺寸为:24mm x 32mm x 2.1mm(普通)或24mm x 32mm x 1.4mm(薄SD存储卡),MMC卡的外形尺寸为24mm x 32mm x 1.4mm。 图 1.1 SD卡和MMC卡实物图 图1.2 SD卡和MMC卡接口示意图(上视图) 表1.1为SD/MMC卡各触点的名称及作用,其中MMC卡只使用了1 ~ 7触点。 表1.1 SD/MMC卡的焊盘分配 引 SD模式SPI模式 脚名称1类型描述名称类型描述 1 CD/DAT3 2 I/O/PP3卡的检测/数据线[Bit 3]CS I 片选(低电平有效) 2 CMD PP4命令/响应DI I5数据输入 3 V SS1 S 电源地VSS S 电源地

手机SD卡的数据丢失恢复办法

手机SD卡的数据丢失恢复办法 在电脑上显示的主界面选中“U盘手机相机卡恢复的时候',软件就会扫描自己的U盘中的文件,从扫描完成的文件中选择要恢复的文件,单击下一步就可以完成恢复。 注意事项 恢复SD卡中的数据时不要直接恢复到SD卡里,先恢复到电脑硬盘中,恢复完确认OK之后再复制到SD卡中。 温馨提示 数据丢失后,不要往待恢复的盘上存入新文件。 如果要恢复的数据是在C盘,而系统坏了,启动不了系统,那么不要尝试重装系统或者恢复系统,要把这块硬盘拆下来,挂到另外一个电脑作为从盘来恢复。 文件丢失后,不要再打开这个盘查看任何文件,因为浏览器在预览图片的时候会自动往这个盘存入数据造成破坏。 分区打开提示格式化的时候,不能格式化这个盘符,如果格式化肯定会破坏文件恢复的效果。 U盘变成RAW格式无法打开,不能格式化或者用量产工具初始化U 盘,不然会破坏数据。 文件删除后,可以把扫描到的文件恢复到另外一个盘符里面。只有一个盘格式化后,盘大小没有发生变化,数据可以恢复到另外一个盘里面;如果分区的大小发生改变,那么必须恢复到另外一个物理硬盘才安

全。 重新分区或者同一个硬盘里面多个分区全部格式化后,必须恢复到另外一个物理硬盘里面,不能恢复到同一个硬盘里面别的分区。 要等数据全部恢复到另外一个盘或者硬盘后,要打开文件仔细检查,确定都恢复对了,才能往源盘里面拷回去的,不能恢复一部分就拷回一部分,往源盘拷数据会影响下一次的数据恢复。 如果没有另外一块足够大的盘来存数据,而且有局域网联网的条件,那么可以在别的电脑上开通具有可写权限的共享目录,恢复到网络邻居共享目录里面。 8注意事项 不要剪切文件。我们经常碰到客户剪切一个目录到另外一个盘,中间出错,源盘目录没有,目标盘也没复制进数据。这看起来是一个系统的BUG,偶尔会出现的。所以我们建议如果数据重要,那么先复制数据到目标盘,没有问题后再删除源盘里面的目录文件,不要图省事造成数据丢失。 目录文件非常多的分区,不要直接做磁盘碎片整理。因为磁盘碎片整

恢复率高且最好用的SD卡数据恢复软件

恢复率高且最好用的SD卡数据恢复软件 SD卡可广泛用于保存日常生活和工作中的各种文件,例如照片,视频,文档,音乐文件等。一般来说,SD卡具有不同的形式,例如标准SD卡,迷你SD卡和微型SD卡。它可以在各种便携式设备上使用,包括数码相机,掌上电脑和Android手机等。 SD卡上有很多重要数据,因此应确保它们的安全以避免数据丢失问题。所以许多意外因素可能会导致SD卡数据丢失。 SD卡数据丢失常见原因 1.人为错误:您可能会错误地删除或格式化SD卡上的数据,或者将其严重弯曲而永远无法使用 2.病毒和恶意软件:当病毒和恶意软件攻击SD卡时,它们可能会删除或窃取SD卡上的文件,并导致数据丢失 3.SD卡故障:由于SD卡使用不当,可能会导致SD卡出现某些故障。然后,很可能您可能会丢失其所有文件。 4.停电:在PC上使用SD卡时,停电可能会突然关闭程序,从而导致未保存文件的丢失和现有文件的损坏。 5.格式化:错误地格式化SD卡会删除卡中的所有文件,如果其中有重要文件,则会导致数据丢失问题。 6.液体伤害:液体损坏会损坏SD卡。在这种情况下,您将无法使用SD卡,更不用说其中的数据了。 选择最好用的SD卡数据恢复软件 迷你兔数据恢复软件是一款操作简单,功能强大的一款恢复软件;

不仅可以恢复SD卡的数据,还可以恢复因为误删除、格式化、清空回收站、病毒攻击、分区丢失、重装系统等原因丢失的数据。 详细关于SD卡数据恢复的操作如下,三步搞定 第一步:打开迷你兔数据恢复软件,点击“开始恢复”,进入磁盘扫描界面。 第二步:左边显示“我的电脑”“可移动硬盘”“物理磁盘”三个设备列表,点击“可移动硬盘””进行扫描。 第三步:等待扫描结束后,手动勾选出需要恢复的数据文件,保存到其他的安全分区当中就好了。

各种SD卡问题解决参考

前言:当您遇到如下问题的时候,希望可以能尽快的解决 一、无法格式化。 现象:用读卡器与电脑相连后系统提示存储卡没有格式化,当选择格式化后,系统提示“windows无法完成格式化”。 原因:使用sd卡时没有按操作规程退出硬件,在出现读写问题后强行移除sd卡。 解决:先用磁盘检测程序对sd卡进行检测,在检测时选中“自动修复文件系统错误”和“扫描并试图恢复坏扇区”。扫描完成后对sd卡进行格式化。 二、无法识别。 现象:sd卡无法被数码相机识别。 原因:一般数码相机所支持的文件系统为fat,而在windows下格式化一般为fat32或ntfs格式,而这两种格式却不能被相机识别。另一个原因可能是病毒作怪。 解决:用读卡器与电脑连接后格式化成fat格式,或者安装在相机上用相机上的格式化程序格式化一遍。 三、不能写入数据。 现象:用读卡器与电脑连接后向里面写入数据时,提示存储卡写保护,虽然可以看到里面的内容,但无法写入数据。 原因:一个原因是由于频繁使用读卡器,导致sd卡与读卡器接触不良,另一个原因是sd卡质量不过硬,在使用过程产生了坏道。 解决:对于接触不良的情况可以换一个读卡器。如果是sd卡有坏道,可以找一些低级格式化软件对存储卡进行低级格式化。 四、无法移除硬件。 现象:在微机上使用完后,按正常操作删除硬件时提示暂时无法删除硬件。 原因:可能是一些自动运行的病毒作怪。如在卡上有autorun.inf文件时,就会出现这个问题。另一个原因是不正确的操作导致存储卡上出现逻辑故障,为了保护卡不受损坏而自动加上了逻辑锁。 解决:由于病毒原因造成的可以进行杀毒。 对于第二个原因可以执行如下操作: 1、在存储卡所在盘符上点右键,选择属性-工具-查错,在接下来的对话框中钩选“自动修复文件系统错误”和“扫描并试图恢复坏扇区”。 2、进入资源管理器,结束explorer.exe这个进程,然后在应用程序选项卡中执行新任务-浏览-c:\windows\explorer.exe,等桌面重现出现后,再停止存储卡。 3、如果经常出现这种情况,可以在记事本输入“taskkill /im rundll32.exe”,建立一个批处理文件,在出现故障时运行一下这个批处理文件。 关于手机的可以参考这个P6的方法 虽说机型不一样,道理很多是相通的, 状况一:P6内存卡插入时电脑显示的是无法连接 这个问题相信有很多机友们在使用其他电子产品的时候遇到过这种情况,一般这种情况主要是内存卡和电脑不兼容,可将内存卡放回手机,用P6自带内存卡格式化功能进行重新格式化操作即可。 状况二:内存卡装上时无法打开网页,拔掉却可以

相关主题
文本预览
相关文档 最新文档