SD卡接口设计

发布者:bln898最新更新时间:2011-11-24 来源: 电子产品世界 手机看文章 扫描二维码
随时随地手机看文章

1 SD卡标准
   
SD卡标准是SD卡协会针对可移动存储设备设计专利并授权的一种标准,主要用于制定卡的外形尺寸、电气接口和通信协议。
1.1 SD卡引脚功能
    SD卡的外形如图1所示,引脚功能如表1所列。SD卡的引脚具有双重功能,既可工作在SD模式,也可工作在SPI模式。不同的模式下,引脚的功能不同。

    SD模式多用于对SD卡读写速度要求较高的场合,SPI模式则是以牺牲读写速度换取更好的硬件接口兼容性。由于SPI协议是目前广泛流行的通信协议,大多数高性能单片机都配备了SPI硬件接口,硬件连接相对简单,因此,在对SD卡读写速度要求不高的情况下,采用SPI模式无疑是一个不错的选择。
1.2 SPI模式
    SPI模式是一种简单的命令响应协议,主控制器发出命令后,SD卡针对不S同的命令返回对应的响应。
    SD卡的命令列表都是以CMD和ACMD开头,分别指通用命令和专用命令,后面接命令的编号。例如,CMD17就是一个通用命令,用来读单块数据。
    在SPI模式中,命令都是以如下的6字节形式发送的:

    每帧命令都以“01”开头,然后是6位命令号和4字节的参数(高位在前,低位在后),最后是7位CRC校验和1位停止位“1”。
    SD卡的每条命令都会返回对应的响应类型。在SPI模式下,共有3种响应类型:R1、R2和R3,分别占1、2和3个字节。这里仅列出了R1响应的格式,如表2所列。当出现表中所描述的状态时,相应的位置1。R2和R3的第1个字节格式与R1完全一样,详细内容请参考SD卡标准。

2 硬件设计
    本设计选用Freescale公司的32位低功耗微控制器MCF51QE128,采用SPI模式实现与SD卡的接口。
    由于MCF51QE128是一款低功耗的微控制器,工作电压的典型值为3.6 V,与SD卡的工作电压兼容,因而可以直接与SD卡连接,无需电平转换电路。这里选用的是MCF51 QE128的第2个SPI口,硬件连接如图2所示。

3 软件实现
   
软件部分主要实现MCF51QE128的初始化、底层SPI通信,以及SD卡的通用写命令、初始化和单块数据的读写等功能。
3.1 MCF51QE128的初始化
    在与SD卡通信之前,首先需要配置MCF51QE128,并初始化SPI端口。代码如下:

1 SD卡标准
   
SD卡标准是SD卡协会针对可移动存储设备设计专利并授权的一种标准,主要用于制定卡的外形尺寸、电气接口和通信协议。
1.1 SD卡引脚功能
    SD卡的外形如图1所示,引脚功能如表1所列。SD卡的引脚具有双重功能,既可工作在SD模式,也可工作在SPI模式。不同的模式下,引脚的功能不同。

    SD模式多用于对SD卡读写速度要求较高的场合,SPI模式则是以牺牲读写速度换取更好的硬件接口兼容性。由于SPI协议是目前广泛流行的通信协议,大多数高性能单片机都配备了SPI硬件接口,硬件连接相对简单,因此,在对SD卡读写速度要求不高的情况下,采用SPI模式无疑是一个不错的选择。
1.2 SPI模式
    SPI模式是一种简单的命令响应协议,主控制器发出命令后,SD卡针对不S同的命令返回对应的响应。
    SD卡的命令列表都是以CMD和ACMD开头,分别指通用命令和专用命令,后面接命令的编号。例如,CMD17就是一个通用命令,用来读单块数据。
    在SPI模式中,命令都是以如下的6字节形式发送的:

    每帧命令都以“01”开头,然后是6位命令号和4字节的参数(高位在前,低位在后),最后是7位CRC校验和1位停止位“1”。
    SD卡的每条命令都会返回对应的响应类型。在SPI模式下,共有3种响应类型:R1、R2和R3,分别占1、2和3个字节。这里仅列出了R1响应的格式,如表2所列。当出现表中所描述的状态时,相应的位置1。R2和R3的第1个字节格式与R1完全一样,详细内容请参考SD卡标准。

2 硬件设计
    本设计选用Freescale公司的32位低功耗微控制器MCF51QE128,采用SPI模式实现与SD卡的接口。
    由于MCF51QE128是一款低功耗的微控制器,工作电压的典型值为3.6 V,与SD卡的工作电压兼容,因而可以直接与SD卡连接,无需电平转换电路。这里选用的是MCF51 QE128的第2个SPI口,硬件连接如图2所示。

3 软件实现
   
软件部分主要实现MCF51QE128的初始化、底层SPI通信,以及SD卡的通用写命令、初始化和单块数据的读写等功能。
3.1 MCF51QE128的初始化
    在与SD卡通信之前,首先需要配置MCF51QE128,并初始化SPI端口。代码如下:

3.5 SD卡单块数据读写
    SPI模式支持单块和多块数据的读写操作,可通过发送相应的命令来实现。读单块数据的操作过程如图4所示。拉低片选后,首先由主控制器MCF51QE128发送读单块数据命令CMD17,然后等待SD卡的响应。当收到数据块开始标志0xfe后,开始从SD卡读取512字节的数据,最后读取2字节的CRC校验位。

 

    读单块数据的函数代码如下:


    写单块数据的操作过程与读操作类似,如图5所示。拉低片选后同样由主控制器MCF51QE128发送写单块数据命令CMD24,SD卡正确响应后发送数据块开始标志0xfe,接着发送512字节数据块和2字节CRC校验。

    写入数据后,SD卡会发送1字节的数据响应来反馈数据写入的情况,其格式如图6所示。当数据正确写入SD卡后,数据响应为0x05。最后读数据总线,写数据忙时等待,直到总线为高电平。

    写单块数据的函数代码如下:

   


结 语
    SD卡是目前广泛应用的可擦除的大容量存储设备,其接口设计可作为各类嵌入式系统中存储单元的一般解决方案。本文结合SD卡标准的相关技术,基于MCF51QE128微控制器完成了硬件接口和底层通信软件的设计。在此基础上,可进一步构建文件系统,实现对存储数据更有效的管理。

引用地址:SD卡接口设计

上一篇:基于FPGA单芯片四核二乘二取二的安全系统
下一篇:实现EMC2的硬件抽象层

推荐阅读最新更新时间:2024-03-30 21:51

FPGA和Nios II软核的SD卡文件系统实现方法
摘要: 利用Cyclone II系列FPGA构建了一种用于SD卡读写的SPI控制器,并在其上实现了一个基于Nios II软核处理器的嵌入式文件系统。此文件系统是通过在Nios II EDS开发平台上移植znFAT32文件系统实现的。 关键词: Cyclone II;FPGA;Nios II;SD卡;znFAT32文件系统 引言 在嵌入式系统或移动设备上使用SD卡,接口的构建和文件系统实现是必须解决的问题。本文探讨在CycloneII平台为基础的嵌入式系统上,实现SD卡接口和文件系统的实现方法。 基于FPGA IP软核处理器的嵌入式系统,因其集成度高、可灵活配置和性价比方面的优势,已经逐渐逼近甚至赶超采用专用集成电路
[嵌入式]
FPGA和Nios II软核的<font color='red'>SD</font>卡文件系统实现方法
飞兆半导体降压转换器为大容量SD闪存应用高效供电
      由于移动电话和其它便携设备对存储功能的要求增加,出现了为更大容量的SD闪存卡供电的新兴需求。因此,飞兆半导体公司 (Fairchild Semiconductor)开发出一款采用专有的同步整流架构的3MHz 500mA同步降压转换器产品FAN5362,是需要支持大容量(如8、16、32GB等) SD闪存卡的手机设计人员的理想选择。       SD闪存卡所需的标称电平是2.9V。当VIN 为3.6V而 VOUT 则为2.9V,FAN5362则能够提供 94%的峰值效率,同时在轻负载(1mA)条件下保持超过86%的效率。FAN5362是专为低余量运作而设计,能够提供高效率和优化控制功能,免除现有的LDO功耗过高的缺点
[电源管理]
飞兆半导体降压转换器为大容量<font color='red'>SD</font>闪存应用高效供电
高压IGBT模块2SD315AI-33的应用研究
摘要:介绍了一种新型高性能高压IGBT集成驱动模块2SD315AI-33的管脚功能和工作原理,同时还给出了该模块与同类产品相比的显著性能特点,介绍了2SD315AI-33在“双逆变器-电机”能量互馈式交流传动试验系统中的应用方法,讨论了在实际应用中的注意事项。 关键词:IGBT 驱动模块 2SD315AI-33 逆变器 2SD315AI-33是瑞士CONCEPT公司专为3300V高压IGBT的可靠工作和安全运行而设计的驱动模块,它以专用芯片组为基础,外加必需的其它元件组成。该模块采用脉冲变压器隔离方式,能同时驱动两个IGBT 模块,可提供%26;#177;15V的驱动电压和%26;#177;15A的峰值电流,具有准确可靠的驱动
[嵌入式]
Zedboard使用评测+HDMI显示与SD读取
上次搭好了硬件平台,后面立马开始了软件方面的调试。 因为以前做的都是些用HDL做过显示,比如VGA,以及最近用FPGA做的LVDS屏的显示。其工作原理的就是讲数据写入到显存(DRAM)中,然后再按照行场模式或者是使能DE模式读出DRAM中的数据,按照屏的显示时序,发送给屏完成显示。 具体的功能框图如下: ZYNQ作为整个系统的控制核心,提供HDMI的显示数据,以及时读写显存的控制,以及DDC的数据产生。PL部分主要是ADV7511的控制,还有将24bit的RGB数据转换为16bit的YCBCR422的数据发送给ADV7511 EDK中的数据到显存的函数如下: #define img_length 207
[测试测量]
Zedboard使用评测+HDMI显示与<font color='red'>SD</font>读取
基于ATmega32的SD卡上FAT32文件系统数据读取
  SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2 g,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。   本文正是通过AVR单片机经过软硬结合的设计方案,来读取SD卡上 FAT32文件系统 中的数据,FAT32是微软公司开发的新一代的文件系统,支持更大的存储容量和长达255个字符的文件名,也可以通过串口转USB接口芯片通过计算机来访问
[嵌入式]
基于STM32F407的FatFs文件系统在SD卡驱动上的移植
最近在做SD卡驱动,以前移植过efsl,觉得用的人不是很多,现在移植个FatFs,也跟上队伍。 第一步,保证SD卡底层驱动函数正确,包括SD卡初始化、SD扇区读写等。 第二步,下载FatFs源码,名为ff9b.zip,解压在src文件夹中可以得到diskio.c、ff.c、以及\option\cc936.c这三个源码文件,在STM32F407工程文件中创建FatFs文件夹,加入这几个源码以及相应头文件,并且在系统Include Path中加入这个文件夹的位置,以编译时找到其头文件。 第三步开始移植。diskio.c这个文件中定义了fatfs文件系统与硬件存储器之间的接口函数,供文件系统调用,包
[单片机]
如何使用CubeMx制作一个基于SD卡的文件系统工程
1 前言 本文将介绍使用CubeMx工具从零开始制作一个基于SD卡的文件系统,以便后续使用此功能者参考。 2 准备工作 本文工程得测试将以STM3240G-EVAL这个ST官方的评估板为测试平台,所有这块板子的一些外部组件连接方式有必要先了解一下。 LED1~LED4分别使用管脚PG6,PG8,PI9,PC7,输出高电平LED灯点亮,用户按键使用PG15管脚,按下时为低电平。 如上图,MCU使用的HSE是25M晶振。SD卡使用STM32F407固定的6个管脚如上图所示D0(PC8),D1(PC9),D2(PC10),D3(PC11),CLK(PC12), CMD(PD2). SD卡插入检测脚为用户自定义的管脚,在ST
[单片机]
如何使用CubeMx制作一个基于<font color='red'>SD</font>卡的文件系统工程
Maxim推出高速USB至SD卡桥接器
  日前,Maxim推出高速USB至SD卡桥接器MAX14502,可将便携式电子设备中的SD卡读/写速度提升40倍。这款IC采用集成的处理器进行数据传输,无需以往USB应用中的低速处理器。MAX14502还省去了费时且复杂的软件驱动开发工作,使设计者能够很容易地为其设备添加高速USB功能。该器件非常适合蜂窝电话、PDA、MP3播放器、DSC及GPS设备等消费类电子产品。   MAX14502支持SDHC,可使用一个或两个SD卡端口进行工作。该款IC仅需通过单个GPIO或I²C接口控制(两端口选项),节省了宝贵的I/O资源。   器件工作在-40°C至+85°C扩展级温度范围,提供无铅封装。单端口版本提供5mm x 5m
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved