sd卡电路图学习

合集下载

SD卡工作原理介绍和工作原理图

SD卡工作原理介绍和工作原理图

SD卡工作原理介绍和工作原理图大容量SD卡在海洋数据存储中的应用本设计使用8 GB的SDHC(High Capacity SD Memory Card,大容量SD存储卡),为了方便卡上数据在操作系统上的读取,以及数据的进一步分析和处理,在SDHC卡上建立了FAT32文件系统。

海洋要素测量系统要求数据存储量大、安全性高,采用可插拔式存储卡是一种不错的选择。

目前,可插拔式存储卡有CF卡、U 盘及SD卡。

CF卡不能与计算机直接通信;U盘需要外扩接口芯片才能与单片机通信,增加了外形尺寸及功耗;而SD卡具有耐用、可靠、安全、容量大、体积小、便于携带和兼容性好等优点,非常适合于测量系统长期的数据存储。

1 SD卡接口的硬件设计STM32F103xx增强型系列是意法半导体公司生产的基于Cortex-M3的高性能的32位RISC内核,工作频率为72 MHz,O端口和连接到2条APB总线的外设。

内置高速存储器(128 KB的闪存和20 KB 的SRAM),以及丰富的增强I,STM32F103xx系列工作于-40,+105?的温度范围,供电电压为2.0,3.6 V,与SD 卡工作电压兼容,一系列的省电模式可满足低功耗应用的要求。

SD卡支持SD模式和SPI模式两种通信方式。

采用SPI模式时,占用较少的I,O资源。

STM32F103VB包含串行外设SPI接口,可方便地与SD卡进行连接。

通过4条信号线即可完成数据的传输,分别是时钟SCLK、主机输入从机输出MISO、主机输出从机输入MOSI和片选CS。

STM32F103VB与SD卡卡座的接口电路如图1所示。

SD卡的最高数据读写速度为10 MB,s,接口电压为2.7,3.6 V,具有9个引脚。

SD卡使用卡座代替传输电缆,减少了环境干扰,降低了出错率,而且1对1传输没有共享信道的问题。

SD卡在SPI模式下各引脚的定义如表1所列。

2 SD卡接口的软件设计本设计采用STM32F103VB自带的串行外设SPI接口与SD卡进行通信,这里只介绍SPI模式的通信方式。

SD卡工作原理介绍和工作原理图

SD卡工作原理介绍和工作原理图

大容量SD卡在海洋数据存储中的应用本设计使用8 GB的SDHC(High Capacity SD Memory Card,大容量SD存储卡),为了方便卡上数据在操作系统上的读取,以及数据的进一步分析和处理,在SDHC卡上建立了FAT32文件系统。

海洋要素测量系统要求数据存储量大、安全性高,采用可插拔式存储卡是一种不错的选择。

目前,可插拔式存储卡有CF 卡、U盘及SD卡。

CF卡不能与计算机直接通信;U盘需要外扩接口芯片才能与单片机通信,增加了外形尺寸及功耗;而SD卡具有耐用、可靠、安全、容量大、体积小、便于携带和兼容性好等优点,非常适合于测量系统长期的数据存储。

1 SD卡接口的硬件设计STM32F103xx增强型系列是意法半导体公司生产的基于Cortex-M3的高性能的32位RISC内核,工作频率为72 MHz,内置高速存储器(128 KB的闪存和20 KB的SRAM),以及丰富的增强I/O端口和连接到2条APB总线的外设。

STM32F103xx系列工作于-40~+105℃的温度范围,供电电压为2.0~3.6 V,与SD卡工作电压兼容,一系列的省电模式可满足低功耗应用的要求。

SD卡支持SD模式和SPI模式两种通信方式。

采用SPI模式时,占用较少的I/O资源。

STM32F103VB包含串行外设SPI接口,可方便地与SD卡进行连接。

通过4条信号线即可完成数据的传输,分别是时钟SCLK、主机输入从机输出MISO、主机输出从机输入MOSI和片选CS。

STM32F103VB与SD卡卡座的接口电路如图1所示。

SD卡的最高数据读写速度为10 MB/s,接口电压为2.7~3.6 V,具有9个引脚。

SD卡使用卡座代替传输电缆,减少了环境干扰,降低了出错率,而且1对1传输没有共享信道的问题。

SD卡在SPI模式下各引脚的定义如表1所列。

2 SD卡接口的软件设计本设计采用STM32F103VB自带的串行外设SPI接口与SD卡进行通信,这里只介绍SPI模式的通信方式。

SD卡原理及内部结构

SD卡原理及内部结构

摘要SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,它的出现提供了一种便宜的、结实的卡片式的存储媒介。

SD卡允许在两种模式下工作,即SD模式和SPI模式,SD卡在24mm×32mm×2.1mm的体积内结合了〔SanDisk〕快闪记忆卡控制与MLC (Multilevel Cell)技术和Toshiba(东芝)0.16u及0.13u的NAND技术,通过9针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。

而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动SD卡的容量从16兆字节到最高32GB不等。

容量范围如此之宽,可为众多应用提供充足的外部存储空间。

SD卡做为各种消费电子产品外部存储的应用、开发技术己经非常成熟、广泛。

关键字SD卡存储器一SD卡发展历程SD卡的技术是基于MultiMedia卡(MMC)格式上发展而来,大小和MMC卡差不多,尺寸为32mm x 24mm x 2.1mm。

长宽和MMC卡一样,只是比MMC卡厚了0.7mm,以容纳更大容量的存贮单元。

SD卡与MMC卡保持着向上兼容,也就是说,MMC卡可以被新的SD设备存取,兼容性则取决于应用软件,但SD卡却不可以被MMC设备存取。

(SD卡外型采用了与MMC卡厚度一样的导轨式设计,以使SD设备可以适合MMC卡)。

SD卡接口除了保留MMC卡的7针外,还在两边加多了2针,作为数据线。

采用了NAND 型Flash Memory,基本上和SmartMedia的一样,平均数据传输率能达到2MB/s。

设有SD卡插槽的设备能够使用较簿身的MMC卡,但是标准的SD卡却不能插入到MMC卡插槽。

SD卡能够插于CF卡和PCMCIA卡上,插上转接器使用;而miniSD卡和microSD卡亦能插上转接器于SD卡插槽使用。

一些USB连接器能够插上SD卡,而且一些读卡器亦能够插上SD卡,并由许多连接埠,例如USB、FireWire等存取使用。

SD卡原理及内部结构

SD卡原理及内部结构

1、简介:SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。

本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。

SD 卡内部结构及引脚如下图所示:SD卡内部图.JPG 2、SD卡管脚图:SD卡图.JPG3、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、RSVSD 卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz 的频率;CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡;DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。

SD卡以命令形式来控制SD卡的读写等操作。

可根据命令对多块或单块进行读写操作。

在SPI模式下其命令由6个字节构成,其中高位在前。

SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡规范。

4、MicroSD卡管脚图:MicroSD卡管脚图.JPG5、MicroSD卡管脚名称:MicroSD卡管脚名称.JPGSD 卡与MicroSD卡仅仅是封装上的不同,MicroSD卡更小,大小上和一个SIM卡差不多,但是协议与SD卡相同。

TF卡_micro_SD卡拆解内部

TF卡_micro_SD卡拆解内部

TF 暴力拆解
1.Micro—Sd也就是TF卡。

多层塑封结构。

从侧面看有不同颜色的层构成。

2.首先是用刀片轻轻刮开背部就能看到完整的电路板了。

3.正面慢慢刮开,首先看到的就是主控芯片,就是这个芯片负责NAND与SDIO口之间的
桥梁,内存的管理协议的转换。

周围有黄色的丝线是金丝bonding。

直接将主控的接口与NAND闪存颗粒的数据口、控制口等相连接。

下图是30倍放大后的照片。

4.一直刮到无法再刮。

可以看到主控下面有个面积较大的彩色光的方块,这就是NAND闪存颗粒了。

现在市场上较高端的TF卡的工艺一般都是32层堆叠的。

同样闪存颗粒周边就是金丝飞线(bonding线)。

上面两个是0402的电容。

SD卡电路介绍和维修指导

SD卡电路介绍和维修指导

SD卡电路介绍和维修指导我们经常接触的内存卡,一般有四种:SD卡、miniSD卡、microSD卡、T-Flash(TF)卡。

尺寸上,这四种卡从左至右,越来越小;使用功能上,这四种卡几乎没有区别。

TF卡大小和microSD卡一样没有区别。

SD卡上的表面一些数字定义如下图:从上图可以看出CLASS 2:能满足观看普通MPEG4、MPEG2的电影、SDTV、数码摄像机拍摄;CLASS 4:可以流畅播放高清电视(HDTV),数码相机连拍等需求;CLASS 6:满足单反相机连拍和专业设备的使用要求;CLASS 10:全新的Class 10超越了高清视频录制性能需求。

另外我们在卡表面也会看到SD、SDHC、SDXC的标识,这个标识的含义如下:SD: 最大支持2GB。

SDHC: SD High Capacity. SD2.0发布的规范,容量2GB ~ 32GB,采用FAT32(FAT16最大只能到2GB)。

SDXC: SD eXtended Capactiy. SD3.0发布的规范,容量2GB ~ 2TB,采用exFAT(vista的新文件系统)。

支持UHS-1。

下面是介绍常用的micro SD卡的脚定义:SD卡有多个信号脚(VDD、VSS、CMD、CLK、DATA0~3),具体如上图所示,下面是信号脚介绍:脚位定义:VDD(VREG_L11_2P285):电源输入管脚,电流最高可达到800MA,所以PCB检查时注意线宽。

CLK:系统时钟信号,从上图可知在识别模式CLK是400KHz,在高速传输模式是50MHz。

CMD:命令/回复。

DATA0~3:数据信号,单根线可以传输200MHZ。

VSS:参考地。

DET_SD:热拔插脚,根据卡槽分高有效或者低有效,需要去看卡槽规格书确定此脚插入后状态。

电路上面信号脚串22R是为了防信号反射,以及防干扰。

具体参考电路图如下:SD卡出现不良问题如何维修,1、排除SD卡本体问题,可以换用不同卡试一下。

诺基亚N97mini相机与存储卡接口电路图

诺基亚N97mini相机与存储卡接口电路图

GND
GND
GND
C5255 2u2
VCORE_eMMC
GND
GND
GND
R5276 0R
3.0V regulator
N5250 VOUT STBY VIN C5250 100n C5262 2u2
GND
GND
R5256 47k
R5255 47k
R5253 47k
R5251 47k MMCCmd MMCDa MMCDa1 MMCDa2 MMCDa3 5 0 1 2 3
1.8V
VCAM_1V8
VCAM_1V8 VCORE_1V3 VCAM_2V8
2.8V regulator (BH28SA2)
N5405 VOUT VIN STBY R5401 GND 0R C5440 1/2 1u5
3.7V
VBAT
GND
J1451 R5416 0R
GND L5401 C5426 100n 120R/100MHz C5427 100n C5428 100n
C5440 2/2 1u5
STROBE ENABLE
N8 M8
GIO8 GIO9
VDDA
J4
R5250 15k
GND
C1
1.3V regulator (LP5952)
N5403 VOUT VIN VBATT EN C5413 1/2 1u5 GND
GND
C5432 10u
TXVDDA TXVDDA1 RXVDDA
MMC(14:0)
RAPIDO
R5252 100k GND
C5252 2u2
GND
GND
GND
GND
VIO_eMMC R5275 0R

深入理解SD卡基础原理以及内部结构的总结

深入理解SD卡基础原理以及内部结构的总结

深入理解SD卡基础原理以及内部结构的总结2009-09-03 18:291、简介:SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。

SD卡内部结构及引脚如下图所示:SD卡内2、SD卡管脚图:SD卡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、RSVSD卡主要引脚和功能为:CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管 CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可 DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。

SD卡以命令形式来控制SD卡的读写等操作。

可根据命令对多块或单块进行读写操作。

在SPI模式下其4、MicroSD卡管脚图:MicroSD卡5、MicroSD卡管脚名称:MicroSD卡SD卡与MicroSD卡仅仅是封装上的不同,MicroSD卡更小,大小上和一个SIM卡差不多,但是协议与SD卡一般我们用单片机操作SD卡时,都不需要对FAT分区表信息做处理,原因如下:1)、操作FAT分区表要增加程序代码量、增加SRAM的消耗,对于便携应用来说代码大小和占用SRAM的多2)、即使我们对FAT分区表不做任何了解,实际上我们一样可以向SD卡上写入数据,这就表明使用FAT对3)、耗费大量经历和时间去了解FAT分区表对于我们做嵌入式软件开发的人来说有些得不偿失。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

,时下已经成为最为通用的数据存储卡。

在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。

SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。

既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。

这就要求对SD卡的硬件与读写时序进行研究。

对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。

要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。

下面先来讲解SD卡的读写时序。

(1)SD卡的引脚定义:SD卡引脚功能详述:SD卡SPI模式下与单片机的连接图:SD卡支持两种总线方式:SD方式与SPI方式。

其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。

而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。

SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式。

采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。

这里只对其SPI方式进行介绍。

(2) SPI方式驱动SD卡的方法SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。

从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI 控制器,不光给开发上带来方便,同时也见降低了开发成本。

然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。

SPI接口的选用是在上电初始时向其写入第一个命令时进行的。

以下介绍SD卡的驱动方法,只实现简单的扇区读写。

1)命令与数据传输1. 命令传输SD卡自身有完备的命令系统,以实现各项操作。

命令格式如下:命令的传输过程采用发送应答机制,过程如下:每一个命令都有自己命令应答格式。

在SPI模式中定义了三种应答格式,如下表所示:写命令的例程://----------------------------------------------------------------------------------------------- 向SD卡中写入命令,并返回回应的第二个字节//----------------------------------------------------------------------------------------------- unsigned char Write_Command_SD(unsigned char *CMD){unsigned char tmp;unsigned char retry=0;unsigned char i;//禁止SD卡片选SPI_CS=1;//发送8个时钟信号Write_Byte_SD(0xFF);//使能SD卡片选SPI_CS=0;//向SD卡发送6字节命令for (i=0;i<0x06;i++){Write_Byte_SD(*CMD++);}//获得16位的回应Read_Byte_SD(); //read the first byte,ignore it.do{ //读取后8位tmp = Read_Byte_SD();retry++;}while((tmp==0xff)&&(retry<100));return(tmp);}2)初始化SD卡的初始化是非常重要的,只有进行了正确的初始化,才能进行后面的各项操作。

在初始化过程中,SPI的时钟不能太快,否则会造初始化失败。

在初始化成功后,应尽量提高SPI的速率。

在刚开始要先发送至少74个时钟信号,这是必须的。

在很多读者的实验中,很多是因为疏忽了这一点,而使初始化不成功。

随后就是写入两个命令CMD0与CMD1,使SD卡进入SPI模式初始化时序图:初始化例程://--------------------------------------------------------------------------初始化SD卡到SPI模式//--------------------------------------------------------------------------unsigned char SD_Init(){unsigned char retry,temp;unsigned char i;unsigned char CMD[] = {0x40,0x00,0x00,0x00,0x00,0x95};SD_Port_Init(); //初始化驱动端口Init_Flag=1; //将初始化标志置1for (i=0;i<0x0f;i++){Write_Byte_SD(0xff); //发送至少74个时钟信号}//向SD卡发送CMD0retry=0;do{ //为了能够成功写入CMD0,在这里写200次temp=Write_Command_SD(CMD);retry++;if(retry==200){ //超过200次return(INIT_CMD0_ERROR);//CMD0 Error!}}while(temp!=1); //回应01h,停止写入//发送CMD1到SD卡CMD[0] = 0x41; //CMD1CMD[5] = 0xFF;retry=0;do{ //为了能成功写入CMD1,写100次temp=Write_Command_SD(CMD);retry++;if(retry==100){ //超过100次return(INIT_CMD1_ERROR);//CMD1 Error!}}while(temp!=0);//回应00h停止写入Init_Flag=0; //初始化完毕,初始化标志清零SPI_CS=1; //片选无效return(0); //初始化成功}3)读取CIDCID寄存器存储了SD卡的标识码。

每一个卡都有唯一的标识码。

CID寄存器长度为128位。

它的寄存器结构如下:4)读取CSDCSD(Card-Specific Data)寄存器提供了读写SD卡的一些信息。

其中的一些单元可以由用户重新编程。

具体的CSD结构如下:读CSD的时序:相应的程序例程如下://----------------------------------------------------------------------------------------- 读SD卡的CSD寄存器共16字节返回0说明读取成功//----------------------------------------------------------------------------------------- unsigned char Read_CSD_SD(unsigned char *Buffer){//读取CSD寄存器的命令unsigned char CMD[] = {0x49,0x00,0x00,0x00,0x00,0xFF};unsigned char temp;temp=SD_Read_Block(CMD,Buffer,16); //read 16 bytesreturn(temp);}4)读取SD卡信息综合上面对CID与CSD寄存器的读取,可以知道很多关于SD卡的信息,以下程序可以获取这些信息。

如下://-----------------------------------------------------------------------------------------------//返回// SD卡的容量,单位为M// sector count and multiplier MB are inu08 == C_SIZE / (2^(9-C_SIZE_MULT))// SD卡的名称//-----------------------------------------------------------------------------------------------void SD_get_volume_info(){unsigned char i;unsigned char c_temp[5];VOLUME_INFO_TYPE SD_volume_Info,*vinf;vinf=&SD_volume_Info; //Init the pointoer;/读取CSD寄存器Read_CSD_SD(sectorBuffer.dat);//获取总扇区数vinf->sector_count = sectorBuffer.dat[6] & 0x03;vinf->sector_count <<= 8;vinf->sector_count += sectorBuffer.dat[7];vinf->sector_count <<= 2;vinf->sector_count += (sectorBuffer.dat[8] & 0xc0) >> 6;// 获取multipliervinf->sector_multiply = sectorBuffer.dat[9] & 0x03;vinf->sector_multiply <<= 1;vinf->sector_multiply += (sectorBuffer.dat[10] & 0x80) >> 7;//获取SD卡的容量vinf->size_MB = vinf->sector_count >> (9-vinf->sector_multiply);// get the name of the cardRead_CID_SD(sectorBuffer.dat);vinf->name[0] = sectorBuffer.dat[3];vinf->name[1] = sectorBuffer.dat[4];vinf->name[2] = sectorBuffer.dat[5];vinf->name[3] = sectorBuffer.dat[6];vinf->name[4] = sectorBuffer.dat[7];vinf->name[5] = 0x00; //end flag}以上程序将信息装载到一个结构体中,这个结构体的定义如下:typedef struct SD_VOLUME_INFO{ //SD/SD Card infounsigned int size_MB;unsigned char sector_multiply;unsigned int sector_count;unsigned char name[6];} VOLUME_INFO_TYPE;5)扇区读扇区读是对SD卡驱动的目的之一。

相关文档
最新文档