好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于C8051F020的SD卡主控制器设计.doc

6页
  • 卖家[上传人]:ss****gk
  • 文档编号:206246279
  • 上传时间:2021-10-30
  • 文档格式:DOC
  • 文档大小:59KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 飞机飞行状况监测及数据采集仪.用于采集飞机试飞时的各种飞行数据,要 求大量的存储容量在飞机回到地面后,需要方便地将采集数据传输到通用计算 机上,以便作进一步的数据处理和分析为了把采集的数据从采集系统传输到通 用计算机内.在过去,是将数据存储部分设计为可分离的一个存储板,数据存储 板上设计有CPU和出口将数据存储板从数据采集系统上取下来,通过出口与 通用计算机通信,将数据传输到通用计算机内可以看出这种方法有几个缺点: 第一,操作麻烦,每次都要将存储板从采集系统取下来,然后再装上;第二,经 常插拔存储板降低整个采集系统的可靠性:第三,读取数据的通用计算机需要安 装专用程序此程序是专门开发用于通用计算机与数据存储板之间的申口通信程 序,增加了使用复杂性SD/MMC卡是一利容量大(最大可达4GB)、性价比高、 体枳小、访问接口简单的存储卡,而且通过USB读卡器,可以很方便地将卡中 文件拷贝到通用计算机中目前,SD卡已大量用于数码相机、MP3、与大 容量存储设备中在本次飞行状况监测及数据采集仪的设计中,采集数据的存储 采用了 SD卡2硬件功能原理与设计SD卡的外形和接口如图1所示根据SD卡与主控制器的通信协议不同, SD卡对外提供两种访问模式:SD模式和SPI模式。

      所用通信模式不同,SD卡 引脚的功能也不同,具体引脚功能如表1所示在具体通信过程中,主机只能选 择其中一种通信模式通信模式的选择对于主控制器来说是透明的,卡会IH动检 测复位命令的通信协议模式,而且通信模式一旦选定,系统在通电情况下不能改 变SD模式下,主控制器使用SD总线访问SD卡可通常的单片机没有硬件 SD总线,尽管可以借助通用口线用软件仿真,但访问速度较低,还要大量占用 CPU时间,而单片机多具有SPI总线,本文就利用SPI总线实现对SD卡的访问 下面主要介绍SPI总线方式rlllllllll"1234567812345678 wpSD卡ramy rr/rnw 图LSD卡的木%与核44"表I SD卡的引脚定义引脚SD模式SPI模式名称类型描述名称类型描述1CD/DATA3UOIPP卡的检测/数据线位3CSI、片选(低电 平有效)2CMDPP命令/响应DII数据输入Vssjs电源地VssiS电源地Vdds电源Vdds电源5CLKI时钟SCLKI时钟6Vfsjs电源地Vs82s电源地7DATAOUO/PP敬据线&0DOO/PP数据输出8DATA1I/O/PP数据统位1RSVa y伸芋C0m.ci9DATA2I/O/PP数据线位2RSV注:S-电源;I-输入;O..推挽输出;PP--推挽I/O。

      在SPI总线模式下.CS为主控制器向卡发送的片选信号,SCLK为主控制 器向卡发送的时钟信号o DI(Dataln)为主控制器向卡发送的单向数据信号, DO(DataOut)为卡向主控制器发送的单向数据信号SD卡的内部结构如图2所 示,SD卡内部除了具有大量存储单元外还具有卡接口控制器、寄存器以及SD 和SPI两种模式的对•外接口等外部主控制器访问卡的外部信号线并不与存储器 单元直接相连,而是通过卡的接口控制器与存储器单元接口相连这样主控制器 并不直接访问存储器,而是通过卡的接口控制器来访问存储器卡内存储单元的 读,擦,写由卡接口控制器根据主控制器的命令自动处理完成,而主控制器无须 知道卡内是如何操作、管理存储单元的,这将大大减轻主控制器对存储器操作的 负担SD卡内部有6个信息寄存器,用来设置和保存操作卡的关键信息,有两 个状态寄存器,用来记录操作卡的当前状态 采集仪的主控制器采用了 C8051F020单片机C8051F系列单片机与8051 在指令上完全兼容,性能远远高于标准的8051单片机,片内除了具有8052的全 部外设外.又扩展了丰富的外设,是一利名副其实的SOC (System On Chip)单片 机。

      C8051F020能够满足数据采集功能外,还能很容易地实现SD卡的访问与 SD卡系统相关的特性如下:DAT2 CMDCLKDATO接门娈询BDAT!欠接口控E3THE1电1检Reset脚S核推口[子I假世*n -由2 SD卡的单片机内部采用流水线结构指令运行速度高.指令运行速度比一•般的 80C51系列单片机提高了大约10倍.可达25MIPS指令运行速度,满足高速操 作SD卡的功能要求具有SPI硬件接口可与SD卡的SPI总线很好接口具有8个8位I/O端口除满足数据采集需要外有足够的口线用于单片机 与SD卡的连接而且.这些口线可通过软件进行配置,获得不同的功能,其中 SPI接口,就是通过配置相关寄存器而获得的具有可扩展的中断系统支持22个中断源.2个优先级,其中就包括SPI 接口产生的中断片内存储器包括64KB的Flash>和4KB的XRAM不需要扩展存储器.就 可以满足文件系统的建立和访问SD卡的需要3.3V的工作电压,与SD卡工作电压兼容时钟系统更加完善.可以使用内部时钟.也可以使用外部时钟通过编程可 以切换可实现通过JTAG接曰的在系统调试方便系统的开发C8051F系列单片机的SPI $行接口的主要特点如下:全双工,三线同步传 输,即在发送的同时也能接受;可以工作在主机方式或从机方式;主机最大数据 传输速率(位/秒)是系统时钟频率的1/2.因而最高可达10Mb/s; SPI位传输速率 可通过编程选择;发送结束设置中断标志.发送期间不占用CPU时间;卅行时钟 极性与相位可编程改变;具有写冲突保护和总线竞争保护。

      对于C8051F020的SPI系统.首先通过设置I/O端口功能选择开关控制寄存 器 XBRO、XBR1、XBR2.将 I/O 端 口 P0.0、P0.1、P0.2、P0.3 配置成 SPI 功能 弓I脚 SCK、MISO、MOST 和 NSS此时 I/O 端 口 P0.0、P0.1、P0.2、P0.3 就组合 成SPI接口了而设置和控制SPI接口性能的特殊功能寄存器有SPIOCFG. SPIOCKR、SPIOCN、SPIODATo SPI0CFG 是 SPI 的配置寄存器,用于配置 SPI 的工作方式并反映通信过程中的数据发送状态SPI0CN是SPI控制寄存器.用 于控制SPI的工作.并反映通信过程中的一些错误标志SPI0CKR是SPI的时• 钟速率寄存器.用于选择SCK输出的频率SPI0DAT是SPI的数据寄存器,用 于发送和接受SPI数据主控制器C8051F020与SD卡座的电路连接图如图3所示除了 SPI接口的 连接外,还有三根控制线,P0.4_SD_INSERT就是I/O端口 P0.4,用于检测SD 卡在卡座上是否插好完全插入时该引脚为低电平,否则为高电平P0.5_SD_WP 就是I/O端口 P0.5,用于检测SD卡当前是否设置写保护.写保护时该引脚为高 电平,否则为低电平。

      P0.6_SD_POWER就是I/O端口 P0.6,用于SD卡的供电 控制,该引脚输出低电平时给卡供电否则断电这是为了在SD卡进入不确 定状态时,可以通过对卡重新上电复位而无需拔出卡3软件设计软件设计思想是,为了程序的可移植性和易用性将程序分为三个层次第 一个层次是硬件抽象层第二层是实现访问SD卡的命令层,第三层是应用层, 提供给用户或文件系统的接口函数硬件抽象层包括访问SD卡的硬件环境配置、SPI接口实现通讯的基本函数 以及SPI中断的处理硬件环境配置包括硬件初始 化、以及内存变量初始化 等如将C8051F020的I/O端口配置为SPI接口的相关设置、C8051F020的SPI 接口性能的设置、SD卡的上电与断开、SD卡插入是否到位检测、SD卡内部寄 存器特定参数设置等等又如C8051F020的SPI接口性能的设置,包括主/从工作 方式设置、SPI通讯频率设置等等,这些内容都与硬件有关SPI接口实现通讯的 基本函数,包括主控制器向SD卡发送一字节和从SD卡读取一字节的基本函数, 这是所有SPI通讯的基础SPI中断处理是SPI接口产生中断时.中断服务程序 被自动调用,在中断服务程序中,读取SPI控制寄存器。

      这里存放着产生中断的 各种状态标志,根据不同的状态标志,调用不同的函数处理命令层,就是调用硬件抽象层的基本发送接收字节函数,实现SD卡所有SPI 协议规定的命令.完成对SD卡的访问根据SD卡协议,访问SD卡的不同功 能,由不同的命令实现这些命令分成0-9个不同的类别.每种类别包括几个 具体的命令,对于SPI协议,每个命令都由主机主动发送高位在前低位在后, SD卡收到命令后.根据不同的命令做出不同的响应主机发送的命令长度总是 6个字节.命令的格式如表2所示Command表示命令号,占用6位,Parameter 表示命令参数,长度为4字节,不同的命令对应不同的命令参数值SD卡的响 应有4种格式,分别为Rl、RIB、R2和R3格式主机发送命令并读取响应形 成一个完整的命令实现过程表2SPI模式命令格式 字节6字节2〜5字节1 0 I Command Parameter(高位在前)CRC 1应用层函数提供客户程序访问SD卡的高级接口函数.使客户不需要知道SD 卡的内部结构和命令内容、不需要知道SPI的接口协议等基本内容,客户程序只 需要简单地调用接口函数了解SD卡的半前状态、读取己需要的内容或写入 己的内容。

      应用层程序是在命令层基础上的更高抽象,调用命令层函数实现这 些函数包括读数据、写数据、擦除数据、返问卡状态、返回卡内存储空间使用状 况等函数4结论本文作者的创新点是,将SD卡存储方式运用到飞机飞行数据采集系统,简 化了采集系统的设计,减小了系统尺寸,提高了系统的可靠性,使采集数据的读 出变得简单易行由于原有数据采集系统,采用8051单片机作主控制器,本次 设计选用与8051完全兼容的高性能单片机C8051F020o既继承了原有采集系统 的设计,又满足了访问SD卡的功能要求,加快了整个系统的设计进程。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.