芯片的SD/MMC控制器以及SD卡介绍

2023-10-26

1、MMC、SD卡、eMMC介绍

1.1、三者关联

(1)最早出现的是MMC卡,卡片式结构,按照MMC协议设计。(相较于NandFlash芯片来说,MMC卡有2个优势:第一是卡片化,便于拆装;第二是统一了协议接口,兼容性好。)
(2)后来出现SD卡,兼容MMC协议。SD卡较MMC有一些改进,譬如写保护、速率、容量等。
(3)SD卡遵守SD协议,有多个版本。多个版本之间向前兼容,SD卡除了支持SD协议还支持SPI协议。
(4)iNand/eMMC在SD卡的基础上发展起来,较SD卡的区别就是将SD卡芯片化了(解决卡的接触不良问题,便于设备迷你化)。
(5)iNand和eMMC的关联:eMMC是协议,iNand是Sandisk公司符合eMMC协议的一种芯片系列名称
总结:MMC卡、SD卡、eMMC卡是一脉相承的,并且都是向前兼容,所以在Soc中都是用SD/MMC控制器去操作。SD/MMC控制器在初始化时会通过发命令去判断当前接的是哪种卡、哪个版本的协议,然后再进行相应的操作。SD卡和eMMC卡在时序操作上几乎一样,在物理接线上有些差别,后面就以SD卡来进行讲解。

1.2、三者相同点

(1)组织框架:都是存储介质+控制电路,向外提供统一的接口;
(2)存储介质都是NandFlash;

1.3、三者区别

(1)接口协议不同:MMC卡是MMC协议,SD卡支持SD协议和SPI协议,eMMC卡/iNand支持eMMC协议,接口协议不同导致物理接线也不一样;
(2)控制电路的功能不同,接口协议不同所以控制电路也不一样;

1.4、和NandFlash的区别

(1)iNand和SD卡在储存介质上都是使用的MLC的NandFlash,价格便宜;
(2)iNand和SD卡是在NandFlash的基础上,完善了控制电路,控制电路可以进行ECC校验、坏块管理、提供统一的接口。NandFlash芯片在通信协议上不同一,导致兼容性很差;
(3)iNand接口电路还提供了cache机制,所以inand的操作速度更快。

1.5、SD卡和iNand芯片的引脚差异

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

从上面的电路原理图可以看出,SD卡和iNand的引脚几乎一样,差别就是iNand芯片的数据线是8根,而SD卡的数据线是4根,所以iNand支持8bit并行传输,SD卡最多支持4bit并行传输。

2、SD卡的结构框图

在这里插入图片描述

(1)最上面是SD卡的引脚,可以看到有4根data线,1根cmd线,1根CLK线,其余是电源线和接地线;
(2)中间部分是控制电路,相当于一个状态机,负责与主机通信和管理内部的存储颗粒,主要包含接口控制器和寄存器;
(3)最下面的存储器内核就是NandFlash存储颗粒,负责存储数据。使用的NandFlash存储颗粒是MLC的。

3、SD卡的引脚

在这里插入图片描述

(1)SD卡有4根数据线,支持1bit和4bit模式,是并行接口;
(2)主机的SD/MMC控制器是通过CMD线给SD卡发命令;
(3)主机和SD卡是同步通信,主机通过CLK线把时钟信号传给SD卡;
(4)还有两根接地线和一根电源线;

4、SD/MMC控制器

在这里插入图片描述

学习SD/MMC控制器主要就是熟悉相关寄存器的操作,并且SD/MMC控制器的寄存器很多,功能也很复杂,没有对SD卡、eMMC卡了解很深入很多寄存器的说明是看不明白的。推荐的学习方法:根据操作SD卡的代码,再结合SD卡数据手册、SD/MMC控制器的寄存器说明去学习。

5、SD卡的操作模式

5.1、命令码CMD和ACMD

(1)在SD卡协议中,命令码是已经定义好的,在代码里用宏定义去表示;
(2)命令码分为CMDn(n代表1、2、3······)和AMDn(n代表1、2、3······)。CMDn是单命令命令,就是单独发一个CMDn即可表示一个意思。ACMDn是一种扩展,就是发2个CMDn加起来表示一个意思。可以认为ACMDx = CMDy+CMDz,其中y一般是55;

5.2、命令响应模式

在这里插入图片描述

(1)SD协议里已经定义好了命令码,主机去操作SD卡就是给SD卡发送相应的命令码;
(2)主机和SD卡通信是一个周期一个周期进行的,每个周期都是主机给SD卡发命令,SD卡解析并执行命令,有的命令需要响应和数据,有的不需要;
(3)命令都是主机给SD卡发送的,在通过CMD线发送命令时需要先判断CMD线是否忙,要等上一条命令执行完毕再发送新的命令;

5.3、SD卡的寄存器

在这里插入图片描述

SD卡的不同寄存器位数是不一样的,具体含义要查看数据手册,这里不做详细的说明。

6、SD卡的初始化流程图

在这里插入图片描述

(1)上电后SD/MMC控制器先发送CMD0和CMD8命令,然后根据SD卡返回的数据最终判断当前连接的SD卡是采用的哪个版本的SD协议。

7、SD卡的状态转换

在这里插入图片描述

(1)这副图是承接上面的初始化流程图,SD/MMC控制器在得知SD卡的协议版本后会再发送CMD2和CMD3命令;
(2)这里描述的状态转换实际就是SD卡控制器的工作逻辑,SD卡控制器就相当于一个状态机,根据主机发送的命令切换到不同的状态执行不同的任务。
(3)刚开始SD卡是待命状态(Stand by State),然后就根据主机发送的命令在不同的状态之间切换。

8、SD卡的SD模式和SPI模式

在这里插入图片描述

(1)SD卡支持SD卡协议和SPI协议,单片机操作SD卡通常用SPI协议,复杂Soc(带SD/MMC控制器)一般用SD卡协议去操作SD卡;
(2)SD卡协议是6线制(4根数据线+CMD线+CLK线),SPI协议采用4线制(2根数据线+CMD线+CLK线);
(3)SD卡的SD模式比SPI模式传输速率更快;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

芯片的SD/MMC控制器以及SD卡介绍 的相关文章

  • matlab中hash和map的用法总结

    若要在matlab中使用hash 有两种方式 1 采用matlab官方给出的结构类型map containers Map http cn mathworks com help matlab map containers html 2 调用J

随机推荐

  • 到底要不要孩子学习机器人编程

    人工智能发展迅猛 很多技术已经成熟应用到我们生活场景中 如果再不从小让孩子学习机器人编程教育 掌握更多编程语言 那未来就out啦 格物斯坦小坦克可以告诉你关于机器人编程要不要学的答案 教育部也将启动中小学生信息素养测评 并推动在中小学阶段设
  • uni-app利用chooseImage方法封装一个图片选择组件

    效果如图 可以预览 长按可删除 可以设置最多上传数量 这里封装的组件有个MaxNumber number类型 用的时候在父组件传就行了 这里默认给的8 废话不多说直接上代码 封装好了之后我们用的时候只需要引入直接用就行
  • 从etcd看Raft协议

    首先 什么是etcd 看官方的定义 A highly available key value store for shared configuration and service discovery 翻译过来就是 用于配置共享和服务发现的K
  • 动态规划(五)

    01背包问题 01 Knapsack problem 有10件货物要从甲地运送到乙地 每件货物的重量 单位 吨 和利润 单位 元 如下表所示 由于只有一辆最大载重为30t的货车能用来运送货物 所以只能选择部分货物配送 要求确定运送哪些货物
  • 如何快速画AltiumDesigner封装——用Ultralibrarian生成库文件---官网最新打开方式

    如何用Ultralibrarian生成库文件 官网最新打开方式 步骤1 下载元器件 步骤2 AltiumDesigner生成库文件 Ultralibrarian软件比较常用的生成库文件的软件 网上对于它的介绍大多还停留在软件使用层面上 但官
  • 区块链的工作流程

    工作流程 通过前两篇文章 相信大家对区块链有了基本的认识 区块链系统有很多种 第一个应用区块链的软件就是比特币 事实上区块链就是比特币带出来的 到现在为止 已经出现很多基于区块链的系统了 比如超级账本 以太坊等 每一类系统都有自己的特点 无
  • 雪花算法生成ID

    雪花算法生成ID Snowflake 雪花算法是由Twitter开源的分布式ID生成算法 以划分命名空间的方式将64 bit位分割成多个部分 每个部分代表不同的含义 而Java中64bit的整数是Long类型 所以在Java中 SnowFl
  • [网络安全]sqli-labs Less-2 解题详析

    网络安全 Less 2 GET Error based Intiger based 基于错误的GET整型注入 判断注入类型 判断注入点个数 查库名 查表名 查users表的列名 查字段 注意 总结 往期回顾 网络安全 sqli labs L
  • TensorRT简介

    一 什么是TensorRT 一般的深度学习项目 训练时为了加快速度 会使用多 GPU 分布式训练 但在部署推理时 为了降低成本 往往使用单个 GPU 机器甚至嵌入式平台 比如 NVIDIA Jetson 进行部署 部署端也要有与训练时相同的
  • 【设计模式】工厂方法模式(C#)

    设计模式 工厂方法模式 1 概述 针对简单工厂中的缺点 使用工厂方法模式就可以完美的解决 完全遵循开闭原则 定义一个用于创建对象的接口 让子类决定实例化哪个产品类对象 工厂方法使一个产品类的实例化延迟到其工厂的子类 工厂方法模式的主要角色
  • 解决gensim fasttext官方案例报错TypeError: Either one of corpus_file or corpus_iterable value must be provide

    完整报错为 TypeError Either one of corpus file or corpus iterable value must be provided 解决方法 将官方案例中传递参数时指定的sentences 删除即可 比如
  • Recyclerview源码深入探索:Adapter的增删改再也不迷路

    作者 maxcion 看到标题说的是三级缓存 有的地方说是四级缓存 请你不要迷惑 到底是三还是四 这就像图片加载这个场景有人说是三级缓存有人说是二级缓存 说三级缓存是把通过网络请求图片这个环节也认为是一层缓存 你认为这个环节应该不应该属于缓
  • 基于Qt、C++的毕业设计课设数学绘图工具(平面图、图表、立体图绘制-附下载链接)

    基于Qt C 的毕业设计课设数学绘图工具 平面图 图表 立体图绘制 介绍 这是我的毕业设计 基于Qt Creator 4 11 1 c 语言 效果图如下 点我下载项目源码 含打包软件 使用说明 1 二维函数绘制 开始界面 函数设置 输入界面
  • MySQL免安装配置教程(win10)

    一 下载安装包 1 1 下载zip包 打开官网地址下载zip安装包 这里下载的版本是5 7 可自行选择 对应下载网址 https downloads mysql com archives community 根据自己电脑进行选择对应安装包
  • 周志华《机器学习》笔记(第4章) 决策树

    第四章 决策树 1 总述 决策树基于树结构进行决策 叶结点对应于决策结果 其他每个结点对应于一个属性测试 每个结点包含的样本集合根据属性测试的结果被划分到子结点中 最终目的是产生一个泛化能力强 能够处理未知样本的决策树 基本流程遵循简单而直
  • XSS学习

    目录 什么是XSS 概念 理解 XSS分类 存储型XSS 反射型XSS 原理 攻击过程 DOM型 攻击过程 DOM行XSS与反射型XSS区别 存储型XSS与反射型XSS区别 DVWA实验 反射型XSS low等级 JavaScript弹窗函
  • 2013年第四届C/C++ A组蓝桥杯省赛真题解析

    目录 第一题 高斯日记 题目描述 思路分析 AC代码 第二题 排它平方数 题目描述 思路分析 AC代码 第三题 振兴中华 题目描述 思路分析 AC代码 第四题 颠倒的价牌 题目描述 思路分析 AC代码 第五题 前缀判断 题目描述 思路分析
  • 将文件从本机上传到虚拟机中Linux系统中的几种方法

    一 使用FileZilla上传文件 1 启动虚拟机 打开Linux终端 输入ifconfig命令查看IP地址 IP地址为192 168 59 6 2 打开FileZilla 输入IP地址 用户名 密码 端口号 点击快速连接 连接成功后 左边
  • 测试工程师(初&中)面试题+知识点

    说明 记录下个人开始转行自学 gt 开始求职期间主要的学习内容 涵盖了 计算机基础 测试基础 自动化测试等 初中级测试 20年夏更新 需要掌握的大部分内容 巩固基础与按知识点自查时可选择性参考 一 面试题 1 请分别介绍一下单元测试 集成测
  • 芯片的SD/MMC控制器以及SD卡介绍

    1 MMC SD卡 eMMC介绍 1 1 三者关联 1 最早出现的是MMC卡 卡片式结构 按照MMC协议设计 相较于NandFlash芯片来说 MMC卡有2个优势 第一是卡片化 便于拆装 第二是统一了协议接口 兼容性好 2 后来出现SD卡