登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 开题报告 > 电子信息类 > 通信工程 > 正文

基于ARM的SD卡读写(软件)开题报告

 2020-04-14 04:04  

1. 研究目的与意义(文献综述包含参考文献)

文 献 综 述

一、ARM的简单介绍

ARM处理器是Acorn公司推出的为低预算市场设计的RISC微处理器,它是一个32位设计的处理器,但是本身也配备了16位指令集,相比于其他的等价32位代买而言,他可以节省35%左右的代码量,但却能保持32位处理器的其他所有优势,除此之外,它还有体积小,成本低,功耗低但是性能高的特点,不仅支持Thumb(16位)/ARM(32位)双指令集,而且可以很好地兼容8位/16位设备。除了以上优势外它还具有很多其他的特点,比如大量使用寄存器,使得指令执行速度更快,大多数的指令都在寄存器中完成,且寻址方式灵活多变指令长度固定等。

ARM处理器的体系结构分为两部分,CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)。在CISC指令集的各种指令中,大约20%的指令会被重复使用,这些指令会占到整个代码的80%左右,而另外80%指令则为不常用指令,大约占到整个代码的20%左右。RISC结构优先选取使用频率最高的指令,精良避免复杂指令,并将指令的长度固定,减少指定格式和寻址方式,以控制逻辑为主,不用或少用微码控制等。

ARM处理器共有37个寄存器(均为32位寄存器),包括31个通用寄存器和6个状态寄存器,状态寄存器用于标识CPU的运行状态和程序的运行状态,但是他们不是全部被使用,而是只是用了一部分。

ARM处理器的指令结构中包含ARM指令集和Thumb指令集。其中ARM指令集为32位指令,而Thumb指令集为16位指令集。Thumb指令集为ARM指令集的功能子集,但是与等价的ARM代码相比较可以节约35%左右的存储空间但又不是32位指令的所有优点。

ARM处理器现在流行的有ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列以及英特尔的Xcaie、英特尔的StrongARM ARM11系列。这些处理器现在被广泛地应用于手机等移动终端,并取得了较大的成功

二、SD卡的简单介绍

SD卡(Secure Digital Memory Card)翻译为中文应该是安全数码卡,是一种基于半导体快闪记忆器的记忆设备,一起优越的便携性被作为移动存储设备广泛地应用在便携设备中,在其小巧的身体里却是一个大容量、高速率的安全的存储器。

SD卡是一种可以满足安全性、容量、性能、速率、使用环境等诸多要求的新型存储器件,SD卡有两种工作模式,分别为SD模式和SPI模式,主机可以在二者中任选一种,荡接收到SD卡的复位指令后,SD卡可以检测到主机所要求的工作模式,并在此模式下和主机进行通信。

SD模式的通信协议分为1位总线模式和4为总线模式,最新的SDIO卡规范规定告诉的IO卡必须支持SD卡的所有通信模式。

SPI模式的接口协议时由Motorola公司最先提出的,现今被广泛地应用在各种微控制器中,SPI总线系统是一种串行外设接口,允许MCU和外接设备以串行方式进行通信和数据交换等行为。SPI系统可以和不同厂家生产的不同标准的设备直接接口,它一般使用4条线,他们分别为:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效地从机选择线NSS。

由于现今的绝大多数单片机都支持SPI总线而且SPI模式也更容易用软件方法来模拟,再加上SPI总线模式的传输协议相对简单且易于实现,所以本设计采用SPI总线模式。

对SD卡的所有操作都是由一些48数据位的命令完成,这48数据位的命令结构如表一所示。这些命了通过与SD卡的通信读取其相应,从来实现对SD卡的控制。在SPI模式下进行正常的数据读写的前提是在读写之前对SK卡进行初始化操作,这里需要注意的是在发送使SD卡处于空闲状态的命令CMD0之前,必须等待至少74个时钟周期,以保证SD卡可以进入SPI模式。当SD卡的初始化完成后,就可以对SD卡进行读写,默认的读取长度为512字节,但是也可以通过使用CMD16来设置SD卡的读取长度,这个自定义的长度要介于1~512字节之间即可。与读取操作不同的是,SD卡的写操作则只可以以512字节的固定长度写入。不论MMC卡的读还是写,都要求在发出的读或写命令后都要求在读写数据起始令牌FEH。数据传输结束以后有2字节的循环冗余编码CRC。

Byte1

Byte2#8212;5

Byte6

7

6

5#8212;0

31#8212;0

7#8212;1

0

0

1

CMDx

参数

CRC

1

表1:SD卡的命令格式

在Byte1中,前两位为0和1后六位是指CMDx中x的二进制数;Byte2#8212;5是,Command Arguments命令参数,但是有些命令没有参数,比如CMD0;Byte6中前7位为CRC(Cyclic Redundacy Check,循环冗余校验)校验位,最后一位为停止位0。

三、开发环境Keil MDK#8212;ARM软件

MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。

MDK-ARM有四个可用版本,分别是MDK-Lite、MDK-Basic、MDK-Standard、MDK-Professional。所有版本均提供一个完善的C / C 开发环境,其中MDK-Professional还包含大量的中间库。

MDK功能特点

#8226; 完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。

#8226; 业行领先的ARM C/C 编译工具链

#8226; 确定的Keil RTX ,小封装实时操作系统(带源码)

#8226;μVision4 IDE集成开发环境,调试器和仿真环境

#8226;TCP/IP网络套件提供多种的协议和各种应用

#8226; 提供带标准驱动类的USB 设备和USB 主机栈

#8226; 为带图形用户接口的嵌入式系统提供了完善的GUI库支持

#8226;ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行

#8226; 关于程序运行的完整代码覆盖率信息

#8226; 执行分析工具和性能分析器可使程序得到最优化

#8226; 大量的项目例程帮助你快速熟悉MDK-ARM强大的内置特征

#8226;符合CMSIS (Cortex微控制器软件接口标准)。

四、小结

在老师的指导下,我的毕业设计以及论文课题定为基于ARM的SD卡读写(软件)。

在设计前期需要完成下列任务:

1. 熟悉开发环境Keil MDK#8212;ARM软件;

2. 学习使用STM32仿真学习开发套件;

3. 理解SPI通信协议;

4. 掌握SD文件系统;

5. 在以上基础上掌握SD卡的初始化和读写程序;

6. 熟悉硬件各板块功能及使用方法。

整体的系统结构框图如图一:

(图片无法上传,请参考附件)

2. 研究的基本内容、问题解决措施及方案

一、本课题要研究或解决的问题:

1.开发环境的使用;

2.sd卡的文件系统掌握;

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图