基于STM32的SD卡设计Word文档下载推荐.docx
《基于STM32的SD卡设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于STM32的SD卡设计Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
保密□,在年解密后适用本授权书。
不保密□。
(请在以上相应方框内打“√”)
指导教师签名(手写):
签字日期:
年月日签字日期:
摘要
SD卡(SecureDigitalMemoryCard)中文翻译为平安数码卡,是一种基于半导体快闪经历器的新一代经历设备,它被普遍地于便携式装置上利用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月一起开发研制。
大小犹如一张邮票的SD经历卡,重量只有2克,但却拥有高经历容量、快速数据传输率、极大的移动灵活性和专门好的平安性。
由于互联网的飞速进展,各类移动设备的计算能力取得大幅提升,与外界数据通信互换量愈来愈大,通信的平安性和数据的真实性尤其重要。
正是因为SD卡具有如此多的优势,才被人们普遍的应用。
依照SD卡的各类优势和特性,而在STM32平台上对其进行开发设计,着重于增强SD卡的数据通信的速度和与嵌入式产品的通信加倍方便,要紧对SD卡通信时搜集的电压、电流、功率及时刻监测及补偿。
包括一些大体的通信及SD卡驱动实现和分析,本文基于STM32就SD卡的硬件和软件作研究设计。
最后,对SD卡课题研究进行时期性总结和对后续工作进行展望。
关键词:
SD卡;
移动存储;
STM32;
SPI接口
ABSTRACT
SDcard(SecureDigitalMemoryCard)SecureDigitalcardtranslatedintoChinese,isaflashmemorydevicebasedonanewgenerationofsemiconductormemorydevices,itiswidelyusedinportabledevicessuchasdigitalcameras,personaldigitalassistant(PDA)andmultimediaplayers.SDcardfromJapanPanasonic,ToshibaandSanDiskCorporationintheUnitedStatesinAugust1999jointlydeveloped.LikeapostagestampsizeSDmemorycard,weightonly2grams,butithashighmemorycapacity,fastdatatransferrates,greatflexibilityandgoodmobilesecurity.AstherapiddevelopmentofInternet,computingpowerofmobiledeviceshasincreasedsubstantially,withtheoutsideworld,increasingtheamountofdatatrafficexchange,trafficsafetyandauthenticityofdataisparticularlyimportant.
ItispreciselybecauseoftheSDcardhassomanyadvantages,wasonlyawiderangeofapplications.ThevariousadvantagesandfeaturesoftheSDcard,whileintheSTM32platform,itsdevelopmentanddesign,focusonstrengtheningtheSDcarddatacommunicationspeedandmoreconvenientcommunicationsandembeddedproducts,mainlycollectedintheSDcardtocommunicatevoltage,current,powerandtimemonitoringandcompensation.ContainssomebasiccommunicationandSDcarddriverimplementationandanalysis,SDcardhardwareandsoftwaredesignbasedontheSTM32.
Finally,thestagesummaryandoutlookonthefollow-upresearchoftheSDcard.
KeyWords:
SDcard;
RemovableStorage;
STM32;
SPIinterface
第一章绪论
课题背景及意义
21世纪是一信息传递及应用高速的时期,信息在人类社会活动中已经必不可缺,利用嵌入式系统的电子产品已经在人们的日常生活中普遍普及应用。
其中人们日常生活中最常常接触利用到的数码相机、电话、MP3、MP4、多媒体播放器等,其信息数据的存储大部份都是利用的SD卡。
因此SD卡在嵌入式上应用有着十分大市场空间。
SD卡拥有轻小、高存储容量、高速的传输速度和很高的平安性,改换和编程也相当方便。
依照SD卡胡特性,它已然成为超级多数码产品的外部应用贮存的第一选择目标。
ALIENTKEMiniSTM32开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,关于一样应用足够了。
SD卡简介
SD卡——SecureDigitalMemoryCard,中文意思是平安数码卡,是一种可移动的存储设备,面积和体积都很小,质量也够轻。
但经历性好,传输的速度专门快,通信超级方便,移动性好,平安性能也十分高。
因此很多数码产品都是用的它,有数码相机、电话、还有一些媒体播放器都是超级的适用。
加上由于互联网的飞速进展,各类移动设备的计算能力取得大幅提升,与外界数据通信互换量愈来愈大,通信的平安性和数据的真实性尤其重要。
此刻用于数据贮存的产品有很多,如U盘和SD卡等。
可是由于各自的优势不同,比较一下的话,仍是SD卡适合用于嵌入式应用,超级大的容量,有些的产品达到了32GB以上的容量,而且有着标准的大小。
SD卡在24mm×
32mm×
的体积内结合了〔SanDisk〕快闪经历卡操纵与MLC(MultilevelCell)技术和Toshiba(东芝)及的NAND技术。
SD卡的通信模式有2种,如下:
a.SD卡模式;
b.SPI模式;
主性能够选取两种模式中的任何一种来与SD卡进行通信。
其中SD卡所许诺的最大传输线数是四线,因此SPI模式与SD卡模式二者的传输速度相较的话较多,因此SPI模式传输数据的速度超级快但要比SD卡模式传输数据的好戏速度要慢了好多。
图1.2.1SD卡物理方面的特性例如
SD卡的应用
从SD卡进入到人类的社会活动的时刻来看,SD卡的进展是超级的短暂而又快速,可见人们对其应用是相当的依托。
利用SD卡的电子产品也是超级的多数不胜数,时下已经成为最为通用的数据存储卡。
质量轻,尺寸小,传输速度快,平安性能高。
正是因为SD卡有着如此多的优势,将它应用到嵌入式开发中来,将是不贰的选择。
图实际应用图例
平安数码卡所研究的内容以及特色
本文基于STM32就SD卡硬件和软件的研究设计加以介绍,分析系统软硬件的选择,和其开发环境的调试和应用。
将SD卡插入STM32开发板,SD卡与STM32进行数据互换,要将SD卡外部驱动,将外部贮存卡与STM32联系起来。
开发板对成为外部贮存空间的SD卡进行读写,把读写命令解析并传送到SD卡中,从而实现开发板对外部贮存卡的操作与操纵。
重点研究设计以下内容:
1、STM32的简单介绍和在此嵌入式操作系统下所进行驱动地开发步骤;
2、对SD卡命令分析和实现;
3、对SD卡通信分析,包括SD通信模式和SPI通信模式,DMA的所有寄放器的含义和设置,及其它的一些设置;
4、大体的驱动分析及实现,SD卡的驱动实验;
5、SD卡硬件和软件的研究设计。
研究设计的特色:
通过这次的研究分析,能够更好的深切了解SD卡及STM32。
实现SD卡在STM32开发板上更好的驱动,加速SD卡与STM32之间的数据交互。
最终实现SD卡与嵌入式系统产品加倍紧密的联系和应用。
第二章SD卡硬件方面的研究设计
硬件读写模块
SD卡存储模式是Flash。
SD卡的卡内智能操纵模块包括电源和时钟的治理、协议、算法平安、存取数据、ECC算法、处置缺点和分析数据。
FLASH每一个扇区的写寿命在10万次左右,读的次数是无穷制的。
SD卡引脚散布排列顺序如以下图所示:
图SD卡引脚图
SD卡的九个引脚功能:
针脚
1
2
3
4
5
6
7
8
9
SD卡模式
CD/DAT3
CMD
VSS
VCC
CLK
DAT0
DAT1
DAT2
SPI模式
CS
MOSI
NC
表平安数码卡引脚功能表
在STM32中,开板利用的是SPI的接口模式来进得读写,因此,本课题要紧应用的即是SPI的模式。
由于SD卡内部的供电电压上升是需要一段时刻,大约是64个时钟,而且需要10个时钟与SD卡同步,因此在发送CMD0之前,要发送>
74个时钟。
SD卡与STM32进行数据互换,要将SD卡外部驱动,将外部贮存卡与STM32联系起来。
硬件设计模块
开机以后先将进行平安数码卡的初始化,如假设完成平安数码卡的初始,将会读出数据,内容是零扇区里面的。
对SD卡通信分析,包括SD通信模式和SPI通信模式,DMA的所有寄放器的含义和设置,及其它的一些设置假设是没有通过初始,LCD上会显示初始化失败。
通过DS0来指示程序正在运行。
所需要的硬件资源如下:
1.SD卡。
2.STM32F103ZET6。
3.DS0(外部LED0)。
4.串口1。
SD卡和STM32的连接:
SPI1与平安数码卡通信,如下其引脚的连接概念为:
PE3:
SPI1-SPI2全双工通信,低电平作用;
PA7:
通信终止后跟从一个CRC校验;
PA5:
SPI一、SPI2的NSS引脚是断开的;
PA6:
SPI驱动,NSS引脚由软件设置配置;
PC12:
MOSI输出,与STM32通信;
CLK:
时钟信号;
CMD:
双向命令和响应信号;
DAT0-3:
双向数据信号;
VDD,VSS:
电源和地信号;
SD卡的总线结构是单主多从的结构,即在SD模式下许诺有一个主机,多个从机或是多个卡,主性能够给从机别离地址。
总线上卡利用都是统一的时钟和电源线。
主机访问各个卡都是依照顺序来,区分不同的卡的依照是每一个卡里的CID寄放器当中都有一个已经编好的程序作为唯一的卡识别号。
SD在主机的概念下有必然的电压范围,当提供的电压在主机概念范围之外时,SD卡将处于非活动的状态,所有总线上的数据总线传输都将被忽略。
要使SD卡进入活动状态的唯一的方法是将SD卡从头上电。
SD卡的内存组织:
SD卡以一个字节作为数据读写的大体单元,依照不一样的要求来组成不一样的模块。
Block:
块的实际大小等信息是由CSD寄放器所操纵的,其大小依照需求来改变,也能够将其大小固定。
Sector:
Sector关于每一个设备大小都是固定的也是由CSD寄放器来存储信息的大小。
相关的擦除命令,是由几个块组成的。
WPGroup:
写爱惜单位。
大小包括几个块,一名决定写爱惜,WP对于每一个设备大小都是固定的,一样将信息大小存储在CSD寄放器中。
SD卡与MCU的连接原理图如下:
图SD卡与STM32连接电路图
硬件接口设计:
在SPI模式下,引脚1(DAT3)作为SPI片选线CS用,引脚2(CMD)用作SPI总线的数据输出线MOSI,而引脚7(DAT0)为数据输入线MISO,NSS由硬件配置,SPI2为主机,SPI1为从机,使SS输出(置位SPI_CR2SSOE位),SPI2NSS引脚复位SPI1的NSS引脚并配置SPI1为从机。
在通信中利用DMA能够减少代码密度和执行时刻,容易接收和发送数据。
利用各类硬件设备自身的特点来减小其运转开销,例如减小中断次数、利用DMA传输方式等。
平安数码卡传输给STM32,STM32和SD卡进行数据间的互换。
第三章SD卡软件设计
SPI工作模式:
SPI能够同时发出和接收串行数据。
SD卡在STM32上的驱动,和STM32的数据互换,开发板能够通进程序来获知SD卡的内容,通过命令参数来操纵SD卡。
SPI2为主机,SPI1为从机,使SS输出(置位SPI_CR2SSOE位),SPI2NSS引脚复位SPI1的NSS引脚并配置SPI1为从机。
咱们通常也需要最大可能地利用各类硬件设备自身的特点来减小其运转开销,例如减小中断次数、利用DMA传输方式等。
包括SD通信模式和SPI通信模式,DMA的所有寄放器的含义和设置,及其它的一些设置。
SD模式和SPI模式是平安数码卡的两个协议作为通信誉的。
NSS由硬件配置,SPI2为主机,SPI1为从机,使SS输出(置位SPI_CR2SSOE位),SPI2NSS引脚复位SPI1的NSS引脚并配置SPI1为从机。
在通信中利用DMA能够减少代码密度和执行时刻,容易接收和发送数据在SPI模式下,主机只利用两根数据线和外围器件进行通信,且每条线是单工模式,因此在速度上不如SD模式,也无法像SD模式一样实现主机连接多设备时数据线的通用。
但由于其实现简单,具有良好的设备兼容性,因此大多部设备默许的通信协议都是SPI模式。
而STM32开发板本身具有SD卡接口,大大节省了本钱。
一、SPI1-SPI2全双工通信,通信终止后跟从一个CRC校验。
SPI1和SPI2的数据输入端(MISO)连接在一路,SPI一、SP2的数据输出端(MOSI)连接在一路,两个SPI的时钟输入SCK连接在一路。
由于NSS治理,SPI一、SPI2的NSS引脚是断开的。
图STM32F10XXX的SPI1-SPI2全双工通信的典型连接
提供的固件包括SPI驱动,NSS引脚由软件设置配置SPI1为主,SPI2为从。
能够通过CRC校验,那么其SPI为靠得住的。
二、半双工通信的典型连接,SPI2的MOSI和SPI2的MISO引脚连接在一路,SCK连接在一路。
SPI1和SPI2的NSS引脚连接在一路。
图3.1.2SPI1与SPI2单通信模式半双工通讯连接
NSS由硬件配置,SPI2为主机,SPI1为从机,使SS输出(置位SPI_CR2SSOE位),SPI2NSS引脚复位SPI1的NSS引脚并配置SPI1为从机。
3、SPI1与SPI2单通信模式,SPI1的数据输出(MOSI)连接到SPI2的(MISO),时钟线连接到一路。
NSS引脚不连接,以便NSS软件治理。
图SPI1与SPI2单通信模式
在单通信模式下,利用者只需要利用主机的MOSI引脚和从机的MISO引脚及CLK引脚。
SD卡初始化:
初始化平安数码卡,是进行平安数码进行卡操作的前提,其流程图为。
Y
N
发送74个时钟周期
发送复位命令CMD0
进入SPI总线模式
发送激活命令CMD1
SD卡响应
开始
Bit=0?
结束
图流程图(平安数码卡的初始化)
附录一为平安数码卡的参考,程序。
复位:
第一是至少74个CLK,然后CS_LOW;
发送CMD0(COM0:
0x400x000x000x000x000x95),收到的应答是0x01;
初始化:
接着发送CMD1(COM0:
0x410x000x000x000x000xff),收到的应许诺该是0x00;
最后CS_HIGH。
至此,初始化完成。
3.3数据块的读写
平安数码卡读写数据块,NSS由硬件配置,SPI2为主机,SPI1为从机,使SS输出(置位SPI_CR2SSOE位),SPI2NSS引脚复位SPI1的NSS引脚并配置SPI1为从机。
第一,进行平安数码卡的初始化,平安数码卡的初始化,其进程是如此的:
1.平安数码卡初始化,及其硬件的连接:
MCU的SPI配置,IO配置;
2.上电延时(>
74个CLK);
3.复位(CMD0);
4.查询OCR,获取供电状况(CMD58);
5.是不是利用CRC(CMD59);
6.74个CLK,然后CS_LOW;
7.接着发送CMD1;
8.收到应答,CS_HIGH;
依照以上的步骤进行操作以后,收到的应答,初始化,初始化完成如下:
1.发送CMD24;
2.发送与接收平安数码卡响应;
3.送入相对应的特殊的指令;
4.发送数据;
5.将数据进行接收;
6.发送八个时钟以后,片选将被禁止;
访问各个卡都是依照顺序来,区分不同的卡的依照是每一个卡里的CID寄放器当中都有一个已经编好的程序作为唯一的卡识别号。
平安数码卡的读写操作都是在通过初始化之后基于平安数码卡命令与响应完成相应的操作地,平安数码卡的读、写如以下图所示,其为程序的流程图。
SD卡初始化
发送命令CMD24
接收SD卡响应
发送数据起始标志
发送512字节数据
发送2字节CRC码
超时错误
&
0x1F=5?
返回
图写SD卡流程图
发送写命令CMD17
接收2字节CRC码
接收512字节数据
应答=0xFE
图读SD卡流程图
3.4平安数码卡软件设计
通过SD_GetCapacity函数来取得SD卡的容量,然后在液晶上显示出来,接着咱们读取SD卡的扇区0,然后把这部份数据通过串口打印出来。
每6s执行一次。
源程序参照附录二(程序由C语言编写,有专门好的移植性)。
此程序实现SD卡在STM32上的驱动,和STM32的数据互换,开发板能够通进程序来获知SD卡的内容,通过命令参数来操纵SD卡。
分析系统软硬件的选择,和其开发环境的调试和应用。
除编程上的技术外,为提高系统的运行效率,咱们通常也需要最大可能地利用各类硬件设备自身的特点来减小其运转开销,例如减小中断次数、利用DMA传输方式等。
第四章调试与成效
STM32连接原理图
图STM32连接原理
下载与调试
将附录2的代码编译成功后,将代码下载到ALIENTEKMiniSTM32开发板上,在LCD显示屏上能够看到如以下图所示,那么表示SD卡已经连接上STM32:
图SD卡连接显示内容
完成以上步骤后,打开串口调试助手,能够取得从STM32开发板发送回来的数据如以下图所示:
图4.2.2串口收到的SD卡扇区0内容
第五章结论与展望
SD卡应用使让人越来依托它,能够说是已经成为人类社会生活中不可或缺的一部份,SD卡具有广漠的进展前景和市场前景。
通过毕业设计,让我各方面都有了一个提升。
技术上,我加倍深切了解STM32和SD卡,学到了以前没有学过的知识。
在作此毕业设计时,也有着各类各样的困难,但在教师的指导下,同窗的帮忙下,我克服了一个又一个的困难和解决了一个又一个的问题。
实际动手能力也有一个专门大的提升,从程序的编译和设备的连接调式及仿真,都是超级考验我。
也学会了查阅并应用资料,分析能力都有一个专门大的进步。
这次毕业设计是我对前所学专业的知识的一个总结和实际查验和巩固,同时帮忙我在作之前一个专门好的锻炼,增强了我的独立工作能力,是走向工作职位的相当重要的一步。
此毕业设计由选题之初到预备材料到编写论文到完成论文,都暴露了我的很多不足的地方,比如缺乏综合应用专业知识的能力,在一些小细节和小问题太过放松。
通过这次的学习和实践,我清楚的熟悉到自己的知识还很不全面,处置问题等方面都还需要一个更大的提升,做任何都要认真对待、全力以赴。
毕业将至,在我以后漫漫人一辈子路加倍要不断学习,充实和提升自己。
把活到老学到老真正运用到实际中来,也警示自己世上有太多自己不懂的地址,只有通过不断的学习和尽力工作才能克服困难,走向成功。
参考文献(References)
[1]JosephYiu著.宋岩译.Cortex-M3权威指南.(电子版)
[3]张义和主编.AltiumDesigner完全电路设计.北京:
机械工业出版社.2007
[4]刘同法,肖志刚,彭继卫编.ARMCortex-M3
[8]STM32F10x参考手册
[10]SmartcardinterfacewiththeSTM32F101xxand32F
[11]DSP之SD卡与文件系统完全研究.pdf(尘凡出品)
[13]STM32F系列ARMCortex-