《SD卡接口的完整规范_0.docx》由会员分享,可在线阅读,更多相关《SD卡接口的完整规范_0.docx(7页珍藏版)》请在优知文库上搜索。
1、SD卡接口的完整规范SD卡接口的完整规范SDK接口规范的完整翻译特性:容量:32MB/64MB/128MB/256MB/512MBIGByte兼容规范版本1.01卡上错误校正支持CPRM两个可选的通信协议:SD模式和SPI模式可变时钟频率025MHZ通信电压范围:2.0-3.6V工作电压范围:2.0-3.6V低电压消耗:自动断电及自动睡醒,智能电源管理无需额外编程电压k片带电插拔爱护正向兼容MMCk高速串行接口带随即存取支持双通道闪存交叉存取快写技术:个低成本的方案,能够超高速闪存访问和高牢靠数据存储一一一最大读写速率:IOMbyteZs最大10个堆叠的卡(20MHz,Vcc=2.7-3.6V
2、)数据寿命:10万次编程/擦除CE和FCC认证PIP封装技术尺寸:24mm宽32mm长1.44mm厚说明:本SDK高度集成闪存,具备串行和随机存取实力。可以通过专用优化速度的串行接U访问,数据传输牢靠。接口允许几个卡垛直,通过他们的外部连接。接口完全符合最新的消费者标准,叫做SD卡系统标准,由SD卡系统规范定义。SD卡系统是一个新的大容量存储系统,基于半导体技术的变革。它的出现,供应了一个便宜的、牢固的卡片式的存储媒介,为了消费多媒体应用。SD卡可以设冲出便宜的播放器和驱动器而没有可移动的部分。一个低耗电和广供电电压的可以满意移动电话、电池应用比如音乐播放器、个人管理器、掌上电脑、电子书、电子
3、百科全书、电子词典等等。运用特别有效的数据压缩比如MPEG,SD卡可以供应足够的容量来应付多媒体数据。框图:SD卡上全部单元由内部时钟发生器供应时钟。接口驱动单元同步外部时钟的DT和CMD信号到内部所用时钟。本卡由6线SD卡接口限制,包括:CMf),C1.K,DAT0-DT3ofaceoff发表于2006-8-1120:12:00回复从该CMD线上串行传输。一个吩咐是对之前吩咐的回答。回复可以来自单机或全部卡。DATO3:数据可以从卡传向主机或副VerSa。数据通过数据线传输。SD卡总线拓扑1:S:电源供电,I:输入0:输出I/O:双向PP:I/O运用推挽驱动留意:SPI模式时,这些信号须要在
4、主机端用10100K欧的电阻上拉。SPl总线概念SPl总线允许通过2通道(数据入和出)传输比特数据。SPT兼容模式使得MMC主机系统通过很小的改动就可以运用SD卡。SPl模式运用字节传输。全部的数据被融合到一些字节中并alignedtotheCSsignal(可能是:同过CS信号来校正)。SPl模式的优点就是简化主机的设计。特殊的,MMC主机须要小的改动。SPl模式相对于SD模式的不足之处是丢失了速度性能。SD卡的电特性SD卡的连接电路图AVR的SD卡接口程序2007-04-2816:04SD卡接口程序/*/*SDCodeforM321.*/*Bypasyong*/*2006-4*/*Base
5、ICC6.31A*/*木*/#includeIt;iom32v.hgt;includeItimacros.hgt;include1011.httdefineucharunsignedchardefineuintunsignedintdefineMMC_CS_PINBIT(4)/PORTB.4defineMw1.PoRTPORTBucharreading=0,a=0,pointer=0;voidsd_port_init()MVjPORT=MMjCS一PIN;ucharBUFFER512;扇区缓冲区uinti=0;voiddelay_nus(Uintn)unsignedcharb;for(b=1;
6、blt;n;b);*/SendaCommandtoMMC/SD-Card/Return:thesecondbyteofresponseregisterofMMC/SD-Card*ucharSD_Write_Command(ucharcmd,unsignedlongarg)(uchartmp;ucharretry=0;/MMC_PORT=MMC_CS_PIN:/SD卡关闭/send8ClockImpulseWrite_Byte_SPI(OxFF);/setNWC_Chip_Selecttolow(MMCSD-Cardactive)MMC_P0RTamp;=N(MC_CS_PIN;/SD卡使能Wr
7、ite_Byte_SPI(Cmd0x40);送头吩咐Write_Byte_SPI(arggt;gt;24);Write_Byte_SPI(arggt;gt;16);/send6ByteCommandtoMMC/SD-CardWrite_Byte_SPI(arggt;gt;8):Write_Byte_SPI(argamp;Oxff);Write_Byte_SPI(0x95):仅仅对RESET有效的CRC效验码gct8bitresponse/Read_Byte_MMC();/readthefirstbyte,ignoreit.do/Onlylast8bitisUSedhere.Readitout.
8、Imp=Read_Byte_SPIO;retry+;whi1e(lmp=0xff)amp;amp;(retrylt:100);/当没有收到有效的吩咐的时候if(reading=0)VMjPORT=MMjCS_PIN;/MMC_CS_PIN=1;elseVMjPORTamp;=MMjCS_PIN;/MMC_CS_PIN=O;return(tmp):/*/SD卡初始化(SPI-MODE)/*木*ucharSD_Init(void)ucharretry,temp;uchari;/SD卡使能delay_nus(250);for(i=0;ilt;0x0f;i+)/send74clockatleast!M
9、MC/SDCardretry=0;sendCMDOcommandMMC-PORTamp;=MMC_CS_PIN:/WaitMMC/SDready.Write_Byte_SPI(Oxff);/SendCommandCMDOtodo/retry200timestotemp=SD_Write_Command(0,0);retry+;if(retry=100);/CMDOError!while(temp!=l):/SendCommandCMD1toMMC/SD-Cardretry=0;do/retry100timestosendCMDlcommandtemp=SD_Write_Command(1,0)
10、;retry+;if(retry=100)while(temp!=0):retry=0;SDJVrite_Command(16,512);设置一次读写B1.OCK的长度为512个字节MMC_PORT=MMC_CS_PIN;/MMC_CS_PIN=1;/setMMe1.ChiP_SeIeCttohighreturn(0);/Allcommandshavebeentaken.)*/从SD卡读一个扇区Return0ifnoError.木*/*ucharSD_Read_Block(unsignedlongaddress)ucharIemp=Ojuinti=0;reading=1:temp=SD_Write_Command(17,address);读出RESPONSEwhile(Read_Byte_SPI()!=Oxfe);直到读取到了数据的起先头OXFE,才接着for(i=0;ilt:512;i+)BUFFERi=Read_Byte_SPIO;Read_Byte_SPIO;/CRC-ByteReac1.Byte一Spl();CRC-Bytereading=0;MMC_PORT=MMC_CS_PTN:return(temp);关闭SD卡