MEMORY系列之“SDIO”

2023-12-18 01:18
文章标签 系列 memory sdio

本文主要是介绍MEMORY系列之“SDIO”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要介绍SDIO接口及SDIO存储卡的相关特性。

1、SDIO接口

SDIO接口不只用于存储数据的SD存储卡,还有SD I/O卡,MMC卡。
其中SD I/O卡与SD存储卡是有区别的,SD I/O卡实际上就是利用SDIO接口的一些模块,插入SD的插槽中,扩展设备的功能,如:SDI/O Wi-Fi,SDI/O CMOS相机等。

在这里插入图片描述
SD规范包括如下几部分:

  • 物理层规范

  • 文件系统规范

  • SD卡安全规范

  • SD卡音频应用规范+其他相关应用规范

  • SD MC扩展规范、移动设备

  • SDIO卡规范

由于SDIO可支持各种设备,所以对SDIO接口进行初始化后,上电后就要对它接入的卡进行识别、分类,这个过程是主机向卡发送一系列不同的命令,根据卡不同的响应来进行分类。

SDIO接口包含CLK、CMD及4条DAT[3:0]信号线。这6条信号线都是共用的总线,即新加入的设备可以并联接入到SDIO接口。SDIO主机是通过命令和SD从设备的响应来寻址的,所以不需要片选信号线。

  • CLK是卡的时钟信号线,由主机产生时钟信号,SD卡和SDIO卡的时钟频率可为0~25MHz。在命令和数据线上,每个时钟周期传输1位命令或数据。

  • CMD为命令信号线,SDIO的所有由主机发出的命令及从机对命令的响应,都是在这个信号线上传输的。

  • DAT[3:0]表示4条数据线,主机和从机的数据信号在这4条线上传输。

SD卡可以通过单数据线(DATA0)或四根数据线(DATA[3:0])进行数据传输。
单根数据线传输的最大速率为25Mbit/s,四根数据线传输的最大速率为100Mbit/s。

2、SD Memory Card

SD存储卡有如下一些版本和类别:
在这里插入图片描述

2.1、SD卡分类(速度等级)

四线速度模式分为以下几种:

  • Default Speed Mode:
    3.3V signaling, Frequency up to 25MHz, up to12.5MB/sec;

  • High Speed Mode:
    3.3V signaling, Frequency up to 50MHz, up to25MB/sec;

  • SDR12:
    1.8V signaling, Frequency up to 25MHz, up to 12.5MB/sec;

  • SDR25:
    1.8V signaling, Frequency up to 50MHz, up to 25MB/sec;

  • SDR50:
    1.8V signaling, Frequency up to 100MHz, up to 50MB/sec;

  • SDR104:
    1.8V signaling, Frequency up to 208MHz, up to 104MB/sec;

  • DDR50:
    1.8V signaling, Frequency up to 50MHz, sampled on both clock edges, upto 50MB/sec;

SD存储卡传输速度分类如下:

  • class-0:这类卡片不指定性能

  • class-2:不低于2MB/s

  • class-4:不低于4MB/s

  • class-6:不低于6MB/s

  • class-10:不低于10MB/s

2.1.1、UHS-I

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
★注:DDR50 is mandatory for microSDform factor and optional for Standard size SD form factor.

在这里插入图片描述
在这里插入图片描述

2.1.2、UHS-II

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2、引脚定义

2.2.1、SD卡引脚定义

在这里插入图片描述

2.2.2、MicroSD(TF)/MiniSD卡引脚定义

TF卡(TransFlash)是Motorola与SanDisk共同推出的记忆卡规格,它采用最新的封装技术,并配合SanDisk最新的NAND MLC技术和控制器技术。大小为11x15x1mm,TransFlash Card附有SD转接器,可兼容任何SD读卡器。TF卡是市面上最小的闪存卡,TF卡产品采用SD架构设计而成,SD协会于2004年底正式将其更名为Micro SD卡。
在这里插入图片描述

2.2.3、MiniSD卡引脚定义

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
★注:SD1-bit模式和SPI模式的区别:

  • SPI总线是一个通用总线,大部份芯片都用硬件模块;

  • SPI模式支持不带CRC校验的传输方式,可以降低硬件要求;

  • SD的CMD线与DATA线之间有可能同时产生数据,对没有SD硬件模块的主机支持起来难度较高。

2.2.4、UHS-II引脚定义

在这里插入图片描述
SD bus contacts 7 and 8 Pins are used for RCLK. Thefirst row contacts in non UHS-II mode are equivalent to SD Memory Card PadAssignment.
图片
UHS-II Card shall not drive unused lines of SD I/Fin UHS-II mode. (CLK, CMD and DAT[3:2]. DAT[2] may be used as interrupt line in case ofUHS-II SDIO Card. In this case, card controls DAT[2] level.) Host shall notleave these unused lines floating, but keep them at a defined high or lowlevel. How to keep line level is dependent on host implementation. For example,use pull-up resistor or host drives the lines to low level without providingpull-up voltage. As DAT[1:0] are used for providing RCLK, individual linecontrol is required to use pull-up method for CMD and DAT[3:2]. CLK (withoutpull-up resistor) should be driven to low.

In case ofentering hibernate mode, unused lines shall be set to low before turning offVDD1.

2.3、SD卡总线协议

SD卡总线协议包括如下三种:

  • SD Bus Protocol

  • SPI Bus Protocol

  • UHS-II Bus Protocol

2.4、SD卡操作模式

在这里插入图片描述
SD模式状态图如下图所示:

在这里插入图片描述
SPI模式状态图如下图所示:
在这里插入图片描述

2.5、SD卡的命令格式

SDIO的所有命令及命令响应,都是通过SDIO-CMD引脚来传输的。且命令只能由HOST发出。

SDIO协议规定了非常多的命令,把这些命令分类别来整理,都有11种之多,包括基本命令、块读取命令、块写入命令、写保护命令、擦除命令、卡上锁命令、应用指定命令、I/O模式命令、功能选择命令及特殊的应用命令ACMD。其中,在使用ACMD命令前,要先向卡发送编号为CMD55的应用指定命令。

所有的命令长度都固定为48bits,传输速率为1.92us@25MHz或者0.96us@25MHz。一个命令包含了6个段,分别为start bit,transmission bit,command index段、argument段、crc7段和end bit,其中除了command index段和argument段是需要在软件配置的时候设置的,其它段都由硬件完成。command index就是命令索引(SD协议规定的命令编码),如命令CMD0,CMD1…的编码为0,1…。有的命令会包含参数,如读命令的参数为要读取数据的地址,这些命令参数被存放在argument段。

SD存储卡的指令和响应格式如下表所示:
在这里插入图片描述
SD卡对主机的各种命令回复称为响应,除了CMD0命令外,SD卡在接收到命令都会返回一个响应。对于不同的命令,会有不同的响应格式,一共有7种,简称R1~R7(SD存储卡不支持R4、R5,SDIO卡支持7种)。按响应的字节长度又分为长响应型(136bit)和短响应型(48bit)。

当需要知道RCA和卡状态时,可以向卡发送CMD3命令,然后等待SD卡对命令的响应。SDIO接口通过CMD信号线接收到响应后,由硬件去除响应的头尾信息,把command index保存到SDIO_RESPCMD寄存器,把Argument field内容保存存储到SDIO_RESPx寄存器中。然后软件读取这两个寄存器即可获得所需的信息。

2.6、SD卡数据传输格式

SD卡的数据写入、读取的最小单位是块,每块的大小为512字节。首先软件通过SDIO接口的CMD信号线发送多块写入的命令,接收到正常的响应后,要写入的数据线从4根DAT信号线传输出去,每块结束后是CRC校验码。接着要检测忙状态,数据传输到SD卡后,SD卡启动内部时序保存数据,这时SD卡会把DAT0信号线拉低,表示处于“忙”状态,忙状态结束后,主机才能发送下一个数据块的数据。

SD卡有两种数据包格式:

Usualdata (8-bit width): Theusual data (8-bit width) are sent in LSB (Least Significant Byte) first,MSB (Most Significant Byte) last sequence. But in the individual byte, it is MSB (Most Significant Bit)first, LSB (Least Significant Bit) last.

★注:在字节之间,先传输低字节后传输高字节;在字节内部,先传输高位后传输低位。

Widewidth data (SD Memory Register): The wide width data is shifted from the MSBbit.

★注:以块(512bit)为单位发送,先传输最高位后传输低位。

在这里插入图片描述
在这里插入图片描述

2.7、SD Memory Card寄存器

在这里插入图片描述

2.7.1、OCR寄存器

OCR(操作条件寄存器)中存储了卡片的电压信息以及部分状态信息:其中一个状态位(bit 31)指示卡片的上电操作是否完成,另外一个状态位(bit 30)指示卡片的容量状态(0代表SDSC、1代表SDHC或者SDXC)。寄存器的说明如下图所示:
在这里插入图片描述

2.7.2、CID寄存器

CID(卡标识寄存器)总共128 bits,包含了卡片的识别信息,每个独立的卡片都应该有一组独一无二的识别信息。寄存器说明如下图所示:
在这里插入图片描述

2.7.3、CSD寄存器

CSD(卡特性寄存器)也是128 bits,提供了访问卡片内容的一些信息如:传输速率、数据格式、错误类型、最大是数据访问时间、DSR寄存器是否启用的。其中bit[126:127]记录了CSD的版本号,CSD Version1.0为标准容量卡所用,CSD Version 2.0为大容量或超大容量卡所用。CSD Version 1.0寄存器说明如下图所示:
在这里插入图片描述

2.7.4、SCR寄存器

SCR(卡配置寄存器)总共64 bits,定义了卡片的一些特殊功能,寄存器说明如下图所示:

在这里插入图片描述

2.7.5、CSR寄存器

CSR(卡片状态寄存器)总共32 bits,代表了执行一个命令的错误和状态信息,其信息包含在R1格式的应答中返回给主机,寄存器说明如下图所示:
在这里插入图片描述
在这里插入图片描述

2.7.6、SSR寄存器

SD Status 寄存器包含了SD存储卡的的专有属性并为以后的功能扩展保留了足够的空间,其大小为512 bits即一个块大小,这个寄存器作为ACMD13命令的执行结果,通过DATA线发送到主机,寄存器说明如下图所示:

图片

3、SDIO Card

SDIO卡在SD内存卡基础上发展起来,SDIO接口兼容之前的SD内存卡,可连接SDIO设备,根据SDIO协议,支持设备包括蓝牙,GPS卡,网卡,电视卡等。

SDIO协议是SD协议的一个子协议,很多地方保留SD卡协议,在这基础上增加了CMD52和CMD53命令。SDIO与SD的一个重要区别是,增加了低速标准。

3.1、SDIO设备分类

SDIO设备分类如下:

低速卡(Low-Speed SDIO cards):调制解调器、条形码扫描仪,GPS接收器等,时钟频率为0~400KHz,4bits SD模式为optional;
高速卡(Full-Speed SDIO cards):网卡等,时钟频率为0~25MHz,传输速率为10MB/s;
组合卡(Combo cards):组合卡指SDIO+存储器,组合卡中SDIO最高CLOCK为25MHZ,SD最高高于25M时强制4bitsSD模式。

3.2、SDIO卡引脚定义

在这里插入图片描述


本文转自-------硬件助手 https://mp.weixin.qq.com/s/JIUnmtXVT4RW052G_PFIKA

这篇关于MEMORY系列之“SDIO”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506522

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

Java基础回顾系列-第三天-Lambda表达式

Java基础回顾系列-第三天-Lambda表达式 Lambda表达式方法引用引用静态方法引用实例化对象的方法引用特定类型的方法引用构造方法 内建函数式接口Function基础接口DoubleToIntFunction 类型转换接口Consumer消费型函数式接口Supplier供给型函数式接口Predicate断言型函数式接口 Stream API 该篇博文需重点了解:内建函数式

Java基础回顾系列-第二天-面向对象编程

面向对象编程 Java类核心开发结构面向对象封装继承多态 抽象类abstract接口interface抽象类与接口的区别深入分析类与对象内存分析 继承extends重写(Override)与重载(Overload)重写(Override)重载(Overload)重写与重载之间的区别总结 this关键字static关键字static变量static方法static代码块 代码块String类特

Java基础回顾系列-第六天-Java集合

Java基础回顾系列-第六天-Java集合 集合概述数组的弊端集合框架的优点Java集合关系图集合框架体系图java.util.Collection接口 List集合java.util.List接口java.util.ArrayListjava.util.LinkedListjava.util.Vector Set集合java.util.Set接口java.util.HashSetjava