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卡原理及内部结构
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卡相同。
深入理解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分区表对于我们做嵌入式软件开发的人来说有些得不偿失。
MicroSD卡(TF卡)spi模式实现方法
Micro SD 卡(TF卡)spi 模式实现方法现在我们手机的内存卡多为Micro SD卡,又叫TF卡,所以Micro SD卡比SD卡常见。
自己曾经也想写写SD卡的读取程序,但又不想特地再去买个SD卡,这时想起手机内存卡不是和SD卡很像吗?在网上查了以后发现SD卡和Micro SD卡其实也就大小和引脚不一样,它们的操作其实是一样的,所以网上的SD卡读写代码其实可以直接拿来用。
关于SD卡和Micro SD卡的引脚定义和不同可见下两表:我们可以发现Micro SD卡只有8个引脚是因为比SD卡少了一个Vss。
当然你也可以买个卡套套在Micro SD卡上,这样一来大小就和SD卡一样大,这时候卡套上的9个引脚就和SD卡一样了,你可以完全当做SD卡来操作。
spi下电路的连接非常简单,接上电源线Vdd和地线Vss,再接上spi的CS,SCLK,DI(MOSI)和DO(MISO)就可以了,其他引脚可以放空。
注意SD卡的电源和操作电压都为2.7-3.6V,5V的单片机要进行电平转换或串电阻限流。
还有记得SD卡的CS,SCLKh和DI要用10~100K的电阻上拉。
我是套了卡套接的电路,因为Micro SD卡的引脚太密了,不好焊接,SD卡相对引脚好焊。
因为没有卡座,而且也没专门的PCB我就直接焊到卡套上,诶牺牲了一个卡套。
下面是我自己画的电路图:上面Micro SD卡的硬件电路就好了,下面我们讲讲Micro SD卡的软件驱动和指令集。
SD卡的命令格式如下,6字节共48位,传输时最高位(MSB)先传输:SD卡的command(命令)占6 bit,一般叫CMDx或ACMDx,比如CMD1就是1,CMD13就是13,ACMD41就是41,依此类推。
Command Argument(命令参数)占4 byte,并不是所有命令都有参数,没有参数的话该位一般就用置0。
最后一个字节由7 bit CRC校验位和1 bit停止位组成。
dsPIC33F系列DSC的 SD存储卡接口设计.
dsPIC33F系列DSC的 SD存储卡接口设计引言SD存储卡(Secure Digital Memory Card)由SD联盟(松下、东芝及美国SanDisk公司)于1999年8月共同开发研制,是一种基于半导体快闪存储器的新一代存储设备,被广泛地使用在便携式装置上,例如数码相机、PDA和多媒体播放器等。
大小犹如一张邮票的SD存储卡,重量只有2g,却拥有高存储容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
SD卡支持SD和SPI两种传输模式,主机系统可以选择其中任意一种模式。
SD模式允许4线的高速数据传输。
SPI模式使用通用的SPI接口。
这种模式相对于SD模式的不足之处是丧失了速度,但是却有着接口简单易于实现的优点。
SD卡的SPI模式使得SD卡可以和市场上大部分微控制器进行通信。
Microchip公司的dsPIC33F系列通用DSC(数字信号控制器),是在16位MCU架构基础之上添加了DSP引擎,从而具有数字信号处理功能的微控制器产品。
该系列DSC集成了DCI(数据转换器)接口,尤其适用于语音和音频的应用。
本文首先简要介绍SD卡的相关规范,之后利用dsPIC33FJ64GP706通用DSC设计了SD卡接口电路,最后通过SPI模式实现了对SD卡的基本操作。
本设计可以使SD存储卡成为类似嵌入式系统产品的数据存储器。
1 SD卡相关规范简介SD联盟在2000年联合发布了SD卡规范1.O版本,包括3个部分:物理层规范,文件系统规范以及安全规范。
SD卡规范V1.0采用FAT的文件系统,因此最大存储容量可以达到2 GB。
2006年,SD卡规范V2.0发布。
新规范根据容量定义了两种卡,即标准容量SD卡和大容量SD卡。
前者和1.O版本保持兼容,后者由于采用了FAT32文件系统,存储容量突破了2 GB的限制。
新规范定义的最大容量为32 GB。
但是由于成本的原因,标准容量SD卡仍然是市场的主流产品。
在以微控制器为核心的嵌入式系统中,主要使用SD卡的SPI。
兴东芯K-1000C
K-1000C使用说明书一、K-1000C系统特点1、32级—65536级灰度控制,软件Gamma校正处理。
2、支持各种点、线、面光源,支持各种规则,异形处理。
3、控制器单个端口输出,最大可带512/2048像素点(DMX灯具最大512像素点)。
4、播放内容存放在SD卡中,SD卡内最多可存放32个效果文件,SD卡容量支持128MB-32GB。
5、控制器可单台使用,也可多台级联使用,级联采用光电隔离方式:抗干扰、稳定性更好,两台之间的级联距离可达150米,需使用0.5M²纯铜电源线。
6、控制器带载芯片可以在软件上锁定带载的IC,也可以在软件上不锁定,通过调节控制器的芯片按键来选着带载IC,此方案更灵活、方便。
7、针对DMX灯具的IC控制器自带写地址功能;另外配合我司2016 LedEdit-K V3.26以上版本软件可以进行一键写址功能设置。
8、支持带载灯具为4通道(RGBW)像素点,或拆分为单通道点像素。
9、增强TTL和485差分(DMX)信号输出。
10、控制器自带测试效果分别为:1.红绿蓝白黑跳变;2. 红绿蓝白黑渐变;3红绿蓝白推移。
备注:1、控制器带载灯具512个点像素,速度可达30帧/秒,1024个点像素速度可达25帧/秒,2048个点像素速度大约15帧/秒(以上参数以1903协议类 IC数据为例,不同IC会存在差异)2、国际标准DMX512(1990协议)最大带载512个点像素。
当带载为国际标准170个点像素时速度可达30帧/秒,340个点像素速度大约20帧/秒,512个像素点时速度大约为12帧/秒二、支持芯片(上位机软件选着K-1000-RGB):00:UCS1903,1909,1912,2903,2904,2909,2912;TM1803,1804,1809,1812;SM16703,16709,16712;WS2811,WS2812,WS2813,WS2815,WS2818;INK1003;LX3203,1603,1103;GS8205,8206;SK6812(最大带灯2048*1=2048像素点)01:SM16716,16726(最大带灯2048*1=2048像素点)02:P9813(最大带灯2048*1=2048像素点)03:LPD6803(最大带灯2048*1=2048像素点)04:LX1003,1203(最大带灯2048*1=2048像素点)05:WS2801(最大带灯2048*1=2048像素点)06:LPD1886(最大带灯2048*1=2048像素点)07:TM1913(最大带灯2048*1=2048像素点)08:TM1914(最大带灯2048*1=2048像素点)09:P9883,P9823(最大带灯2048*1=2048像素点)10:DMX(最大带灯512像素点,建议带载≤320像素点)11:DMX 500K(最大带灯512像素点,建议带载≤320像素点)12:DMX 250K-CZF (最大带灯512像素点,建议带载≤320像素点)13:DMX 250K-CZF (最大带灯512像素点,建议带载≤320像素点)备注:1.带载RGBW四通道的灯具是需选择K-1000-RGBW。
SD卡硬件原理图及其读写程序
SD卡硬件原理图及其读写程序2011-03-28 17:45转载自sail_007最终编辑sail_007 最近开始整理以前画过原理图和程序今天先整理出了SD卡的硬件和SPI方式的读写程序。
今后会陆续写把DS1302时钟芯片GPRS模块CAN总线通信PWM数控电压也整理出来。
一方面是想帮自己总结一下另外如果还能帮助到其他的单片机爱好者那也就更好了。
当然水平有限整理出来的东西可能也有许多错误的地方也请高手能指出不胜感激。
先发张SD卡的原理图。
说明我用的是5V单片机SD卡则是3.3v如果直接连接引脚长期使用会影响SD卡寿命。
我一开始选用了普通的光耦触发可能是导通速率不够快无法实现SPI通信后来我就改用9013就行了。
下图上US1是SD卡壳其实1到9引脚对应了SD卡的9个引脚10号引脚是卡插入标志也就是说当有SD卡插入时10号引脚会接3.3v的地这样单片机就可以查询是否有卡了。
在SPI总线模式下CS为主控制器向卡发送的片选信号SCLK为主控制器向卡发送的时钟信号INDataIn为主控制器向卡发送的单向数据信号MISODataOut为卡向主控制器发送的单向数据信号。
程序如下说明我用的是freescale的DP256单片机该单片机有SPI 设备接口只要将其初始化成功便可完成通信设置。
uchar CMD0RespCMD1RespCMD59RespCMD16RespCMD9RespC MD17RespCMD24RespCMD58Resp void SD_Initializevoiduchar csdbuf16TempValue ucharcmdparam4recbuf600resp4resptype uchar sendbuf600 ulong len ulong i ulong BlockAdd SD_InsertDetect Pim.pts.bit.pts70 //cs0 SD_SPIDelay25 Pim.pts.bit.pts71 //cs1 SD_SPIDelay2Pim.ddrs.bit.ddrs70 //pin cs direction Spi0.spicr1.bit.spe0 //spi enable Pim.ddrs.bit.ddrs71 //pin cs directionPim.pts.bit.pts70//cs0 Spi0.spibr.byte0x02 //8MHz31.25kHz0x07-0x00 Spi0.spicr1.bit.mstr1 //master modeSpi0.spicr1.bit.ssoe1 //ss output enable Spi0.spicr1.bit.cpol0//cpol0 //cpol1 070215 Spi0.spicr1.bit.cpha0 //cpha0Spi0.spicr2.byte0x18 //normal drive input pullup TempValueSpi0.spisr.byte//clear SPIF first step TempValueSpi0.spidr.byte//clear SPIF second stepSpi0.spicr1.bit.spe1 //spi enable CMD0RespSD_ResetSDCMD1RespSD_ActiveInit whileCMD1Resp0x01CMD1RespSD_ActiveInit 白开水易拉罐主页博客相册个人档案好友i贴吧看看Ta是谁吧页码1/5Ww2011/6/26/wolf9s/blog/item/47e2a620 212d80268744f98c.htmlvoid SD_SPIDelayuint value uint i for i 0 i valuei SPI_SendByte0xFF // 发送0xFF clock out 0xFF uchar SD_ResetSDvoid uchar param4 0000respSD_SendCmdCMD0 param SD_R1 resp return resp / 函数名称:void SPI_SendByte Name: void SPI_SendByte 功能描述: 通过SPI接口发送一个字节Function: send a byte by SPI interface 输入: INT8U byte: 发送的字节Input: INT8U byte: the byte that will be send 输出: 无Output: NULL / voidSPI_SendByteuchar byte uchar TempValue Spi0.spidr.byte byte / 发送数据放入SPI数据寄存器/ while0 Spi0.spisr.byte 0x80 / 等待SPIF置位即等待数据发送完毕/ / wait for SPIF being set that is wait for finishing of data being send / TempValueSpi0.spidr.byte / 函数名称: INT8U SPI_RecByte Name:INT8U SPI_RecByte 功能描述: 从SPI接口接收一个字节Function: receive a byte from SPI interface 输入: 无Input: NULL 输出: 收到的字节Output: the byte that be received / uchar SPI_RecBytevoid uint ReadCounter ReadCounter0Spi0.spidr.byte 0xFF while0 Spi0.spisr.byte 0x80 / 等待SPIF 置位即等待收到数据/ ReadCounter ifReadCounter25 break / wait for SPIF being set that is wait for being received data / returnSpi0.spidr.byte / 读取收到的字节read the byte received / / 函数名称: //INT8U SD_SendCmd Name: INT8USD_SendCmd 功能描述: 向卡发送命令并取得响应Function: send command to the cardand get a response 输入: INT8U cmd : 命令字Input: INT8U cmd : command byteINT8U param : 命令参数长度为4字节INT8U param :command parameterlength is 4 bytes INT8U resptype : 响应类型INT8U resptype: response type INT8U resp : 响应长度为1-5字节INT8U resp : responselength is 1-5 bytes 输出: 0: 正确0: 错误码Output: 0: right 0: error code / voidSD_SendCmduchar cmd uchar paramuchar resptype uchar resp long irlen uchar tmp Pim.pts.bit.pts70//cs0 SPI_SendBytecmd0x3F 0x40 / 发送命令头和命令字send command header and word / for i 3 i 0 i-- SPI_SendByteparami / 发送参数send parameters / SPI_SendByte0x95 / CRC校验码只用于第1个命令CRConly used for the first command / rlen 0 switch resptype / 根据不同的命令得到不同的响应长度/ / according various commandget the various response length / case 1: rlen 1 break case 2: rlen 2 break case 4: rlen 5 break default:SPI_SendByte0xFF Pim.pts.bit.pts71 break i 0 do / 等待响应响应的开始位为0 / / Wait for a responsea response is a start bitzero / tmp SPI_RecByte i while tmp 0x80 0 iSD_CMD_TIMEOUT for i rlen - 1 i 0 i-- respi tmp tmpSPI_RecByte / 循环的最后发送8clock at the last recycleclock out 8 clock / Pim.pts.bit.pts71//cs1 // return SD_NO_ERR //new statement 页码2/5Ww2011/6/26/wolf9s/blog/item/47e2a620 212d80268744f98c.html/ 函数名称: INT8U SD_ReadBlockName: INT8U SD_ReadBlock 功能描述: 从SD卡中读一个块Function: read a single block from sd card 输入: INT32U blockaddr: 块地址Input: INT32U blockaddr: address of block INT8U recbuf : 接收缓冲区长度512Bytes INT8U recbuf : the buffer of receivelength is 512Bytes 输出: 0: 正确0: 错误码Output: 0: right 0: error code / uchar SD_ReadBlockulong blockaddr uchar recbuf uchar param4resp // if blockaddrsds.block_num // return SD_ERR_OVER_CARDRANGE / 操作超出卡容量范围operate over the card range /SD_PackParamparam blockaddr / 将参数转化为字节形式change the parameter to bytes form / SD_SendCmdCMD17 param SD_R1 resp SD_ReadBlockDataSD_BLOCKSIZE recbuf/ 读出数据read data from sd card / return resp / 函数名称: INT8U SD_ReadBlockData Name: INT8USD_ReadBlockData 功能描述: 从SD卡中读取数据块Function: read block data from sd card 输入: INT32U len : 长度Input: INT32U len : length INT8U recbuf : 接收缓冲区INT8U recbuf : the buffer of receive 输出: 0: 正确0: 错误码Output: 0: right 0: error code / voidSD_ReadBlockDataulong len uchar recbuf uchar tmp ulong i 0 Pim.pts.bit.pts70//cs0 do / 等待接收数据开始令牌0xFE wait for receiving data start token 0xFE / tmp SPI_RecByte iwhiletmp 0xFF i SD_CMD_TIMEOUT for i 0 i len i recbufi SPI_RecByte / 接收数据receive data / i SPI_RecByte i i 0:错误码Output: 0: right 0: error code ucharSD_SetBlockLenulong length uchar param4respretSD_PackParamparam length //将参数转化为字节形式change the parameter to bytes form SD_SendCmdCMD16 paramSD_R1 resp return resp / / 函数名称: void SD_PackParam Name: void SD_PackParam 功能描述: 将32位的参数转为字节形式Function: change 32bit parameter to bytes form 输入: INT8U parameter: 字节参数缓冲区Input: INT8U parameter: the buffer of bytes parameter INT32U value : 32位参数INT32U value : 32bit parameter 输出: 无Output: NULL / void SD_PackParamuchar parameter ulong value valuevalue512 parameter3 ucharvalue 24 parameter2 ucharvalue 16 parameter1 ucharvalue 8 parameter0 ucharvalue / 函数名称: INT8USD_WriteBlock Name: INT8U SD_WriteBlock 功能描述: 向SD卡中写入一个块Function: write a block to sd card 输入: INT32U blockaddr: 块地址Input: INT32U blockaddr: address of block INT8U sendbuf : 发送缓冲区长度512Bytes INT8U sendbuf : the buffer of sendlength is 512Bytes 输出: 0: 正确0: 错误码Output: 0: right 0: error code / ucharSD_WriteBlockulong blockaddr uchar sendbuf 页码3/5Ww2011/6/26/wolf9s/blog/item/47e2a620 212d80268744f98c.html uchar param4resprettmp2 ulong i // if blockaddr sds.block_num // returnSD_ERR_OVER_CARDRANGE / 操作超出卡容量范围operate over the card range / SD_PackParamparam blockaddr / 将参数转化为字节形式change the parameter to bytes form / SD_SendCmdCMD24 param SD_R1 resp / 写单块命令write single block / SD_WriteBlockData0 SD_BLOCKSIZE sendbuf / 写入数据write data / return resp / 函数名称: INT8USD_WriteBlockData Name: INT8U SD_WriteBlockData 功能描述: 向sd卡写数据块Function: write block data to sd card 输入: INT8U bmulti : 是否为多块操作1:是0:否Input:INT8U bmulti : multi blocks operate 1:Y 0:N INT32U len : 长度INT32U len : length INT8U sendbuf: 发送缓冲区INT8U sendbuf : the buffer of send 输出: 0: 正确0: 错误码Output: 0: right 0: error code / void SD_WriteBlockDatauchar bmulti ulong len uchar sendbuf uint i uchar tmp Pim.pts.bit.pts70//cs0 SPI_SendByte0xFF / 开始发送数据之前发送8个clock clock out 8 clk before start / if bmulti 1SPI_SendByteSD_TOK_WRITE_STARTBLOCK_M / 写多块开始令牌start token of write multi blocks / elseSPI_SendByteSD_TOK_WRITE_STARTBLOCK / 写单块开始令牌start token of write single block / for i 0 i len iSPI_SendBytesendbufi / 发送数据send data / SPI_SendBytei 8 0xFF SPI_SendBytei 0xFF / 发送CRC16校验码send CRC16 check code / tmp SPI_RecByte Pim.pts.bit.pts71//cs1 SD_WaitBusy void SD_WaitBusy uchar tmpiPim.pts.bit.pts70//cs0 i0 do / 等待忙结束wait for being busy end / tmp SPI_RecByte i while tmp 0xFF i 10000 / 忙时收到的值为0xFF always receive 0xFF when card is busy /Pim.pts.bit.pts71//cs1 / 函数名称: void SD_HardWareInit Name: void SD_HardWareInit 功能描述: 初始化访问SD卡的硬件条件Function: initialize the hardware condiction that access sd card 输入: 无Input: NULL 输出: 无Output: NULL / uchar SD_InsertDetect uchar InflagifPim.ptp.bit.ptp30//sd insert Inflag1 else Inflag0 return Inflag 类别默认分类添加到搜藏分享到i贴吧浏览57 评论0 上一篇sd卡的读写转下一篇一般SD卡和SDHC卡读写函数 .c -... 最近读者网友评论发表评论姓名哦没他发内容插入表情▼ 闪光字页码4/5Ww2011/6/26/wolf9s/blog/item/47e2a620 212d80268744f98c.html 同时将此文章分享给好友验证码请点击后输入四位验证码字母不区分大小写发表评论�0�82011 Baidu看看Ta是谁吧页码5/5Ww2011/6/26/wolf9s/blog/item/47e2a620 212d80268744f98c.html。
手机常用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卡引脚电路图及工作原理介绍部门: 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方式,因为它提供更大的总线数据带宽。
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卡学习笔记之欧阳理创编
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卡相同。
TF卡引脚定义,SD卡引脚定义
TF卡引脚定义,SD卡引脚定义--------------------------------------------------------------------------------TF卡引脚定义/SD卡引脚定义什么叫TF卡:TF卡全名(TransFLash),又称T-Flash卡,全名:TransFLash,又名:Micro SD,这是Motorola与SanDisk共同推出的记忆卡规格,它采用了最新的封装技术,并配合SanDisk最新NANDMLC技术及控制器技术.是一种超小型卡(11*15*1MM),约为SD卡的1/4,可以算目前最小的储存卡了。
TF卡可经SD卡转换器后,当SD卡使用。
利用适配器可以在使用SD作为存储介质的设备上使用。
TransFlash主要是为照相手机拍摄大幅图像以及能够下载较大的视频片段而开发研制的。
TransFlash卡可以用来储存个人数据,例如数字照片、MP3、"游戏及用于手机的应用和个人数据等,还内设置版权保护管理系统,让下载的音乐、影像及游戏受保护;未来推出的新型TransFlash还备有加密功能,保护个人数据、财政纪录及健康医疗文件。
体积小巧的TransFlash让制造商无须顾虑电话体积即可采用此设计,而另一项弹性运用是可以让供货商在交货前随时按客户不同需求做替换,这个优点是嵌入式闪存所没有的。
TF/SD卡规格及应用:它的体积为15mm x 11mm x1mm,差不多相等于手指的大小,是现时最细小的记忆卡。
它也能通过SD转接卡来接驳于SD卡插槽中使用。
现时MicroSD卡提供128MB、256MB、512MB、1G、2G、4G、8G、16G和32G的容量。
如下图所示详细说明:◆体积约等于半张SIM卡,内设版权保护管理系统,适用于多项多媒体应用。
◆搭配适配器之后,使用于附SD卡槽的数码产品上。
◆尺寸:11mm*15mm*1mm。
◆适用机型:MOTO E398,V8,V635,V360,A780,A840,A1000,E770,MS400,V10,V980/SAMSUNGM339,M329,Z300,Z500,E848/AMOIDV6,V3/nokia7310c等等。
LVDT卡件接线方式
LVDT卡件接线方式一、I/O卡接线图DCS系统Ovation I/O 卡件接线方式每一个I/O点的具体端子号填写按如下规则:1.DI卡(开关量输入)POI NT +-01 C1 B102 C2 B203 C3 B304 C4 B405 C5 B506 C6 B607 C7 B708 C8 B809 C9 B910 C10 B1011 C11 B1112 C12 B1213 C13 B1314 C14 B1415 C15 B1516 C16 B162.SOE卡(DI卡)1C31233G04POIN+ -T01 C1 B102 C2 B203 C3 B304 C4 B405 C5 B506 C6 B607 C7 B708 C8 B809 C9 B910 C10 B1011 C11 B1112 C12 B1213 C13 B1314 C14 B1415 C15 B1516 C16 B1610 10NC10NO10C11 11NC11NO11C12 12NC12NO12C13 13NC13NO13C14 14NC14NO14C15 15NC15NO15C16 16NC16NO16CDO卡(带继电器开关量输出,150VDC)POINTNO C01 1NO 1C02 2NO 2C03 3NO 3C04 4NO 4C05 5NO 5C06 6NO 6C07 7NO 7C08 8NO 8C09 9NO 9C10 10NO10C11 11NO11C12 12NO12CDO卡(开关量输出,250V DC)POINTNO C01 1RNO1C02 2RNO2C03 3RNO3C04 4RNO4C05 5RNO5C06 6RNO6C07 7RNO7C08 8RNO8C09 9RNO9C10 10R10CNO11 11RNO11C12 12RNO12C13 13RNO13C14 14RNO14C15 15RNO15C16 16RNO16C3.AI卡(4-20mA输入)DCS对现场供电(内供电) C1 C2 需短接, A1 A2 需短接注:P(N)和CI(N),SH(N)和地需短接POINT + - 屏蔽1 B2 C2 C12 B4 C4 C33 B6 C6 C54 B8 C8 C75 B1C1C90 06 B12C12C117 B14C14C138 B16C16C15DCS不对现场供电(外供电)POINT +CI(n)-A(n)屏蔽1 A1 B2 C22 A3 B4 C43 A5 B6 C64 A7 B8 C85 A9 B1C16 A11B12C127 A13B14C148 A15B16C16注意:HART AI卡件的接线方式和普通的AI卡件有所不同,具体见文档。
dsPIC33F系列DSC的 SD存储卡接口设计.
dsPIC33F系列DSC的 SD存储卡接口设计引言SD存储卡(Secure Digital Memory Card)由SD联盟(松下、东芝及美国SanDisk公司)于1999年8月共同开发研制,是一种基于半导体快闪存储器的新一代存储设备,被广泛地使用在便携式装置上,例如数码相机、PDA和多媒体播放器等。
大小犹如一张邮票的SD存储卡,重量只有2g,却拥有高存储容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
SD卡支持SD和SPI两种传输模式,主机系统可以选择其中任意一种模式。
SD模式允许4线的高速数据传输。
SPI模式使用通用的SPI接口。
这种模式相对于SD模式的不足之处是丧失了速度,但是却有着接口简单易于实现的优点。
SD卡的SPI模式使得SD卡可以和市场上大部分微控制器进行通信。
Microchip公司的dsPIC33F系列通用DSC(数字信号控制器),是在16位MCU架构基础之上添加了DSP引擎,从而具有数字信号处理功能的微控制器产品。
该系列DSC集成了DCI(数据转换器)接口,尤其适用于语音和音频的应用。
本文首先简要介绍SD卡的相关规范,之后利用dsPIC33FJ64GP706通用DSC设计了SD卡接口电路,最后通过SPI模式实现了对SD卡的基本操作。
本设计可以使SD存储卡成为类似嵌入式系统产品的数据存储器。
1 SD卡相关规范简介SD联盟在2000年联合发布了SD卡规范1.O版本,包括3个部分:物理层规范,文件系统规范以及安全规范。
SD卡规范V1.0采用FAT的文件系统,因此最大存储容量可以达到2 GB。
2006年,SD卡规范V2.0发布。
新规范根据容量定义了两种卡,即标准容量SD卡和大容量SD卡。
前者和1.O版本保持兼容,后者由于采用了FAT32文件系统,存储容量突破了2 GB的限制。
新规范定义的最大容量为32 GB。
但是由于成本的原因,标准容量SD卡仍然是市场的主流产品。
在以微控制器为核心的嵌入式系统中,主要使用SD卡的SPI。