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分区表对于我们做嵌入式软件开发的人来说有些得不偿失。

SD原理及内部结构

SD原理及内部结构

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

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

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

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

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

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

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

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

SD卡存储采集数据电路设计

SD卡存储采集数据电路设计

SD卡存储采集数据电路设计引言:随着现代科技的发展,数据采集和存储变得越来越重要。

SD卡存储采集数据电路是一种常用的数据采集和存储解决方案。

本文将从硬件电路设计的角度,为大家介绍SD卡存储采集数据电路的设计原理与方法。

一、设计目标与需求分析1.设计目标:设计一个可靠、高效的SD卡存储采集数据电路,可以用于各种数据采集和存储应用场景。

2.需求分析:(1)采集数据的接口要与主控芯片兼容,能够稳定、准确地接收来自主控芯片的数据;(2)实现SD卡存储数据的读写功能,包括数据的写入和读取;(3)设计具备错误检测与纠正功能,确保数据的可靠性;(4)电路设计要尽量简洁,兼顾成本和性能。

二、设计原理与方法1.硬件接口设计将SD卡存储采集数据电路与主控芯片连接,需要根据SD卡的接口标准设计对应的硬件接口。

SD卡的接口标准包括SPI和SDIO两种,根据具体应用需求选择相应的接口。

2.数据采集与存储设计(1)数据采集:通过与主控芯片的接口通信,实现数据的采集。

根据采集数据的类型,选择相应的传感器或模拟电路设计采集电路。

(2)数据存储:将采集到的数据经过适当的处理后,通过硬件电路将数据写入SD卡中。

SD卡存储数据采用的是FAT文件系统,需要根据SD卡的文件系统规范进行数据的写入和读取操作。

3.错误检测与纠正设计为了保证数据的可靠性,需要设计错误检测与纠正的功能。

主要包括数据校验和ECC纠错码的设计。

数据校验可以采用CRC校验或其他校验算法,通过对数据进行校验,可以检测出数据传输过程中的错误。

而ECC纠错码可以在数据写入SD卡时对数据进行编码与解码,以纠正和恢复部分错误数据。

4.电路设计根据以上原理与需求分析,进行电路设计。

具体的设计包括SD卡接口电路的设计、数据采集电路的设计、数据存储电路的设计和错误检测与纠正电路的设计。

对于电路设计应尽量简练,兼顾成本和性能。

三、设计实现与测试验证1.实施设计根据上述设计原理与方法,进行电路设计。

SD卡接口设计[附硬件电路和程序]

SD卡接口设计[附硬件电路和程序]

SD卡接口设计[附硬件电路和程序]1标准SD卡标准是SD卡协会针对可移动存储设备设计专利并授权的一种标准,主要用于制定卡的外形尺寸、电气接口和通信协议。

1.1SD卡引脚功能SD卡的外形如图1所示,引脚功能如表1所列。

SD卡的引脚具有双重功能,既可工作在SD模式,也可工作在SPI模式。

不同的模式下,引脚的功能不同。

SD模式多用于对SD卡读写速度要求较高的场合,SPI模式则是以牺牲读写速度换取更好的硬件接口兼容性。

由于SPI协议是目前广泛流行的通信协议,大多数高性能单片机都配备了SPI硬件接口,硬件连接相对简单,因此,在对SD卡读写速度要求不高的情况下,采用SPI模式无疑是一个不错的选择。

1.2SPI模式SPI模式是一种简单的命令响应协议,主控制器发出命令后,SD卡针对不S同的命令返回对应的响应。

SD卡的命令列表都是以CMD和ACMD开头,分别指通用命令和专用命令,后面接命令的编号。

例如,CMD17就是一个通用命令,用来读单块数据。

在SPI模式中,命令都是以如下的6字节形式发送的:每帧命令都以“01”开头,然后是6位命令号和4字节的参数(高位在前,低位在后),最后是7位CRC校验和1位停止位“1”。

SD卡的每条命令都会返回对应的响应类型。

在SPI模式下,共有3种响应类型:R1、R2和R3,分别占1、2和3个字节。

这里仅列出了R1响应的格式,如表2所列。

当出现表中所描述的状态时,相应的位置1。

R2和R3的第1个字节格式与R1完全一样,详细内容请参考SD卡标准。

2硬件设计本设计选用Freescale公司的32位低功耗微控制器MCF51QE128,采用SPI模式实现与SD卡的接口。

由于MCF51QE128是一款低功耗的微控制器,工作电压的典型值为3.6V,与SD卡的工作电压兼容,因而可以直接与SD卡连接,无需电平转换电路。

这里选用的是MCF51QE128的第2个SPI口,硬件连接如图2所示。

3软件实现软件部分主要实现MCF51QE128的初始化、底层SPI通信,以及SD卡的通用写命令、初始化和单块数据的读写等功能。

SD卡原理及内部结构

SD卡原理及内部结构

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

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

SD 卡内部结构及引脚如下图所示:SD卡内部图.JPG2、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卡相同。

手机常用SD卡接口电路实例分析-2011-1220

手机常用SD卡接口电路实例分析-2011-1220

手机常见SD卡接口电路实例分析目的:让大家理解常见SD卡接口电路的工作原理和设计注意事项。

作者:胡波日期:2011/12/201.概述现在的很多手机中都有存储卡的卡座,常被称为T-FLASH CARD,它的体积与常见的Micro SD卡相比要小很多,因此更适用于手机的设计中,但T卡的接口电路是与SD卡的接口电路是一样的,它们的主要差别就是卡的外形与体积不一样。

为了能够读写这些卡,一般现在的手机的核心处理器都设计有SD卡的读写接口电路,在此我就简单介绍一下SD卡的接口电路。

本例中的原理图来至于MTK的MT6573智能手机平台,与原图相比,只是做了部分美观方面的处理,看起来显得比原图紧凑一点,其余方面未做任何的改动。

2.SD卡接口电路实例分析2.1.MTK6573智能机SD卡接口电路原理分析SD卡的总线是一个业内的标准总线,它采用串行的方式输入和输出数据,对于硬件设计来讲,只要根据SD卡的接口规范,将SD 对应的信号线接到处理器的SD卡控制器的端口就可以了。

而SD卡的读写控制,有着专门的软件通信协议,使得读写SD卡的内容变得非常的简单,在不同的嵌入式操作系统中,都有着专门的驱动程序,会将其映射成一个磁盘,使用特定的文件系统来完成数据的存储和删除。

例如我们常用的读卡器,就可以将SD卡在Windows的操作系统中被认作一个U盘,从而非常简单地就可以实现对于SD卡的读写。

在手机的操作系统中,一般也是将其当作一个磁盘来对待的,这都是软件层面的事情,在这里就不多说了。

对于搞硬件设计的人来讲,关心连线的对应关系就好了,而搞软件的人就只要关心SD卡的控制协议就可以了。

2.2.电路中的器件及关键网络信号介绍3.硬件设计注意事项3.1.在选择上拉电阻时,对于手机设计来讲,尽量选用电阻比较大一点的电阻,可以减小手机的待机功耗。

在本例中,选用了47.5K 的电阻,不是很好。

一般47K的电阻更容易购买一些,因此在选用电阻时,请参考电阻的系列参数。

SD卡在单片机上的应用以及SD卡引脚电路图及工作原理介绍

SD卡在单片机上的应用以及SD卡引脚电路图及工作原理介绍

SD卡在单片机上的应用以及SD卡引脚电路图及工作原理介绍部门: xxx时间: xxx整理范文,仅供参考,可下载自行编辑SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。

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

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

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

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

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

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

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

1)SD卡的引脚定义:SD卡引脚功能详述:注:S:电源供给I:输入O:采用推拉驱动的输出PP:采用推拉驱动的输入输出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方式进行介绍。

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

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

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

  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卡驱动的目的之一。

相关文档
最新文档