Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 其他文档 > 基于嵌入式ARM的SD卡的读写要点

基于嵌入式ARM的SD卡的读写要点

收藏

本作品内容为基于嵌入式ARM的SD卡的读写要点,格式为 doc ,大小 759168 KB ,页数为 26页

基于嵌入式ARM的SD卡的读写要点


('桂林电子科技大学实训(论文)报告用纸第1页共2页摘要SD卡(SecureDigitalMemoryCard)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。本实训的作品是利用基于ARMCotex-M3内核的嵌入式处理器STM32自带的SDIO硬件接口来驱动SD卡,并结合文件系统FATFSR0.07C来完成一个基于嵌入式ARM的SD卡读写的作品,现实向SD卡写入一个txt文件,并读取SD卡的文件目标并通过串口打印到PC机显示。关键词:嵌入式;ARM;STM32;SD卡;文件系统桂林电子科技大学实训(论文)报告用纸第2页共2页AbstractSDCard(SecureDigitalMemoryCard)ChinesetranslationforSecureDigitalCard,itisakindofbasedonsemiconductorflashMemoryofanewgenerationofMemorydevice,itiswidelyusedinportabledevices,suchasDigitalcameras,personalDigitalassistant(PDA)andmultimediaplayer,etc.ThistrainingworkisbasedonARMCotex-M3kernelembeddedprocessorSTM32ownSDIOhardwareinterfacetodrivetheSDcard,andcombinedwiththefilesystemFATFSR0.07CtocompleteabasedonembeddedARMoftheSDcard,speaking,readingandwritingwork,realitytoSDcardtoaTXTfile,andreadSDcardfilegoalsandthroughtheserialportprinttoPCdisplay.Keywords:embedded;ARM;STM32;SDCard;Filesystem桂林电子科技大学实训(论文)报告用纸第1页共1页目录1前言.......................................................................................................................................................11.1ARM应用背景...................................................................................................................................11.2研究内容............................................................................................................................................21.3研究成果............................................................................................................................................32STM32处理器概述..............................................................................................................................32.1STM32简介.......................................................................................................................................32.1.1STM32F103VET6的参数..............................................................................................................42.2内部资源............................................................................................................................................62.3CORTEX-M3内核简介........................................................................................................................62.4STM32SDIO简介.............................................................................................................................82.4.1SDIO简介.........................................................................................................................................82.4.2SDIO功能特性...............................................................................................................................83SDIO的原理及实现方法.....................................................................................................................93.1原理....................................................................................................................................................93.2SDIO适配器....................................................................................................................................103.3SDIO卡识别过程............................................................................................................................113.4SDIO写数据块................................................................................................................................123.5SDIO读数据块................................................................................................................................134FATFS文件系统.................................................................................................................................134.1FATFS文件系统简介.......................................................................................................................134.2FATFS文件系统移植.......................................................................................................................144.2.1移植前工作.....................................................................................................................................144.2.2开始移植.........................................................................................................................................145测试及结果.........................................................................................................................................165.1JTAG仿真器介绍.............................................................................................................................165.2现象及结果......................................................................................................................................176结论.....................................................................................................................................................18致谢.......................................................................................................................................................19参考文献.................................................................................................................................................20ARM处理器ADCI/O接口键盘RAMLED传感器转换器LCDDACEPROM主机桂林电子科技大学实训(论文)报告用纸第1页共24页1前言1.1ARM应用背景如今,学习一种处理器的就有许多ARM内核的处理器可供使用,现在社会已步入嵌入式学习阶段。在嵌入式领域,8位处理器已经不再胜任一些复杂的应用比如GUI,TCP/IP,FILESYSTEM等,而ARM芯片凭借强大的处理能力和极低的功耗,非常适合这些场合。现在越来越多的产品在选型的时候考虑到使用ARM处理器,ARM的应用是相当的广泛。ARM的嵌入式控制应用如:汽车、电子设备、保安设备、大容量存储器、调制解调器、打印机等。一个典型的ARM嵌入式工业控制系统的功能模块如图1-1所示。输入输出图1-1ARM嵌入式工业控制系统的功能模块目前已有超过85%的无线通信设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。ARM在此方面的应用如:手提式计算机、移动电话、PDA等。随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上进行了优化,并获得广泛支持。ARM技术在目前流行的数字音频播放器、数字机顶盒、游戏机、数码相机、数字式电视机、GPS、机顶盒中得到广泛采用。现在流行的数码相机和打印机中绝大部分采用ARM技术,手机中的32位SIM智能卡也采用了ARM技术。如图1-2所示是基于ARM技术的数码相机的功能模块[9]。桂林电子科技大学实训(论文)报告用纸第2页共24页图1-2基于ARM技术的数码相机的功能模块1.2研究内容本设计旨在加深对ARM的学习,巩固大学四年所学专业知识,提升动手能力和思考问题解决问题的能力。本设计选择意法半导体的STM32F103系列处理器,通过自制STM32开发板的过程,和对STM32F103C8T6芯片的研究学习,掌握其各种外设功能。STM32F103VET6具有一个SDIO接口。SD/SDIO/MMC主机接口可以支持MMC卡系统规范4.2版中的3个不同的数据总线模式:1位(默认)、4位和8位。在8位模式下,该接口可以使数据传输速率达到48MHz,该接口兼容SD存储卡规范2.0版。SDIO存储卡规范2.0版支持两种数据总线模式:1位(默认)和4位。目前的芯片版本只能一次支持一个SD/SDIO/MMC4.2版的卡,但可以同时支持多个MMC4.1版或之前版本的卡。除了SD/SDIO/MMC,这个接口完全与CE-ATA数字协议版本1.1兼容。本实训的作品是利用基于ARMCotex-M3内核的嵌入式处理器STM32自带的SDIO硬件接口来驱动SD卡,并结合文件系统FATFSR0.07C来完成一个基于嵌入式ARM的SD卡读写的作品,现实向SD卡写入一个txt文件,并读取SD卡的文件目标并通过串口打印到PC机显示。ARM处理器LCD控制器主机接口CCDADC控制电路和编码电路存储器桂林电子科技大学实训(论文)报告用纸第3页共24页本文第一章讲述了该论文写作背景,主要阐述了ARM应用范畴,以及该论文研究的内容;第二章讲述了该研究课题使用的核心芯片STM32F103VET6的各项参数;第三章着重介绍了SDIO的原理及实现方法;第四章着重介绍了FAT文件系统的原理;第五章介绍了测试方法和结果。1.3研究成果给硬件系统供电(5V),插上JLINK,插上串口线(两头都是母的交叉线),插上MicroSD卡,打开超级终端,配置超级终端为1152008-N-1,将编译好的程序下载到硬件平台,即可看到超级终端打印出如下信息:图1-3显示结果图2STM32处理器概述2.1STM32简介STM32F103xx增强型系列使用高性能的ARM/Cortex-M3/32位的RISC内核桂林电子科技大学实训(论文)报告用纸第4页共24页工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和一个PWM定时器,还包含标准和先进的通信接口:多达2个I2C和SPI、3个USART、一个USB和一个CAN。STM32F103xx增强型系列工作于-40℃至+105℃的温度范围,供电电压2.0V至3.6V,一系列的省电模式保证低功耗应用的要求。完整的STM32F103xx增强型系列产品包括从36脚至100脚的五种不同封装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系列产品中所有外设的基本介绍。这些丰富的外设配置,使得STM32F103xx增强型微控制器适合于多种应用场合:·电机驱动和应用控制;·医疗和手持设备;·PC外设和GPS平台;·工业应用:可编程控制器、变频器、打印机和扫描仪;·警报系统,视频对讲,和暖气通风空调系统;2.1.1STM32F103VET6的参数STM32F103VET6芯片的参数如表2-1桂林电子科技大学实训(论文)报告用纸第5页共24页表2-1器件功能和配置(STM32F103xx增强型)芯片引脚图如图2-2:桂林电子科技大学实训(论文)报告用纸第6页共24页图2-2STM32F103xx增强型LQPFP100管脚图2.2内部资源STM32有丰富的内部资源,如下所示:·RealViewMDK(MiertocontrollerDevelopmentKit)基于ARM微控制器的专业嵌入式开发工具;·内置闪存存储器;·内置SRAM;·嵌套的向量式中断控制器(NVIC);·外部中断/事件控制器(EXTI);·时钟和启动;·自举模式;·DMA;·RTC(实时时钟)和后备寄存器;桂林电子科技大学实训(论文)报告用纸第7页共24页·窗口看门狗;·I2C总线;·通用同步/异步接受发送器(USART);·串行外设接口(SPI);·控制器区域网络(CAN);·通用串行总线(USB);·通用输入输出接口(GPIO);·ADC(模拟/数字转换器);·温度传感器;·串行线JTAG调试口(SWJ-DP)。2.3Cortex-M3内核简介Cortex-M3内核包含一个适用于传统Thumb和新型Thumb-2指令的译码器、一个支持硬件乘法和硬件除法的先进ALU、控制逻辑和用于连接处理器其他部件的接口。Cortex-M3处理器是首款基于ARMv7-M架构的ARM处理器。中央Cortex-M3内核使用3级流水线哈佛架构,运用分支预测、单周期乘法和硬件除法功能实现了出色的效率(1.25DMIPS/MHz)。Cortex-M3处理器是一个32位处理器,带有32位宽的数据路径、寄存器库和基于传统ARM7处理器的系统只支持访问对齐的数据,沿着对齐的字边界即可对数据进行访问和存储。Cortex-M3处理器采用非对齐数据访问方式,使非对齐数据可以在单核访问中进行传输。Cortex-M3处理器是专为那些对成本和功耗非常敏感但同时对性能要求又相当高的应用而设计的。凭借缩小的内核尺寸和出色的中断延迟性能、集成的系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cortex-M3处理器将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案。表2-3为Cortex-M3处理器与ARM7作比较。表2-3Cortex-M3与ARM7相比较桂林电子科技大学实训(论文)报告用纸第8页共24页2.4STM32SDIO简介2.4.1SDIO简介STM32F103VET6具有一个SDIO接口。SD/SDIO/MMC主机接口可以支持MMC卡系统规范4.2版中的3个不同的数据总线模式:1位(默认)、4位和8位。在8位模式下,该接口可以使数据传输速率达到48MHz,该接口兼容SD存储卡规范2.0版。SDIO存储卡规范2.0版支持两种数据总线模式:1位(默认)和4位。目前的芯片版本只能一次支持一个SD/SDIO/MMC4.2版的卡,但可以同时支持多个MMC4.1版或之前版本的卡。除了SD/SDIO/MMC,这个接口完全与CE-ATA数字协议版本1.1兼容。2.4.2SDIO功能特性(1)主要功能SD/SDIOMMC卡主机模块(SDIO)在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和CE-ATA设备间提供了操作接口。多媒体卡系统规格书由MMCA技术委员会发布,可以在多媒体卡协会的网站上(www.mmca.org)获得。CE-ATA系统规格书可以在CE-ATA工作组的网站上(www.ce-ata.org)获得。SDIO的主要功能如下:●与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。●与较早的多媒体卡系统规格版本全兼容(向前兼容)。●与SD存储卡规格版本2.0全兼容。●与SDI/O卡规格版本2.0全兼容:支持良种不同的数据总线模式:1位桂林电子科技大学实训(论文)报告用纸第9页共24页(默认)和4位。●完全支持CE-ATA功能(与CE-ATA数字协议版本1.1全兼容)。●8位总线模式下数据传输速率可达48MHz。●数据和命令输出使能信号,用于控制外部双向驱动器。(2)SDIO总线拓扑总线上的通信是通过传送命令和数据实现。在多媒体卡/SD/SDI/O总线上的基本操作是命令/响应结构,这样的总线操作在命令或总线机制下实现信息交换;另外,某些操作还具有数据令牌。在SD/SDIO存储器卡上传送的数据是以数据块的形式传输;在MMC上传送的数据是以数据块或数据流的形式传输;在CE-ATA设备上传送的数据也是以数据块的形式传输。3SDIO的原理及实现方法3.1原理SDIO包含2个部分:●SDIO适配器模块:实现所有MMC/SD/SDI/O卡的相关功能,如时钟的产生、命令和数据的传送。●AHB总线接口:操作SDIO适配器模块中的寄存器,并产生中断和DMA请求信号。图3-1SDIO框图复位后默认情况下SDIO_D0用于数据传输。初始化后主机可以改变数据总线的宽度。如果一个多媒体卡接到了总线上,则SDIO_D0、SDIO_D[3:0]或SDIO_D[7:0]可以用于数据传输。MMC版本V3.31和之前版本的协议只支持1位数据线,所以只能用SDIO_D0。如果一个SD或SDI/O卡接到了总线上,可以通过主机配置数据传输使用SDIO_D0或SDIO_D[3:0]。所有的数据线都工作在推挽模式。SDIO_CMD有两种操作模式:●用于初始化时的开路模式(仅用于MMC版本V3.31或之前版本)桂林电子科技大学实训(论文)报告用纸第10页共24页●用于命令传输的推挽模式(SD/SDI/O卡和MMCV4.2在初始化时也使用推挽驱动)SDIO_CK是卡的时钟:每个时钟周期在命令和数据线上传输1位命令或数据。对于多媒体卡V3.31协议,时钟频率可以在0MHz至20MHz间变化;对于多媒体卡V4.0/4.2协议,时钟频率可以在0MHz至48MHz间变化;对于SD或SDI/O卡,时钟频率可以在0MHz至25MHz间变化。SDIO使用两个时钟信号:●SDIO适配器时钟(SDIOCLK=HCLK)●AHB总线时钟(HCLK/2)下表适用于多媒体卡/SD/SDI/O卡总线:表3-1SDIO引脚定义3.2SDIO适配器下图是简化的SDIO适配器框图:图3-2SDIO适配器●命令通道状态机(CPSM)当写入命令寄存器并设置了使能位,开始发送命令。命令发送完成时,命令通道状态机(CPSM)设置状态标志并在不需要响应时进入空闲状态(见下图)。当收到响应后,接收到的CRC码将会与内部产生的CRC码比较,然后设置相应的状态标志。当进入等待(Wait)状态时,命令定时器开始运行;当CPSM进入接收(Receive)状态之前,产生了超时,则设置超时标志并进入空闲(Idle)状态。●命令格式命令:命令是用于开始一项操作。主机向一个指定的卡或所有的卡发出带地桂林电子科技大学实训(论文)报告用纸第11页共24页址的命令或广播命令(广播命令只适合于MMCV3.31或之前的版本)。命令在CMD线上串行传送。所有命令的长度固定为48位,下表给出了多媒体卡、SD存储卡和SDIO卡上一般的命令格式。CE-ATA命令是MMCV4.2命令的扩充,所以具有相同的格式。命令通道操作于半双工模式,这样命令和响应可以分别发送和接收。如果CPSM不处在发送状态,SDIO_CMD输出处于高阻状态。SDIO_CMD上的数据与SDIO_CK的上升沿同步。3.3SDIO卡识别过程多媒体卡和SD卡的卡识别过程是有区别的;对于多媒体卡,卡识别过程以时钟频率Fod开始,所有SDIO_CMD输出为开路驱动,允许在这个过程中的卡的并行连接,识别过程如下:1.总线被激活2.SDIO卡主机广播发送SEND_OP_COND(CMD1)命令,并接收操作条件3.得到的响应是所有卡的操作条件寄存器内容的“线与”4.不兼容的卡会被置于非激活状态5.SDIO卡主机广播发送ALL_SEND_CID(CMD2)至所有激活的卡6.所有激活的卡同时串行地发送他们的CID号,那些检测到输出的CID位与命令线上的数据不相符的卡必须停止发送,并等待下一个识别周期。最终只有一个卡能够成功地传送完整的CID至SDIO卡主机并进入识别状态。7.SDIO卡主机发送SET_RELATIVE_ADDR(CMD3)命令至这个卡,这个新的地址被称为相对卡地址(RCA),它比CID短,用于对卡寻址。至此,这个卡转入待机状态,并不再响应新的识别过程,同时它的输出驱动从开路转变为推挽模式。8.SDIO卡主机重复上述步骤5至7,直到收到超时条件。对于SD卡而言,卡识别过程以时钟频率Fod开始,所有SDIO_CMD输出为推挽驱动而不是开路驱动,识别过程如下:1.总线被激活2.SDIO卡主机广播发送SEND_APP_OP_COND(ACMD41)命令3.得到的响应是所有卡的操作条件寄存器的内容4.不兼容的卡会被置于非激活状态5.SDIO卡主机广播发送ALL_SEND_CID(CMD2)至所有激活的卡6.所有激活的卡发送回他们唯一卡识别号(CID)并进入识别状态。7.SDIO卡主机发送SET_RELATIVE_ADDR(CMD3)命令和一个地址到一个激活的卡,这个新的地址被称为相对卡地址(RCA),它比CID短,用于对卡寻址。至此,这个卡转入待机状态。SDIO卡主机可以再次发送该命令更改RCA,卡的RCA将是最后一次的赋值。8.SDIO卡主机对所有激活的卡重复上述步骤5至7。对于SDI/O卡而言,卡识别过程如下:1.总线被激活2.SDIO卡主机发送IO_SEND_OP_COND(CMD5)命令3.得到的响应是卡的操作条件寄存器的内容桂林电子科技大学实训(论文)报告用纸第12页共24页4.不兼容的卡会被置于非激活状态5.SDIO卡主机发送SET_RELATIVE_ADDR(CMD3)命令和一个地址到一个激活的卡,这个新的地址被称为相对卡地址(RCA),它比CID短,用于对卡寻址。至此,这个卡转入待机状态。SDIO卡主机可以再次发送该命令更改RCA,卡的RCA将是最后一次的赋值。3.4SDIO写数据块执行写数据块命令(CMD24-27)时,主机把一个或多个数据块从主机传送到卡中,同时在每个数据块的末尾传送一个CRC码。一个支持写数据块命令的卡应该始终能够接收由WRITE_BL_LEN定义的数据块。如果CRC校验错误,卡通过SDIO_D信号线指示错误,传送的数据被丢弃而不被写入,所有后续(在多块写模式下)传送的数据块将被忽略。如果主机传送部分数据,而累计的数据长度未与数据块对齐,当不允许块错位(未设置CSD的参数WRITE_BLK_MISALIGN),卡将在第一个错位的块之前检测到块错位错误(设置状态寄存器中的ADDRESS_ERROR错误位)。当主机试图写一个写保护区域时,写操作也会被中止,此时卡会设置WP_VIOLATION位。设置CID和CSD寄存器不需要事先设置块长度,传送的数据也是通过CRC保护的。如果CSD或CID寄存器的部分是存储在ROM中,则这个不能更改的部分必须与接收缓冲区的对应部分相一致,如果有不一致之处,卡将报告一个错误同时不修改任何寄存器的内容。有些卡需要长的甚至不可预计的时间完成写一个数据块,在接收一个数据块并完成CRC检验后,卡开始写操作,如果它的写缓冲区已经满并且不能再从新的WRITE_BLOCK命令接受新的数据时,它会把SDIO_D信号线拉低。主机可以在任何时候使用SEND_STATUS(CMD13)查询卡的状态,卡将返回当前状态。READY_FOR_DATA状态位指示卡是否可以接受新的数据或写操作是否还在进行。主机可以使用CMD7(选择另一个卡)不选中某个卡,而把这个卡置于断开状态,这样可以释放SDIO_D信号线而不中断未完成的写操作;当重新选择了一个卡,如果写操作仍然在进行并且写缓冲区仍不能使用,它会重新通过拉低SDIO_D信号线指示忙的状态。3.5SDIO读数据块在读数据块模式下,数据传输的基本单元是数据块,它的大小在CSD中(READ_BL_LEN)定义。如果设置了READ_BL_PARTIAL,同样可以传送较小的数据块,较小数据块是指开始和结束地址完全包含在一个物理块中,READ_BL_LEN定义了物理块的大小。为保证数据传输的正确,每个数据块后都有一个CRC校验码。CMD17(READ_SINGLE_BLOCK)启动一次读数据块操作在传输结束后卡返回到发送状态。CMD18(READ_MULTIPLE_BLOCK)启动一次连续多个数据块的读操作。主机可以在多数据块读操作的任何时候中止操作,而不管操作的类型。发送桂林电子科技大学实训(论文)报告用纸第13页共24页停止传输命令即可中止操作。如果在多数据块读操作中(任一种类型)卡检测到错误(例如:越界、地址错位或内部错误),它将停止数据传输并仍处于数据状态;此时主机必须发送停止传输命令中止操作。在停止传输命令的响应中报告读错误。如果主机发送停止传输命令时,卡已经传输完一个确定数目的多个数据块操作中的最后一个数据块,因为此时卡已经不在数据状态,主机会得到一个非法命令的响应。如果主机传输部分数据块,而累计的数据长度不能与物理块对齐同时不允许块错位,卡会在出现第一个未对齐的块时检测出一个块对齐错误,并在状态寄存器中设置ADDRESS_ERROR错误标志。4FatFS文件系统4.1FatFS文件系统简介FAFFS是面向小型嵌入式系统的一种通用的FAT文件系统。FATFS完全是由AISIC语言编写并且完全独立于底层的I/O介质。因此它可以很容易地不加修改地移植到其他的处理器当中,如8051、PIC、AVR、SH、Z80、H8、ARM等。FATFS支持FAT12、FAT16、FAT32等格式,所以我们利用前面写好的SDIO驱动把FATFS文件系统代码移植到工程之中,就可以利用文件系统的各种函数,对已格式化的SD卡进行读写文件了。4.2FatFS文件系统移植4.2.1移植前工作在移植FATFS文件系统之前,我们先要到FAT的官网获取源码,版本为R0.07C。解压之后可看到里面有doc和src这两个文件夹。doc文件夹里面是一些使用文档,src里面是文件系统的源码。桂林电子科技大学实训(论文)报告用纸第14页共24页图4-1FATFS源码4.2.2开始移植首先我们要获取一个完全没有修改过的文件系统源码,然后在10-MicroSD卡这个文件夹下的实验代码下移植,这个实验代码实现的是卡的底层的块操作。注意,我们在移植这个文件系统的过程中会尽量保持文件系统源码的纯净,尽量做到在修改最少量的源码的情况下移植成功。FATFS模块在移植的时候,我们一般只需要修改2个文件,即ffconf.h和diskio.c。FATFS模块的所有配置项都是存放在ffconf.h里面,我们可以通过配置里面的一些选项,来满足自己的需求。接下来我们介绍几个重要的配置选项。1)_FS_TINY。这个选项在R0.07版本中开始出现,之前的版本都是以独立的C文件出现(FATFS和TinyFATFS),有了这个选项之后,两者整合在一起了,使用起来更方便。我们使用FATFS,所以把这个选项定义为0即可。2)_FS_READONLY。这个用来配置是不是只读,本章我们需要读写都用,所以这里设置为0即可。3)_USE_STRFUNC。这个用来设置是否支持字符串类操作,比如f_putc,f_puts等,本章我们需要用到,故设置这里为1。4)_USE_MKFS。这个用来定时是否使能格式化,本章需要用到,所以设置这里为1。5)_USE_FASTSEEK。这个用来使能快速定位,我们设置为1,使能快速定位。桂林电子科技大学实训(论文)报告用纸第15页共24页6)_CODE_PAGE。这个用于设置语言类型,包括很多选项(见FATFS官网说明),我们这里设置为936,即简体中文(GBK码,需要c936.c文件支持,该文件在option文件夹)。7)_USE_LFN。该选项用于设置是否支持长文件名(还需要_CODE_PAGE支持),取值范围为0~3。0,表示不支持长文件名,1~3是支持长文件名,但是存储地方不一样,我们选择使用3,通过ff_memalloc函数来动态分配长文件名的存储区域。8)_VOLUMES。用于设置FATFS支持的逻辑设备数目,我们设置为2,即支持2个设备。9)_MAX_SS。扇区缓冲的最大值,一般设置为512。下面我们来讲讲FATFS的移植,FATFS的移植主要分为3步:①数据类型:在integer.h里面去定义好数据的类型。这里需要了解你用的编译器的数据类型,并根据编译器定义好数据类型。②配置:通过ffconf.h配置FATFS的相关功能,以满足你的需要。③函数编写:打开diskio.c,进行底层驱动编写,一般需要编写6个接口函数。通过以上三步,我们即可完成对FATFS的移植。第一步,我们使用的是MDK3.80a编译器,器数据类型和integer.h里面定义的一致,所以此步,我们不需要做任何改动。第二步,关于ffconf.h里面的相关配置,我们在前面已经有介绍(之前介绍的9个配置),我们将对应配置修改为我们介绍时候的值即可,其他的配置用默认配置。第三步,因为FATFS模块完全与磁盘I/O层分开,因此需要下面的函数来实现底层物理磁盘的读写与获取当前时间。底层磁盘I/O模块并不是FATFS的一部分,并且必须由用户提供。5测试及结果5.1JTAG仿真器介绍J-Link是支持仿真ARM内核芯片的JTAG仿真器。配合IAREWARM,ADS,KEIL,WINARM,RealView等集成开发环境支持所有ARM7/ARM9内核芯片的仿真,通过RDI接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。DQ电子推出的J-LinkV7仿真器采用原版固件,参照原版原理图,经过DQ团队的长时间精工制作,板型合理,元件布局美观大方,走线严谨精致,并且每一个产品都经过功能和老化测试,功能完全与原版一致,支持在线升级。J-LinkARM主要特点:·IAREWARM集成开发环境无缝连接的JTAG仿真器。桂林电子科技大学实训(论文)报告用纸第16页共24页·支持所有ARM7/ARM9内核的芯片,以及cortexM3,包括Thumb模式。·支持ADS,IAR,KEIL,WINARM,REALVIEW等几乎所有的开发环境。·下载速度高达ARM7:600kB/s,ARM9:550kB/s,通过DCC最高可达800kB/s最高JTAG速度12MHz。·目标板电压范围1.2V-3.3V。·自动速度识别功能。·监测所有JTAG信号和目标板电压。·完全即插即用。·使用USB电源(可接通J12跳线给目标板供电,出厂时未接通)。·带USB连接线和20芯JTAG连接排线。·支持多JTAG器件串行连接。·标准20芯JTAG仿真插头。·带J-LinkTCP/IPserver,允许通过TCP/IP网络使用J-Link支持的内核:·ARM7TDMI(Rev1);·ARM7TDMI(Rev3);·ARM7TDMI-S(Rev4);·ARM720T;·CORTEXM3。5.2现象及结果给硬件系统供电(5V),插上JLINK,插上串口线(两头都是母的交叉线),插上MicroSD卡,打开超级终端,配置超级终端为1152008-N-1,将编译好的程序下载到硬件平台,即可看到超级终端打印出如下信息:桂林电子科技大学实训(论文)报告用纸第17页共24页图5-1测试效果图桂林电子科技大学实训(论文)报告用纸第18页共24页6结论很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,并且有几种体积的尺寸可供选择(标准的SD卡尺寸,以及TF卡尺寸等),能满足不同应用的要求。本实训的作品是利用基于ARMCotex-M3内核的嵌入式处理器STM32自带的SDIO硬件接口来驱动SD卡,并结合文件系统FATFSR0.07C来完成一个基于嵌入式ARM的SD卡读写的作品,现实向SD卡写入一个txt文件,并读取SD卡的文件目标并通过串口打印到PC机显示。通过本实训,我更加掌握了嵌入式ARMSTM32的外围应用设计以及SD卡的驱动和文件系统的使用方法。桂林电子科技大学实训(论文)报告用纸第19页共24页致谢本实训从最初的选题到系统设计、程序编写直到论文的撰写过程中都得到了孙安青老师的悉心指导与指正,您细心教导和热心关怀使得我能够顺利完成本次实训任务。孙老师热心的工作态度、严谨的治学态度,也使我受益匪浅,终生难忘。同时要感谢我们班各位同学,你们细心地给我分析该设计的设计流程,耐心地讲解程序运行过程,并给设计的不足提出很好的建议和方针,是你们的帮助,让我对本设计理解更透彻,在此表示衷心地感谢.大学里我并不孤独,在老师和同学们陪伴下,我度过了愉快的四年,在此衷心感谢大家桂林电子科技大学实训(论文)报告用纸第20页共24页参考文献[1]康华光.电子技术基础模拟部分第四版[M].北京:高等教育出版社,1999.6.[2]阎石.数字电子技术基础第四版[M].北京:高等教育出版社,1999.6.[3]王福瑞等.单片微机测控系统设计大全[M].北京航空航天大学出版社,1998(331-337).[4]宁改娣,杨拴科.DSP控制器原理及应用[M].科学出版社,2002.[5]周立功等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.1.[6]周立功等.ARM嵌入式系统实验教程[M].北京:北京航空航天大学出版社,2005.1.[7]唐清善.ProtelDXP高级实例教程[M].中国水利水电出版社,2004.4.[8]罗浩等.一种新的基于ARM的数据采集系统设计[J].信阳师范学院学报(自然科学版),2006.4.[9]秦伟等.基于ARM处理器的数据采集系统的设计[J].自动化技术与应用.2006年第1期.[10]杜春雷.ARM体系结构与编程.清华大学出版社,2003.[11]李宁.ARM开发工具ReaIViewMDK使用入门[M].北京航空航天大学出版社,2008.[12]李宁.基于MDK的STM32处理器开发应用[M].北京航空航天大学出版社,2008.[13]刘黎明等.单片机与嵌入式系统应用[J].英文刊名MICROCONTROLLER&EMBEDDEDSYSTEM.2002(7).[14]赵葵银,王辉,吴俊.电压空间矢量控制的三相PWM整流器的研究[J].上海第二工业大学学报,2003(2):43-50.[15]MalinowskiMariusz.Jasin\'skiMarek,KazmierkowskiMarianP.SimpleDirectPowerControlofThree-PhasePWMRectifierUsingSpace-VectorModulation[J].IEEETransactionsonIndustrial,Electronics,2004,51(2):447-454.桂林电子科技大学实训(论文)报告用纸第21页共24页附录一硬件原理图1.电源部分:2.STM32处理器部分:3.SD卡部分:4.串口通信部分:附录二部分程序代码/Includes------------------------------------------------------------------/#include"stm32f10x.h"#include"sdio_sdcard.h"#include"usart1.h"#include"ff.h"桂林电子科技大学实训(论文)报告用纸第22页共24页intres;inta;FILfsrc,fdst;FATFSfs;UINTbr,bw;//FileR/WcountBYTEbuffer[512];//filecopybufferBYTEtextFileBuffer[]="感谢您选用一信STM32开发板!^_^\\r\\n";intmain(void){/USART1configUSART1_Config();/InterruptConfigNVIC_Configuration();printf("\\r\\n这是何民兆和陈长云的嵌入式ARM实训作品\\n");printf("\\r\\n这是一个MicroSD卡文件系统实验(FATFSR0.09)\\n");printf("\\r\\ndisk_initializestarting......\\n");f_mount(0,&fs);res=f_open(&fdst,"0:/Demo.TXT",FA_CREATE_NEWFA_WRITE);if(res==FR_OK){/将缓冲区的数据写到文件中res=f_write(&fdst,textFileBuffer,sizeof(textFileBuffer),&bw);printf("\\r\\n文件创建成功\\n");printf("\\r\\n文件名为:Demo.TXT\\n");/关闭文件f_close(&fdst);}elseif(res==FR_EXIST){printf("\\r\\n文件已经存在\\n");printf("\\r\\n文件名为:Demo.TXT\\n");}桂林电子科技大学实训(论文)报告用纸第23页共24页/----------------将刚刚新建的文件里面的内容打印到超级终端-----------------------//以只读的方式打开刚刚创建的文件res=f_open(&fdst,"0:/Demo.TXT",FA_OPEN_EXISTINGFA_READ);/打开文件br=1;a=0;for(;;){for(a=0;a<512;a++)/清缓冲区/buffer[a]=0;res=f_read(&fdst,buffer,sizeof(buffer),&br);/将文件里面的内容读到缓冲区printf("\\r\\n%s",buffer);if(resbr==0)break;/错误或者到了文件尾}f_close(&fdst);/关闭打开的文件while(1){}}/(C)COPYRIGHT2012WildFireTeamENDOFFILE/',)


  • 编号:1700774465
  • 分类:其他文档
  • 软件: wps,office word
  • 大小:26页
  • 格式:docx
  • 风格:商务
  • PPT页数:759168 KB
  • 标签:

广告位推荐

相关其他文档更多>