您的位置 首页 未分类

sd读卡器驱动

sd读卡器驱动 很多单片机系统都需要≡大容量存储设备,以存储数据?。目前常用的有U盘,FLASH芯片,SD卡等…

sd读卡器驱动

很多单片机系统都需要≡大容量存储设备,以存储数据?。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最1适合单片机系统的莫过于SD卡了,它不仅容◎量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,并且有几种体积的尺寸可供选择(标·准的SD卡尺寸,以及TF卡尺寸等),能满足不同应用?的要求。只需要4个IO口即可外扩一个最大达3?2GB以上的外部存储器,容量⊕从几十M到几十G选择尺度很大,更换也很方便,编程也简单,*是单片机大容量外部存储器的首选。ALIENTKE战舰∮STM32开发板自带了标准的SD卡接口,?可使?用STM3¢2自带的?SPI/S⊥DIO接口驱动(通过跳线帽选择驱±动方式),本章我们使用SPI?驱动,最高通信?速度可达18Mbps,?每秒可?传输数据2M字节以上¥,?对于一般应用足够了。在≌本章中,我们将向大家介绍?,如何在ALIENTEK战舰STM32开发板上实现SD卡的读取。本章分为如下几个部分:44.1 SD卡简介44.2°硬件设计44.3∽软件设计44.4?下载?验证
44.1 SD卡简介SD卡(Secure Digital Mem≧o?ry Card)≒中文翻译为安全数码卡,它是在MMC的基础上发℡展而来,是一≠种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹㏑如一张邮票的SD记忆卡,重量只∞有2克,但却拥有?高记忆容量m、﹢快速数∑据传输率、极大的移动灵活?性以及很好的?安全性。按容量分类,可?以将SD卡分为3类:SD卡、SDHC卡、SDXC卡。如表44.1.1所示?:容量命名简称0~2GStandard Capacity SD Memory CardSDSC或∏SD22G~32GHigh Capacity SD Memmlory CardSDHC32G~′2T?Extended ?Capacity SD Memory Ca?rdSDXC表4o4.1.1 SD卡按容量分类?SD卡和SDHC?卡※协议基本兼容,?但是SD?XC卡,同这两者区别就比较大了,本章我们讨论的主要是SD/?SDHC卡(简称SD卡)。SD卡一般支?持2种操作模式:?1,SD卡模式(通过SDIO通×信);″2,SPI模?式;%主机可以选择以上任意一种模式同SD卡通信,SD卡模式允‖许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这?种模式同SD卡模式相?比就@是丧失了速度。SD卡?的引脚排?序如下图44.1.1所示:图44.1.1 S?D卡引脚排序图SD卡引脚功能描述如表45.1?.2所示:表45.1.2 ¥SD卡引?脚?功能表SD卡只能?使用3﹢.3V的IO电平,所以,MCU一定要能够支持3.3V的IO端口输出。注意⊿:?在SPI模式下,CS/MOSI/MISO/CLK都需要加10~100K左右的上拉电阻。SD卡有5个寄存器,如表45.1.?3所示:名称宽度描述C?ID128卡标识寄存器RCA16相对卡地址(Relati3v㏕e card address)寄存器:本?地系统中卡的地址,动态﹣变化,在主机初始化的时候确定*×SPI模﹥式?中没有CSD12∴8卡描述数据:卡操作条件相关的信?息数据SCR?64SD配置寄存器-:SD卡特定信息数据OCR32操作条件寄存?器表45.÷∣1.3 SD卡相关?寄存器关于这些m寄存器的详细描述,请参考光盘相关≯SD卡资料。?我们在这里就不描述了。接下来,我们看看SD卡的命令格式,?如表45.1.4所示:字节1字节2–5字节6765031071001command命?令参数CRC1表45.1.4 SD卡命令格式SD卡的指令由6个字节?组成,字节?1的≈最高2位固定为01,低6位为命令号(?比如CMD16,℉为100√00即16进制?的0X10,完整的CM?D16,第∟一个字节为01010000∝,即0X1>0+0X40)。字节2~5为命∵令参数,有些命令是没有参数的。字节6的高七位为CRC∠值,最低位恒定为1。SD卡的命令总共有12类,分为Clas?s0~Class11,本章,我们仅介绍几个比较重要的命令,如表45.1.5所示:命令参数回应描述CMD0∥(0X00)NONER1复位SD卡CMD8(﹤♂0X08)VHS+Check patternR7发送接口状态命令CMD9(0X09)NON?ER1读取卡特定数据寄存?器CMD10(0X0A)NONE?R1读取卡标志数据寄存器CMD16∷(0X10)块大小R1设?置块大小(?字节数)CMD17(0X11)地址R1读取一?个块的数据CMD24﹣(0X18)地址R1写入一个块的数据CM<D41(0X29)NONER3发送给主机容量支持信息¬和激活
卡初始化过程CMD5?5(0X37)NONER1告诉SD卡,下一个是特定应用命令CMD58(0X3A)NONER3读取OCR寄存器表45.1.5 SD卡部分命令上表中,大部分的命令是初始化的时候用的。表中的R1、R3和R?7等是SD卡的回应,SD卡和单片机的通信采用发送应答机制,如图45.1.2所示:图〒45.1.2 SD卡命令传输过程每发送一个命令,SD卡都会给出一个应答?,以告知主机该命令的执行情况,或者返回主机需要?获取的数据。SPI模式下,SD卡针对不同的命令,应答可以使R1~R7,R%1?的应答,各位描述如表45.1.6所示:
R1响应格式位7654∶3210含义开始位
始终为0参数
错误地址
错误擦除序列
错误CRC错误非法
命令擦除
复位闲置
状态表45.1.6 R1响应各位描述§R2?~R7的响应,我们就不介绍了?,请的大家参考S?D卡2.0协议。接下来,我们看看SD3卡初始化过程。?因为我们使∩用的是SPI模式,所以先得让SD卡进入SPI模式。方法如下:在SD卡收到复位命令(CMD0)时,C=S为有效电平?(低电平)则SPI模式被启?用。不过在发 ?送CMD0之前,要发送>74个时⊙钟,这是因为S≤D卡内部有个供电电压上升时间,大概为64个CLK,剩下的10个CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,C$LK时钟最大不能超过400?Khz!。接着我们看看SD卡?的初始化,SD卡的典型初始化过程如下:?1?、初始化与SD卡?连接的硬?件条件(MCU㎡的SPI∪配置,IO口配置);2、上电延时?(>74个C?LK);3、复位卡(CMD0),进入IDLE状态;∈4、发送CMD8,检查?是否支持2.0协议;5、根据不同协议检查SD∫卡(命令㎎包括?:C?MD55?㎞、CMD41、CMD58和C?MD1等);6¤、取消片选,发多8个‰CLK£,结束初始化≥这样我们就完成了对SD卡的初始化,注意末尾发送的8个CLK是提供SD卡额外?的?时钟,完℃成某些操作。通过SD卡初始化,我们可以知道SD卡的类型(V1、V2、V2HC或者MMC),在完成了初始化之后,就㎝可以开始读写数据了。SD卡读+取数据,这里通过CMD17来实现,具体过程如下:1、发送CMD17;2、接?收卡响应R1;3、接收数据起始令牌0X?FE;4⌒、接收数据;5、接收2个字节的CRC,如果不使用CRC,这两个字节㏒在读取后可以丢掉。6、禁止片选之后,发多8个C?L=K;以上就是一个典型的读取S?D卡数据过程,SD卡的写于读数据差不多,写数据?通过CMD24来实现,具体过程如下:1、发送CMD24;2、接收卡响应R1;3、发送写数∧据起㎏始㏄令牌0XFE;4、发送数据;5、发送2字节的伪CR?*C;6、禁止片选之后,发多8个CLK;以上就是一个典型的写SD卡过程。关于SD卡的介绍,我们就介绍到这里,更详㈱细的介绍请参考光盘∷SD卡的参考资料(SD卡2?.0协议)。44.2硬件设计本章实验功能简介:开机的时候先初始化SD卡,如果SD卡初始化完/成,则提示LCD初?始化成功。按下KEY0,读取SD卡扇区0的数据,然后通过串口发送到电脑?。№如果没初始化通过,则在LCD上提示初始化失败。同样用DS0来指示程序?正在运行。本实验用到的硬件资源有:1?)指示灯DS02)KEY0按键3)串口4)TFTLCD模块5)SD卡前面四部分,在之前的实例已经介绍过了,这里我们介绍一下战舰STM32开发板板载的SD卡接口和STM3?2的连接关系,如?图44.2.1所示:

图44.2.1 S?D卡接口与ST£M32连接原理图我们用跳线帽将P10的SD_㎜DT3、SD_CMD、SD_SCK、SD_DT0分别同P12的SD_CS、SPI2_MOSμI、SPI2?_♀SCK、SPI2_MISO连接起来,即实现SD卡的SPI模mol式连接。℅硬件连接示意图如图44.2.2所示:图44.2.2 SD卡SPI方式硬件连接?示意图将图中所示的4?处,用跳线帽短接,接口实现SD卡与STM32的sd读卡器驱动SPI连接。最后,你还得自备≦一个SD卡,将≮其插入板子下面的SD卡接口。
关于更多sd读卡器驱动内容,可以收藏本网页。魏克兴 STM32之SD卡驱动

sd读卡器驱动sd读卡器驱动
本文来自网络,不代表天津五金网立场,转载请注明出处:http://www.mgnqyz.com/mgnqyz/1139.html

作者: mgnqyz

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部