1、前言

该节学习Linux KernelMMC子系统,也称为块设备驱动,正如其名,与字符驱动相比,MMC子系统以块为单位进行操作。

同时,由于MMC CardSD CardSDIO Card等设备协议基本大同小异,所以在Linux Kernel中使用MMC子系统来统一管理!

2、MMC/SD/SDIO介绍

上面我们了解到,Linux Kernel使用统一的子系统模型来管理MMCSDSDIO等设备,那么为什么要这样设计呢?

答案当然是:三者协议有一定的共通性。

MMC(MultiMediaCard)多媒体卡设备,从本质上看,它是一种用于固态非易失性存储的内存卡(memory card)规范,定义了诸如卡的形态、尺寸、容量、电气信号、和主机之间的通信协议等方方面面的内容。

1997年,MMC规范正式发布,至今已经进化出了SDMicroSDSDIOEMMC等多种不同的规范,虽然眼花缭乱,但是追其根源,都源于MMC规范,所以Linux Kernel可以将其统一管理!

MMC:强调的是多媒体存储(MM:MultiMedia)

SD:强调的是安全数据(SD:Secure Digital)

SDIO:强调的是IO接口(IO:Input/Output)

更多干货可见:高级工程师聚集地,助力大家更上一层楼!

3、总线接口

MMCSDSDIO其物理接口也十分相似,我们以MMC为例进行分析。

我们的MMC卡如上图所示,内部我们不展开分析,直接将其作为一个完整的设备来分析。

其通过CLKCMDDATA等管脚与我们的SOC通信,两者之间当然少不了Controller了。

把通信总线部分,拿出来看

CLK:提供SOC和设备之间的通信时钟,常用的通信频率为400KHz(识卡)、25MHz50MHz

CMD:提供SOC和设备之间的通信命令,标识不同的命令编号,类型多达50多种。

DATA:提供SOC和设备之间的数据通信,其通信总线有8根,可自定义设置,一般默认的是1-bit (默认)模式、4-bit模式和8-bit模式。当然数据线越多,传输越快嘛,但是处理起来也稍微繁琐。

除了上面的一些管脚,当然还少不了VCCGND等管脚喽,与其它外设不同的是,MMC类的设备,还会有一个检测引脚DET,用于检测是否存在卡设备(热插拔)。

好啦,上面我们对MMCSDSDIO进行简单了解,也知道了通信的常用方式与物理接口,当然其最核心在于通信的协议啦!由于协议过于复杂,我们放到后面了解。

4、参考文章

[1]:http://www.wowotech.net/basic_tech/mmc_sd_sdio_intro.html

【MMC子系统】 一、MMC/SD/SDIO介绍的更多相关文章

  1. [MMC]Linux MMC/SD/SDIO驱动分析

    转自:http://www.cnblogs.com/cslunatic/p/3678045.html 一.SD/MMC/SDIO概念区分 SD(SecureDigital)与 MMC(Multimed ...

  2. linux驱动基础系列--Linux mmc sd sdio驱动分析

    前言 主要是想对Linux mmc子系统(包含mmc sd sdio)驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.块设备驱动.设备模型等也不进行详细说明原 ...

  3. Linux内核之mmc子系统-sdio

    现在的Linux内核中,mmc不仅是一个驱动,而是一个子系统.这里通过分析Linux3.2.0内核,结合TI的arm335x平台及omap_hsmmcd host分析下mmc子系统,重点关注sdio及 ...

  4. [mmc]Linux下MMC/SD/SDIO的识别与操作

    转自:http://blog.csdn.net/skdkjzz/article/details/38927943 我们知道host在扫描卡的过程中,其识别的顺序为SDIO  SD MMC,并且从它的注 ...

  5. linux下MMC/SD/SDIO驱动系列之二 ---- host注册过程(一)

    参考了 http://blog.csdn.net/xieweihua2012/article/details/12844733 在他的基础上更详细的解析源 ...................... ...

  6. sdio/mmc/sd笔记

    [SDIO] SD card 初始化及常用命令解析 https://blog.csdn.net/u010443710/article/details/107014873 cmd0命令,是单向命令,ho ...

  7. Smart210学习记录-----SD/MMC/SDIO驱动

    转自:http://jingpin.jikexueyuan.com/article/23369.html http://blog.csdn.net/evilcode/article/details/7 ...

  8. Linux SD/MMC/SDIO驱动分析

    一.SD/MMC/SDIO概念区分 SD(SecureDigital)与 MMC(MultimediaCard) SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆 ...

  9. Linux SD/MMC/SDIO驱动分析_转

    转自:Linux SD/MMC/SDIO驱动分析    https://www.cnblogs.com/cslunatic/p/3678045.html#3053341 一.SD/MMC/SDIO概念 ...

  10. Linux MMC介绍

    1. 介绍 Linux中,将包括MMC.SD.SDIO统称为MMC子系统 MMC子系统从功能上可分为三个层次 - card层: Card驱动, 或称client驱动 - core层: MMC的核心层, ...

随机推荐

  1. 太牛叉了!国产 AI 智能体惊艳问世,全面致敬 FastGPT!

    太震撼了!太厉害了!昆仑万维正式发布了「天工 SkyAgents」平台,助力大模型走入千家万户.你听听,这个名字一听就有一种巧夺天工的感觉,技艺那是相当的高超. 这个平台基于昆仑万维「天工大模型」打造 ...

  2. 2024年 Kubernetes 四大趋势预测

    Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战.Kubernetes 最大的 ...

  3. Web测试基本思路:UI测试、功能测试和兼容性测试

    关于网站测试的基本思路,希望对测试小白有所帮助. 一.UI测试 用户界面测试主要是拿待测网页和设计稿进行对比,主要主要以下4点: 1.注重细节: 这点最基本,就是对比是细心.细心再细心. 2.主要整体 ...

  4. Not on FX application thread(八)

    Not on FX application thread(八) JavaFX 从入门到入土系列 当你不在主线程中操作UI时会出现以下异常: Not on FX application thread 可 ...

  5. 自签证书https

    1.下载编译好的openssl. http://slproweb.com/products/Win32OpenSSL.html 下载完成后运行安装: 记住你安装到的目录,等下打开这个文件夹(小贴士:最 ...

  6. 618狂欢结束,来聊聊华为云GaussDB NoSQL的蓬勃张力

    又到了一年一度的 618大促的时候,随着近十年网上购物的兴起,各大平台在不同的时期推出各种购物促销活动,极大的促进了消费,刺激了市场.同样,在科技领域,为了支撑突然而来的高并发,支持千万人同时在线浏览 ...

  7. 解锁华为云AI如何助力无人车飞驰“新姿势”,大赛冠军有话说

    摘要:在2020年第二届华为云人工智能大赛•无人车挑战杯赛道中,"华中科技大学无人车一队"借助华为云一站式AI开发与管理平台ModelArts及HiLens端云协同AI开发应用平台 ...

  8. DamiBus v0.51 发布

    DamiBus,专为本地多模块之间通讯解耦而设计(尤其是未知模块.隔离模块.领域模块).零依赖,特适合 DDD. 特点 结合 Bus 与 RPC 的概念,可作事件分发,可作接口调用,可作响应订阅. 支 ...

  9. sqlite3.OperationalError: no such function: JSON_VALID

    Initializing database.. Traceback (most recent call last): File "d:\program files\python38\lib\ ...

  10. Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置

    三台虚机的IP地址被DHCP重分了一下1.MySQL 配置 先建一个 nacos_config 数据库 将SQL执行(方法很多,选自己喜欢的就行) 2.修改 application.propertie ...