C8051F020在SD卡主控制器设计中的应用

2011-06-26 10:53:11来源: 互联网

1 引言

  飞机飞行状况监测及数据采集仪。用于采集飞机试飞时的各种飞行数据,要求大量的存储容量。它具有功能强、性价比高、安装和使用方便的特点。采集仪可以根据用户的要求进行配置,对八路传感器输入信号进行调理、采样及数据处理,将测量结果实时动态显示,并通过其报警功能,实现设备故障预警。采集仪既可以单机独立工作,也可以通过RS-485总线将多达16台采集仪与计算机联机组成在线监测系统。应用范围包括各种不同类型的电机、风机、泵、齿轮箱、轧机、风力发电机、电站和离心机,以及各种机械设备常见故障的状态监测等。

  2 硬件功能原理与设计

  SD卡的外形和接口如图1所示。根据SD卡与主控制器的通信协议不同,SD卡对外提供两种访问模式:SD模式和SPI模式。所用通信模式不同,SD卡引脚的功能也不同,具体引脚功能如表1所示。在具体通信过程中,主机只能选择其中一种通信模式。通信模式的选择对于主控制器来说是透明的,卡会自动检测复位命令的通信协议模式,而且通信模式一旦选定,系统在通电情况下不能改变。SD模式下,主控制器使用SD总线访问SD卡。可通常的单片机没有硬件SD总线,尽管可以借助通用口线用软件仿真,但访问速度较低,还要大量占用CPU时间,而单片机多具有SPI总线。

SD卡的形状与接口

SD卡引脚定义

  注:S--电源;I--输入;O--推挽输出;PP--推挽I/O。

 在SPI总线模式下。CS为主控制器向卡发送的片选信号,SCLK为主控制器向卡发送的时钟信号。DI(DataIn)为主控制器向卡发送的单向数据信号,DO(DataOut)为卡向主控制器发送的单向数据信号。SD卡的内部结构如图2所示,还具有卡接口控制器、寄存器以及SD和SPI两种模式的对外接口等。外部主控制器访问卡的外部信号线并不与存储器单元直接相连,而是通过卡的接口控制器与存储器单元接口相连。卡内存储单元的读,擦,写由卡接口控制器根据主控制器的命令自动处理完成,而主控制器无须知道卡内是如何操作、管理存储单元的。SD卡内部有6个信息寄存器,用来设置和保存操作卡的关键信息,有两个状态寄存器,用来记录操作卡的当前状态。

  采集仪的主控制器采用了C8051F020单片机。C8051F020是完全集成的混合信号系统级MCU芯片。这个系列单片机与8051在指令上完全兼容,性能远远高于标准的8051单片机。又扩展了丰富的外设,是一种名副其实的SOC (System On Chip)单片机,与SD卡系统相关的特性如下:

SD卡内部结构

  单片机内部采用流水线结构。指令运行速度高。指令运行速度比一般的80C51系列单片机提高了大约10倍。

  具有SPI 硬件接口。可与SD卡的SPI 总线很好接口。

  具有8个8位I/O端口。除满足数据采集需要外。有足够的口线用于单片机与SD卡的连接。而且。这些口线可通过软件进行配置,获得不同的功能,其中SPI 接口,就是通过配置相关寄存器而获得的。

  具有可扩展的中断系统。支持22个中断源。

  片内存储器包括64KB的Flash、和4KB的XRAM。不需要扩展存储器。就可以满足文件系统的建立和访问SD 卡的需要。

  3.3V的工作电压,与SD卡工作电压兼容。

  时钟系统更加完善,可以使用内部时钟,也可以使用外部时钟。

  可实现通过JTAG接口的在系统调试。

  C8051F系列单片机的SPI串行接口的主要特点如下:全双工,三线同步传输,即在发送的同时也能接受;可以工作在主机方式或从机方式;主机最大数据传输速率(位/秒)是系统时钟频率的1/2.因而最高可达10Mb/s;SPI位传输速率可通过编程选择;发送结束设置中断标志。发送期间不占用CPU时间;串行时钟极性与相位可编程改变;具有写冲突保护和总线竞争保护。

  对于C8051F020的SPI系统。首先通过设置I/O端口功能选择开关控制寄存器XBR0、XBR1、XBR2.将I/O端口P0.0、P0.1、P0.2、P0.3配置成SPI功能引脚SCK、MISO、MOSI和NSS。此时I/0端口P0.0、P0.1、P0.2、P0.3就组合成SPI接口了。SPI0CFG是SPI的配置寄存器,用于配置SPI的工作方式。并反映通信过程中的数据发送状态。并反映通信过程中的一些错误标志,SPI0CKR是SPI的时钟速率寄存器,用于选择SCK输出的频率。

  主控制器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卡的硬件环境配置、SPI接口实现通讯的基本函数以及SPI中断的处理。硬件环境配置包括硬件初始化、以及内存变量初始化等。SPI接口实现通讯的基本函数,包括主控制器向SD卡发送一字节和从SD卡读取一字节的基本函数,这是所有SPI通讯的基础。SPI中断处理是SPI接口产生中断时。中断服务程序被自动调用,在中断服务程序中,读取SPI控制寄存器。这里存放着产生中断的各种状态标志,根据不同的状态标志,调用不同的函数处理。

  命令层,就是调用硬件抽象层的基本发送接收字节函数,实现SD卡所有SPI协议规定的命令。根据SD卡协议,访问SD卡的不同功能,由不同的命令实现。这些命令分成0—9个不同的类别。每种类别包括几个具体的命令,对于SPI协议,每个命令都由主机主动发送。高位在前低位在后,SD卡收到命令后。根据不同的命令做出不同的响应。主机发送的命令长度总是6个字节。命令的格式如表2所示,Command表示命令号,占用6位,Parameter表示命令参数,长度为4字节,不同的命令对应不同的命令参数值。SD卡的响应有4种格式,分别为R1、R1B、R2和R3格式。

  表2 SPI模式命令格式

  字节6 字节2~5 字节1

  0 1 Command Parameter(高位在前) CRC 1

  应用层函数提供客户程序访问SD卡的高级接口函数。使客户不需要知道SD卡的内部结构和命令内容、不需要知道SPI的接口协议等基本内容,客户程序只需要简单地调用接口函数了解SD卡的当前状态、读取自己需要的内容或写入自己的内容。应用层程序是在命令层基础上的更高抽象,调用命令层函数实现

  4 结论

  本文将SD卡存储方式运用到飞机飞行数据采集系统,简化了采集系统的设计,减小了系统尺寸,提高了系统的可靠性,使采集数据的读出变得简单易行。由于原有数据采集系统,采用8051单片机作主控制器,本次设计选用与8051完全兼容的高性能单片机C8051F020。既继承了原有采集系统的设计,又满足了访问SD卡的功能要求,加快了整个系统的设计进程。

关键字:sd卡  设计  应用

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0626/article_6890.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
sd卡
设计
应用

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved