版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 桂林电子科技大学实训(论文)报告用纸 第 1 页 共 2 页 摘 要 SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半 导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数 码相机、个人数码助理(PDA)和多媒体播放器等。本实训的作品是利用基于ARM Cotex-M3内核的嵌入式处理器STM32自带的SDIO硬件接口来驱动SD卡,并结合文 件系统 FATFS R0.07C来完成一个基于嵌入式ARM的SD卡读写的作品,现实向SD 卡写入一个txt文件,并读取SD卡的文件目标并通过串口打印到PC机显示。 关键词:嵌入式;ARM;ST
2、M32;SD 卡;文件系统 桂林电子科技大学实训(论文)报告用纸 第 2 页 共 2 页 AbstractAbstract SD Card (Secure Digital Memory Card) Chinese translation for Secure Digital Card, it is a kind of based on semiconductor flash Memory of a new generation of Memory device, it is widely used in portable devices, such as Digital cameras, pe
3、rsonal Digital assistant (PDA) and multimedia player, etc. This training work is based on ARM Cotex - M3 kernel embedded processor STM32 own SDIO hardware interface to drive the SD card, and combined with the file system FATFS R0.07 C to complete a based on embedded ARM of the SD card, speaking, rea
4、ding and writing work, reality to SD card to a TXT file, and read SD card file goals and through the serial port print to PC display. Key words:embedded;ARM;STM32; SD Card; File system 桂林电子科技大学实训(论文)报告用纸 第 0 页 共 1 页 目 录 1 前言前言 .1 1.1 ARM 应用背景.1 1.2 研究内容.2 1.3 研究成果.3 2 STM32 处理器概述处理器概述.3 2.1 STM32 简介
5、.3 2.1.1 STM32F103VET6 的参数.4 2.2 内部资源.6 2.3 CORTEX-M3 内核简介.6 2.4 STM32 SDIO 简介.8 2.4.1 SDIO 简介 .8 2.4.2 SDIO 功能特性.8 3 SDIO 的原理及实现方法的原理及实现方法.9 3.1 原理.9 3.2 SDIO 适配器.10 3.3 SDIO 卡识别过程.11 3.4 SDIO 写数据块.12 3.5 SDIO 读数据块.13 4 FATFS 文件系统文件系统.13 4.1 FATFS 文件系统简介.13 4.2 FATFS 文件系统移植.14 4.2.1 移植前工作 .14 4.2.2
6、 开始移植 .14 5 测试及结果测试及结果 .16 5.1 JTAG 仿真器介绍.16 5.2 现象及结果.17 6 结论结论 .18 致致 谢谢 .19 参考文献参考文献 .20 桂林电子科技大学实训(论文)报告用纸 第 0 页 共 24 页 ARM 处理器 ADC I/O 接口 键盘 RA M LED 传 感器 转 换器 LCD DAC EP ROM 主机 1 前言前言 1.11.1 ARMARM 应用背景应用背景 如今,学习一种处理器的就有许多 ARM 内核的处理器可供使用,现在社 会已步入嵌入式学习阶段。在嵌入式领域,8 位处理器已经不再胜任一些复杂 的应用,比如 GUI,TCP/I
7、P,FILESYSTEM 等,而 ARM 芯片凭借强大的处理 能力和极低的功耗,非常适合这些场合。现在越来越多的产品在选型的时候考 虑到使用 ARM 处理器,ARM 的应用是相当的广泛。 ARM 的嵌入式控制应用如:汽车、电子设备、保安设备、大容量存储 器、调制解调器、打印机等。一个典型的 ARM 嵌入式工业控制系统的功能模块 如图 1-1 所示。 输入输出 图 1-1 ARM 嵌入式工业控制系统的功能模块 目前已有超过 85的无线通信设备采用了 ARM 技术,ARM 以其高性能和低 成本,在该领域的地位日益巩固。ARM 在此方面的应用如:手提式计算机、移 动电话、PDA 等。 随着宽带技术的
8、推广,采用 ARM 技术的 ADSL 芯片正逐步获得竞争优势。此 外,ARM 在语音及视频处理上进行了优化,并获得广泛支持。 ARM 技术在目前流行的数字音频播放器、数字机顶盒、游戏机、数码相机、 数字式电视机、GPS、机顶盒中得到广泛采用。现在流行的数码相机和打印机中 绝大部分采用 ARM 技术,手机中的 32 位 SIM 智能卡也采用了 ARM 技术。如图 1-2 所示是基于 ARM 技术的数码相机的功能模块9。 桂林电子科技大学实训(论文)报告用纸 第 1 页 共 24 页 ARM 处理器 LCD 控制器 主机 接口 CCDADC 控制电 路和编码电 路 存 储器 图 1-2 基于 AR
9、M 技术的数码相机的功能模块 1.21.2 研究内容研究内容 本设计旨在加深对 ARM 的学习,巩固大学四年所学专业知识,提升动手 能力和思考问题解决问题的能力。本设计选择意法半导体的 STM32F103 系列处 理器,通过自制 STM32 开发板的过程,和对 STM32F103C8T6 芯片的研究学习, 掌握其各种外设功能。 STM32F103VET6具有一个SDIO接口。SD/SDIO/MMC主机接口可以支持MMC卡系 统规范4.2版中的3个不同的数据总线模式:1位(默认)、4位和8位。在8位模式 下,该接口可以使数据传输速率达到48MHz,该接口兼容SD存储卡规范2.0版。 SDIO存储
10、卡规范2.0版支持两种数据总线模式:1位(默认)和4位。 目前的芯片版本只能一次支持一个 SD/SDIO/MMC 4.2 版的卡,但可以同时 支持多个 MMC 4.1 版或之前版本的卡。除了 SD/SDIO/MMC,这个接口完全与 CE- ATA 数字协议版本 1.1 兼容。 本实训的作品是利用基于 ARM Cotex-M3 内核的嵌入式处理器 STM32 自带的 SDIO 硬件接口来驱动 SD 卡,并结合文件系统 FATFS R0.07C 来完成一个基于嵌 入式 ARM 的 SD 卡读写的作品,现实向 SD 卡写入一个 txt 文件,并读取 SD 卡的 文件目标并通过串口打印到 PC 机显示
11、。 本文第一章讲述了该论文写作背景,主要阐述了 ARM 应用范畴,以及该论 文研究的内容;第二章讲述了该研究课题使用的核心芯片 STM32F103VET6 的各 桂林电子科技大学实训(论文)报告用纸 第 2 页 共 24 页 项参数;第三章着重介绍了 SDIO 的原理及实现方法;第四章着重介绍了 FAT 文 件系统的原理;第五章介绍了测试方法和结果。 1.31.3 研究成果研究成果 给硬件系统供电(5V),插上 JLINK,插上串口线(两头都是母的交叉线), 插上 MicroSD 卡,打开超级终端,配置超级终端为 115200 8-N-1,将编译好的 程序下载到硬件平台,即可看到超级终端打印出
12、如下信息: 图 1-3 显示结果图 2 STM32 处理器概述处理器概述 2.12.1 STM32STM32 简介简介 STM32F103xx 增强型系列使用高性能的 ARM/Cortex-M3/32 位的 RISC 内核, 工作频率为 72MHz,内置高速存储器(高达 128K 字节的闪存和 20K 字节的 SRAM), 丰富的增强 I/O 端口和联接到两条 APB 总线的外设。所有型号的器件都包含 2 个 12 位的 ADC 、3 个通用 16 位定时器和一个 PWM 定时器,还包含标准和先进 的通信接口:多达 2 个 I2C 和 SPI、3 个 USART、一个 USB 和一个 CAN。
13、 STM32F103xx 增强型系列工作于-40至+105 的温度范围,供电电压 2.0V 至 3.6V,一系列的省电模式保证低功耗应用的要求。 桂林电子科技大学实训(论文)报告用纸 第 3 页 共 24 页 完整的 STM32F103xx 增强型系列产品包括从 36 脚至 100 脚的五种不同封 装形式;根据不同的封装形式,器件中的外设配置不尽相同。下面给出了该系 列产品中所有外设的基本介绍。 这些丰富的外设配置,使得 STM32F103xx 增强型微控制器适合于多种应用 场合: 电机驱动和应用控制 ; 医疗和手持设备 ; PC 外设和 GPS 平台; 工业应用:可编程控制器、变频器、打印机
14、和扫描仪 ; 警报系统,视频对讲,和暖气通风空调系统 ; 2.1.1 STM32F103VET6 的参数 STM32F103VET6 芯片的参数如表 2-1 桂林电子科技大学实训(论文)报告用纸 第 4 页 共 24 页 表 2-1 器件功能和配置(STM32F103xx 增强型) 芯片引脚图如图 2-2: 图 2-2 STM32F103xx 增强型 LQPFP100 管脚图 桂林电子科技大学实训(论文)报告用纸 第 5 页 共 24 页 2.22.2 内部资源内部资源 STM32 有丰富的内部资源,如下所示: RealView MDK(Miertocontroller Development
15、 Kit)基于 ARM 微控制器 的专业嵌入式开发工具; 内置闪存存储器; 内置 SRAM; 嵌套的向量式中断控制器(NVIC); 外部中断/事件控制器(EXTI); 时钟和启动; 自举模式; DMA ; RTC(实时时钟)和后备寄存器 ; 窗口看门狗; I2C 总线 ; 通用同步/异步接受发送器(USART); 串行外设接口(SPI); 控制器区域网络(CAN) ; 通用串行总线(USB); 通用输入输出接口(GPIO); ADC(模拟/数字转换器) ; 温度传感器; 串行线 JTAG 调试口(SWJ-DP)。 2.32.3 Cortex-M3Cortex-M3 内核简介内核简介 Corte
16、x-M3 内核包含一个适用于传统 Thumb 和新型 Thumb-2 指令的译码器、 一个支持硬件乘法和硬件除法的先进 ALU、控制逻辑和用于连接处理器其他部 件的接口。Cortex-M3 处理器是首款基于 ARMv7-M 架构的 ARM 处理器。中央 Cortex-M3 内核使用 3 级流水线哈佛架构,运用分支预测、单周期乘法和硬件 桂林电子科技大学实训(论文)报告用纸 第 6 页 共 24 页 除法功能实现了出色的效率(1.25DMIPS/MHz) 。Cortex-M3 处理器是一个 32 位 处理器,带有 32 位宽的数据路径、寄存器库和基于传统 ARM7 处理器的系统只 支持访问对齐的
17、数据,沿着对齐的字边界即可对数据进行访问和存储。Cortex- M3 处理器采用非对齐数据访问方式,使非对齐数据可以在单核访问中进行传输。 Cortex-M3 处理器是专为那些对成本和功耗非常敏感但同时对性能要求又 相当高的应用而设计的。凭借缩小的内核尺寸和出色的中断延迟性能、集成的 系统部件、灵活的配置、简单的高级编程和强大的软件系统,Cortex-M3 处理 器将成为从复杂的芯片系统到低端微控制器等各种系统的理想解决方案。表 2-3 为 Cortex-M3 处理器与 ARM7 作比较。 表 2-3 Cortex-M3 与 ARM7 相比较 桂林电子科技大学实训(论文)报告用纸 第 7 页
18、共 24 页 2.42.4 STM32STM32 SDIOSDIO 简介简介 .1 SDIOSDIO 简介简介 STM32F103VET6 具有一个 SDIO 接口。SD/SDIO/MMC 主机接口可以支持 MMC 卡系统规范 4.2 版中的 3 个不同的数据总线模式:1 位(默认)、4 位和 8 位。在 8 位模式下,该接口可以使数据传输速率达到 48MHz,该接口兼容 SD 存储卡规范 2.0 版。SDIO 存储卡规范 2.0 版支持两种数据总线模式:1 位(默认) 和 4 位。 目前的芯片版本只能一次支持一个 SD/SDIO/MMC 4.2 版的卡,但可以同 时支持多个
19、MMC 4.1 版或之前版本的卡。除了 SD/SDIO/MMC,这个接口完全 与 CE-ATA 数字协议版本 1.1 兼容。 .2 SDIOSDIO 功能特性功能特性 (1)主要功能 SD/SDIO MMC 卡主机模块(SDIO)在 AHB 外设总线和多媒体卡(MMC)、 SD 存储卡、SDIO 卡和 CE-ATA 设备间提供了操作接口。 多媒体卡系统规格书由 MMCA 技术委员会发布,可以在多媒体卡协会的 网站上()获得。 CE-ATA 系统规格书可以在 CE-ATA 工作组的网站上()获得。 SDIO 的主要功能如下: 与
20、多媒体卡系统规格书版本 4.2 全兼容。支持三种不同的数据总线模式: 1 位(默认)、4 位和 8 位。 与较早的多媒体卡系统规格版本全兼容(向前兼容)。 与 SD 存储卡规格版本 2.0 全兼容。 与 SD I/O 卡规格版本 2.0 全兼容:支持良种不同的数据总线模式:1 位 (默认)和 4 位。 完全支持 CE-ATA 功能(与 CE-ATA 数字协议版本 1.1 全兼容)。 8 位总线模式下数据传输速率可达 48MHz。 数据和命令输出使能信号,用于控制外部双向驱动器。 (2)SDIO 总线拓扑 总线上的通信是通过传送命令和数据实现。 在多媒体卡/SD/SD I/O 总线上的基本操作是
21、命令/响应结构,这样的总线操 桂林电子科技大学实训(论文)报告用纸 第 8 页 共 24 页 作在命令或总线机制下实现信息交换;另外,某些操作还具有数据令牌。 在 SD/SDIO 存储器卡上传送的数据是以数据块的形式传输;在 MMC 上传 送的数据是以数据块或数据流的形式传输;在 CE-ATA 设备上传送的数据也是 以数据块的形式传输。 3 SDIO 的原理及实现方法的原理及实现方法 3.13.1 原理原理 SDIO 包含 2 个部分: SDIO 适配器模块:实现所有 MMC/SD/SD I/O 卡的相关功能,如时钟的 产生、命令和数据的传送。 AHB 总线接口:操作 SDIO 适配器模块中的
22、寄存器,并产生中断和 DMA 请求信号。 图 3-1 SDIO 框图 复位后默认情况下 SDIO_D0 用于数据传输。初始化后主机可以改变数据总 线的宽度。 如果一个多媒体卡接到了总线上,则 SDIO_D0、SDIO_D3:0或 SDIO_D7:0可以用于数据传输。MMC 版本 V3.31 和之前版本的协议只支持 1 位数据线,所以只能用 SDIO_D0。 如果一个 SD 或 SD I/O 卡接到了总线上,可以通过主机配置数据传输使用 SDIO_D0 或 SDIO_D3:0。所有的数据线都工作在推挽模式。 SDIO_CMD 有两种操作模式: 用于初始化时的开路模式(仅用于 MMC 版本 V3.
23、31 或之前版本) 用于命令传输的推挽模式(SD/SD I/O 卡和 MMC V4.2 在初始化时也使 桂林电子科技大学实训(论文)报告用纸 第 9 页 共 24 页 用推挽驱动) SDIO_CK 是卡的时钟:每个时钟周期在命令和数据线上传输 1 位命令或数 据。对于多媒体卡 V3.31 协议,时钟频率可以在 0MHz 至 20MHz 间变化;对于 多媒体卡 V4.0/4.2 协议,时钟频率可以在 0MHz 至 48MHz 间变化;对于 SD 或 SD I/O 卡,时钟频率可以在 0MHz 至 25MHz 间变化。 SDIO 使用两个时钟信号: SDIO 适配器时钟(SDIOCLK=HCLK)
24、 AHB 总线时钟(HCLK/2) 下表适用于多媒体卡/SD/SD I/O 卡总线: 表 3-1 SDIO 引脚定义 3.23.2 SDIOSDIO 适配器适配器 下图是简化的 SDIO 适配器框图: 图 3-2 SDIO 适配器 命令通道状态机(CPSM) 当写入命令寄存器并设置了使能位,开始发送命令。命令发送完成时,命 令通道状态机(CPSM)设置状态标志并在不需要响应时进入空闲状态(见下图)。 当收到响应后,接收到的 CRC 码将会与内部产生的 CRC 码比较,然后设置相 应的状态标志。当进入等待(Wait)状态时,命令定时器开始运行;当 CPSM 进 桂林电子科技大学实训(论文)报告用
25、纸 第 10 页 共 24 页 入接收(Receive)状态之前,产生了超时,则设置超时标志并进入空闲(Idle)状态。 命令格式 命令:命令是用于开始一项操作。主机向一个指定的卡或所有的卡发出带 地址的命令或广播命令(广播命令只适合于 MMC V3.31 或之前的版本)。命令在 CMD 线上串行传送。所有命令的长度固定为 48 位,下表给出了多媒体卡、SD 存储卡和 SDIO 卡上一般的命令格式。CE-ATA 命令是 MMC V4.2 命令的扩充, 所以具有相同的格式。 命令通道操作于半双工模式,这样命令和响应可以分别 发送和接收。如果 CPSM 不处在发送状态,SDIO_CMD 输出处于高
26、阻状态。 SDIO_CMD 上的数据与 SDIO_CK 的上升沿同步。 3.3 SDIO 卡识别过程 多媒体卡和 SD 卡的卡识别过程是有区别的;对于多媒体卡,卡识别过程 以时钟频率 Fod 开始,所有 SDIO_CMD 输出为开路驱动,允许在这个过程中 的卡的并行连接,识别过程如下: 1. 总线被激活 2. SDIO 卡主机广播发送 SEND_OP_COND(CMD1)命令,并接收操作条件 3. 得到的响应是所有卡的操作条件寄存器内容的“线与” 4. 不兼容的卡会被置于非激活状态 5. SDIO 卡主机广播发送 ALL_SEND_CID(CMD2)至所有激活的卡 6. 所有激活的卡同时串行地
27、发送他们的 CID 号,那些检测到输出的 CID 位与命令线上的数据不相符的卡必须停止发送,并等待下一个识别周期。最终 只有一个卡能够成功地传送完整的 CID 至 SDIO 卡主机并进入识别状态。 7. SDIO 卡主机发送 SET_RELATIVE_ADDR(CMD3)命令至这个卡,这个 新的地址被称为相对卡地址(RCA),它比 CID 短,用于对卡寻址。至此,这个 卡转入待机状态,并不再响应新的识别过程,同时它的输出驱动从开路转变为 推挽模式。 8. SDIO 卡主机重复上述步骤 5 至 7,直到收到超时条件。 对于 SD 卡而言,卡识别过程以时钟频率 Fod 开始,所有 SDIO_CMD
28、 输出 为推挽驱动而不是开路驱动,识别过程如下: 1. 总线被激活 2. SDIO 卡主机广播发送 SEND_APP_OP_COND(ACMD41)命令 3. 得到的响应是所有卡的操作条件寄存器的内容 桂林电子科技大学实训(论文)报告用纸 第 11 页 共 24 页 4. 不兼容的卡会被置于非激活状态 5. SDIO 卡主机广播发送 ALL_SEND_CID(CMD2)至所有激活的卡 6. 所有激活的卡发送回他们唯一卡识别号(CID)并进入识别状态。 7. SDIO 卡主机发送 SET_RELATIVE_ADDR(CMD3)命令和一个地址到一 个激活的卡,这个新的地址被称为相对卡地址(RCA)
29、,它比 CID 短,用于对卡 寻址。至此,这个卡转入待机状态。SDIO 卡主机可以再次发送该命令更改 RCA,卡的 RCA 将是最后一次的赋值。 8. SDIO 卡主机对所有激活的卡重复上述步骤 5 至 7。 对于 SD I/O 卡而言,卡识别过程如下: 1. 总线被激活 2. SDIO 卡主机发送 IO_SEND_OP_COND(CMD5)命令 3. 得到的响应是卡的操作条件寄存器的内容 4. 不兼容的卡会被置于非激活状态 5. SDIO 卡主机发送 SET_RELATIVE_ADDR(CMD3)命令和一个地址到一 个激活的卡,这个新的地址被称为相对卡地址(RCA),它比 CID 短,用于对
30、卡 寻址。至此,这个卡转入待机状态。SDIO 卡主机可以再次发送该命令更改 RCA,卡的 RCA 将是最后一次的赋值。 3.4 SDIO 写数据块 执行写数据块命令(CMD24-27)时,主机把一个或多个数据块从主机传送到 卡中,同时在每个数据块的末尾传送一个 CRC 码。一个支持写数据块命令的卡 应该始终能够接收由 WRITE_BL_LEN 定义的数据块。如果 CRC 校验错误,卡 通过 SDIO_D 信号线指示错误,传送的数据被丢弃而不被写入,所有后续(在多 块写模式下)传送的数据块将被忽略。 如果主机传送部分数据,而累计的数据长度未与数据块对齐,当不允许块 错位(未设置 CSD 的参数
31、WRITE_BLK_MISALIGN),卡将在第一个错位的块之 前检测到块错位错误(设置状态寄存器中的 ADDRESS_ERROR 错误位)。当主机 试图写一个写保护区域时,写操作也会被中止,此时卡会设置 WP_VIOLATION 位。 设置 CID 和 CSD 寄存器不需要事先设置块长度,传送的数据也是通过 CRC 保护的。如果 CSD 或 CID 寄存器的部分是存储在 ROM 中,则这个不能 更改的部分必须与接收缓冲区的对应部分相一致,如果有不一致之处,卡将报 告一个错误同时不修改任何寄存器的内容。有些卡需要长的甚至不可预计的时 桂林电子科技大学实训(论文)报告用纸 第 12 页 共 24
32、 页 间完成写一个数据块,在接收一个数据块并完成 CRC 检验后,卡开始写操作, 如果它的写缓冲区已经满并且不能再从新的 WRITE_BLOCK 命令接受新的数据 时,它会把 SDIO_D 信号线拉低。主机可以在任何时候使用 SEND_STATUS(CMD13)查询卡的状态,卡将返回当前状态。 READY_FOR_DATA 状态位指示卡是否可以接受新的数据或写操作是否还在进 行。主机可以使用 CMD7(选择另一个卡)不选中某个卡,而把这个卡置于断开 状态,这样可以释放 SDIO_D 信号线而不中断未完成的写操作;当重新选择了 一个卡,如果写操作仍然在进行并且写缓冲区仍不能使用,它会重新通过拉低
33、 SDIO_D 信号线指示忙的状态。 3.5 SDIO 读数据块 在读数据块模式下,数据传输的基本单元是数据块,它的大小在 CSD 中 (READ_BL_LEN)定义。如果设置了 READ_BL_PARTIAL,同样可以传送较小 的数据块,较小数据块是指开始和结束地址完全包含在一个物理块中, READ_BL_LEN 定义了物理块的大小。为保证数据传输的正确,每个数据块后 都有一个 CRC 校验码。CMD17(READ_SINGLE_BLOCK)启动一次读数据块操 作,在传输结束后卡返回到发送状态。 CMD18(READ_MULTIPLE_BLOCK)启动一次连续多个数据块的读操作。 主机可以在
34、多数据块读操作的任何时候中止操作,而不管操作的类型。发 送停止传输命令即可中止操作。 如果在多数据块读操作中(任一种类型)卡检测到错误(例如:越界、地址错 位或内部错误),它将停止数据传输并仍处于数据状态;此时主机必须发送停止 传输命令中止操作。在停止传输命令的响应中报告读错误。 如果主机发送停止传输命令时,卡已经传输完一个确定数目的多个数据块 操作中的最后一个数据块,因为此时卡已经不在数据状态,主机会得到一个非 法命令的响应。如果主机传输部分数据块,而累计的数据长度不能与物理块对 齐同时不允许块错位,卡会在出现第一个未对齐的块时检测出一个块对齐错误, 并在状态寄存器中设置 ADDRESS_E
35、RROR 错误标志。 4 FatFS 文件系统文件系统 4.14.1 FatFSFatFS 文件系统简介文件系统简介 FAFFS 是面向小型嵌入式系统的一种通用的 FAT 文件系统。FATFS 完全 桂林电子科技大学实训(论文)报告用纸 第 13 页 共 24 页 是由 AISI C 语言编写并且完全独立于底层的 I/O 介质。因此它可以很容易地不 加修改地移植到其他的处理器当中,如 8051、PIC、AVR、SH、Z80、H8、ARM 等。FATFS 支持 FAT12、FAT16、FAT32 等格式,所以我们利用前面写好的 SDIO 驱动,把 FATFS 文件系统代码移植到工程之中,就可以利
36、用文件系统的各种函数,对已 格式化的 SD 卡进行读写文件了。 4.24.2 FatFSFatFS 文件系统移植文件系统移植 .1 移植前工作移植前工作 在移植 FATFS 文件系统之前,我们先要到 FAT 的官网获取源码,版本为 R0.07C。解压之后可看到里面有 doc 和 src 这两个文件夹。doc 文件夹里面 是一些使用文档, src 里面是文件系统的源码。 图 4-1 FATFS 源码 .2 开始移植开始移植 首先我们要获取一个完全没有修改过的文件系统源码,然后在 10-MicroSD 卡这个文件夹下的实验代码下移植,这个实验代码实现的是卡的底层的块
37、操作。 注意,我们在移植这个文件系统的过程中会尽量保持文件系统源码的纯净,尽 量做到在修改最少量的源码的情况下移植成功。 FATFS 模块在移植的时候,我们一般只需要修改 2 个文件,即 ffconf.h 和 diskio.c。FATFS 模块的所有配置项都是存放在 ffconf.h 里面,我们可以通过配 置里面的一些选项,来满足自己的需求。接下来我们介绍几个重要的配置选项。 桂林电子科技大学实训(论文)报告用纸 第 14 页 共 24 页 1)_FS_TINY。这个选项在 R0.07 版本中开始出现,之前的版本都是以独 立的 C 文件出现(FATFS 和 Tiny FATFS),有了这个选项
38、之后,两者整合在 一起了,使用起来更方便。我们使用 FATFS,所以把这个选项定义为 0 即可。 2)_FS_READONLY。这个用来配置是不是只读,本章我们需要读写都用, 所以这里设置为 0 即可。 3)_USE_STRFUNC。这个用来设置是否支持字符串类操作,比如 f_putc,f_puts 等,本章我们需要用到,故设置这里为 1。 4)_USE_MKFS。这个用来定时是否使能格式化,本章需要用到,所以设 置这里为 1。 5)_USE_FASTSEEK。这个用来使能快速定位,我们设置为 1,使能快速 定位。 6)_CODE_PAGE。这个用于设置语言类型,包括很多选项(见 FATFS
39、官 网说明),我们这里设置为 936,即简体中文(GBK 码,需要 c936.c 文件支持, 该文件在 option 文件夹)。 7)_USE_LFN。该选项用于设置是否支持长文件名(还需要 _CODE_PAGE 支持),取值范围为 03。0,表示不支持长文件名,13 是支 持长文件名,但是存储地方不一样,我们选择使用 3,通过 ff_memalloc 函数来 动态分配长文件名的存储区域。 8)_VOLUMES。用于设置 FATFS 支持的逻辑设备数目,我们设置为 2, 即支持 2 个设备。 9)_MAX_SS。扇区缓冲的最大值,一般设置为 512。 下面我们来讲讲 FATFS 的移植,FAT
40、FS 的移植主要分为 3 步: 数据类型:在 integer.h 里面去定义好数据的类型。这里需要了解你用 的编译器的数 据类型,并根据编译器定义好数据类型。 配置:通过 ffconf.h 配置 FATFS 的相关功能,以满足你的需要。 函数编写:打开 diskio.c,进行底层驱动编写,一般需要编写 6 个接 口函数。 通过以上三步,我们即可完成对 FATFS 的移植。 第一步,我们使用的是 MDK3.80a 编译器,器数据类型和 integer.h 里面定 义的一致,所以此步,我们不需要做任何改动。 第二步,关于 ffconf.h 里面的相关配置,我们在前面已经有介绍(之前介 桂林电子科技
41、大学实训(论文)报告用纸 第 15 页 共 24 页 绍的 9 个配置),我们将对应配置修改为我们介绍时候的值即可,其他的配置 用默认配置。 第三步,因为 FATFS 模块完全与磁盘 I/O 层分开,因此需要下面的函数来 实现底层物理磁盘的读写与获取当前时间。底层磁盘 I/O 模块并不是 FATFS 的 一部分,并且必须由用户提供。 5 测试及结果测试及结果 5.15.1 JTAGJTAG 仿真器介绍仿真器介绍 J-Link 是支持仿真 ARM 内核芯片的 JTAG 仿真器。配合 IAR EWARM,ADS,KEIL,WINARM,RealView 等集成开发环境支持所有 ARM7/ARM9
42、内核芯片的仿真,通过 RDI 接口和各集成开发环境无缝连接,操 作方便、连接方便、简单易学,是学习开发 ARM 最好最实用的开发工具。 DQ 电子推出的 J-LinkV7 仿真器采用原版固件,参照原版原理图,经过 DQ 团队的长时间精工制作,板型合理,元件布局美观大方,走线严谨精致, 并且每一个产品都经过功能和老化测试,功能完全与原版一致,支持在线升级。 J-Link ARM 主要特点: IAR EWARM 集成开发环境无缝连接的 JTAG 仿真器。 支持所有 ARM7/ARM9 内核的芯片,以及 cortexM3,包括 Thumb 模式。 支持 ADS,IAR,KEIL,WINARM,REA
43、LVIEW 等几乎所有的开发环境。 下载速度高达 ARM7:600kB/s,ARM9:550kB/s,通过 DCC 最高可达 800 kB/s*最高 JTAG 速度 12MHz。 目标板电压范围 1.2V3.3V。 自动速度识别功能。 监测所有 JTAG 信号和目标板电压。 完全即插即用。 使用 USB 电源(可接通 J12 跳线给目标板供电,出厂时未接通)。 带 USB 连接线和 20 芯 JTAG 连接排线。 支持多 JTAG 器件串行连接。 标准 20 芯 JTAG 仿真插头。 带 J-Link TCP/IP server,允许通过 TCP/IP 网络使用 J-Link 桂林电子科技大学
44、实训(论文)报告用纸 第 16 页 共 24 页 支持的内核: ARM7TDMI(Rev 1); ARM7TDMI(Rev 3); ARM7TDMI-S(Rev 4); ARM720T ; CORTEXM3。 5.25.2 现象及结果现象及结果 给硬件系统供电(5V),插上 JLINK,插上串口线(两头都是母的交叉线),插 上 MicroSD 卡,打开超级终端,配置超级终端为 115200 8-N-1,将编译好的程 序下载到硬件平台,即可看到超级终端打印出如下信息: 图 5-1 测试效果图 桂林电子科技大学实训(论文)报告用纸 第 17 页 共 24 页 6 结论结论 很多单片机系统都需要大容
45、量存储设备,以存储数据。目前常用的有 U 盘, FLASH 芯片,SD 卡等。他们各有优点,综合比较,最适合单片机系统的莫过 于 SD 卡了,它不仅容量可以做到很大(32Gb 以上) ,而且支持 SPI 接口,方 便移动,并且有几种体积的尺寸可供选择(标准的 SD 卡尺寸,以及 TF 卡尺寸 等) ,能满足不同应用的要求。本实训的作品是利用基于 ARM Cotex-M3 内核 的嵌入式处理器 STM32 自带的 SDIO 硬件接口来驱动 SD 卡,并结合文件系统 FATFS R0.07C 来完成一个基于嵌入式 ARM 的 SD 卡读写的作品,现实向 SD 卡写入一个 txt 文件,并读取 SD
46、 卡的文件目标并通过串口打印到 PC 机显示。 通过本实训,我更加掌握了嵌入式 ARM STM32 的外围应用设计以及 SD 卡的 驱动和文件系统的使用方法。 桂林电子科技大学实训(论文)报告用纸 第 18 页 共 24 页 致致 谢谢 本实训从最初的选题到系统设计、程序编写直到论文的撰写过程中都得到 了孙安青老师的悉心指导与指正,您细心教导和热心关怀使得我能够顺利完成 本次实训任务。孙老师热心的工作态度、严谨的治学态度,也使我受益匪浅, 终生难忘。 同时要感谢我们班各位同学,你们细心地给我分析该设计的设计流程,耐心地 讲解程序运行过程,并给设计的不足提出很好的建议和方针,是你们的帮助,让我 对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理学题库及答案模板
- 2026年湖北事业单位招聘(公基)考试题库及答案
- 2026年北京事业单位招聘面试题及答案
- 人教版小学一年级语文下册第1课《春夏秋冬》学习指导+课堂笔记+知识点归纳
- 工业机械维修及保养操作流程
- 医疗器械的环保处理与回收
- 石家庄市平山县(2026年)辅警招聘考试试题库带答案
- 2025年高频毒品宣传面试题及答案
- 苏教版年级数学下册《认识万以内的数》说课稿
- 2026安徽芜湖市第一人民医院第一次招聘劳务派遣人员16人备考题库及答案详解【必刷】
- 腕管综合征的护理课件
- KET词汇表(英文中文完整版)
- 电厂石灰石浆液制备系统设备安装施工方案
- 诗经讲解概述课件
- 美的职位与职衔管理手册
- 起重杨定期保养表
- 上汽大众-横置发动机模块化平台介绍
- GB∕T 38068-2019 船用高速柴油机重载滑动轴承
- 深静脉穿刺置管术操作规程
- 武汉大学教职工重大疾病补助网上申报操作说明
- Q∕GDW 12075-2020 架空输电线路防鸟装置技术规范
评论
0/150
提交评论