一、概念

1、mmc的概念

mmc有很多种意义,具体如下:

  • mmc

MultiMedia Card,多媒体存储卡, 但后续泛指一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体。

  • 主要特性如下:
  • 工作电压:高电压为2.7~3.6 V,低电压为1.65~1.95 V,可选。
  • mmc总线

mmc总线是和I2C总线、SPI总线类似的一种总线结构。简化系统结构图如下(也可以理解为硬件框架图):

硬件特性:

卡与主控制器间串行传送,工作时钟频率范围为0~200 MHz。

mmc总线上最多可识别64 K个mmc设备,在总线上不超过10个卡时,可运行到最高频率。

具体总线连接参考《。。。》

使用mmc接口规范(MCI, Multimedia Card Interface)的设备都可以称之为mmc设备。

  • mmc设备

使用mmc接口规范(MCI, Multimedia Card Interface)的设备都可以称之为mmc设备.

又分成三个种类,如下

  • mmc type card

(1)标准mmc卡:闪存卡的一种,使用mmc标准。

(2)emmc:Embedded MultiMediaCard,是MMC协会所制定的内嵌式存储器标准规格,带有mmc接口,是具备mmc协议的芯片。

  • sd type card

(1)sd卡:SD卡为Secure Digital Memory Card, 即安全数码卡。它在MMC的基础上发展而来,增加了两个主要特色:SD卡强调数据的安全安全,可以设定所储存的使用权限,防止数据被他人复制。兼容mmc接口规范。

  • sdio type card

(1)sdio设备:SDIO是在SD标准上定义了一种外设接口,它和SD卡规范间的一个重要区别是增加了低速标准。在SDIO卡只需要SPI和1位SD传输模式。低速卡的目标应用是以最小的硬件开销支持低速IO能力。常见的sdio设备有Wi-Fi card、Bluetooth card等等。

注意,这几种类型的card统称为mmc card。

  • mmc协议

类似i2c协议、spi协议,mmc总线上也有一套自己的通讯规范。通信规范后续在说明。

而上述mmc设备基于上mmc总线通讯规范上由自身硬件特性设置了自己的一套协议。

jedec的协议规范可以去jedec的官网上下载

- 标准mmc卡协议
<1> mmc4.0
<2> mmc4.2——《JESD84-B42——MULTIMEDIACARD (MMC) ELECTRICAL STANDARD, HIGH CAPACITY (MMCA, 4.2) 》 - emmc协议(主要区别在于读写速度上)
<1> emmc4.41——《JESD84-A44》
<2> emmc4.5——《JESD84-B45》
<3> emmc5.0——《JESD84-B50》
<4> emmc5.1—— 《JESD84-B51——EMBEDDED MULTI-MEDIA CARD (e•MMC), ELECTRICAL STANDARD (5.1) 》 - sd协议
<1> SD2.0协议——《SD_Ver2.00_Final_060509》
<2> SD3.0协议——《SD_Ver3.00_Final_090416》
<3> SD4.0协议——《SD_Ver4.00_Final_130122》
  • mmc subsystem

kernel中的mmc subsystem用于管理所有mmc总线控制器以及mmc设备,包括mmc type card(标准mmc卡、emmc)、sd type card(sd卡)、sdio type card。

也就是说只要使用MCI的设备都交由mmc subsystem统一管理。

二、软件框架及说明

  • mmc core

对应于代码中的core目录。 mmc subsystem的实现核心。

负责抽象和管理mmc host、mmc device、mmc bus,为mmc device抽象出对应的card设备。规范mmc的操作集合。为底层驱动提供统一的接口。同时,也负责部分和card type相关的操作以及协议层的东西。

如上图所示:mmc core中又分成如下几个模块

  • mmc core主模块

  • bus模块

  • host模块

  • card模块

  • mmc host drivers

对应于代码中的host目录。

主要提供了一系列mmc host的具体实例的driver,例如sdhci-msm(高通)和sdhci-s3c(samsung)。

这里补充说明,sdhci并不是实际的host驱动,而是上述说明的sdhc标准的host的驱动部分。sdhci-msm和sdhci-s3c都使用了SDHC标准,故会借助sdhci driver(sdhci.c)来实现host。后续会说明。

  • mmc card drivers

对应于代码中的card目录。

主要实现驱动mmc core抽象出来虚拟的card,对接其他的模块,实现其实际的功能。

例如,mmc卡或者emmc是一种存储设备,mmc core会使用card目录中的block来实现mmc卡或者emmc的功能,生成对应的块设备。

1. [mmc subsystem] 概念与框架的更多相关文章

  1. 8. [mmc subsystem] host(第二章)——sdhci

    一.sdhci core说明 1.sdhci说明 具体参考<host(第一章)--概述> SDHC:Secure Digital(SD) Host Controller,是指一套sd ho ...

  2. 7. [mmc subsystem] host(第一章)——概述

    一.host简单说明 host,也可以理解为host controller,是指mmc总线上的主机端,mmc总线的控制器,每个host controller对应一条mmc总线. host contro ...

  3. 5. [mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)

    零.说明(重要,需要先搞清楚概念有助于后面的理解) 1.mmc core card相关模块为对应card实现相应的操作,包括初始化操作.以及对应的总线操作集合.负责和对应card协议层相关的东西. 这 ...

  4. 【转】Linux设备驱动--块设备(一)之概念和框架

    原文地址:Linux设备驱动--块设备(一)之概念和框架 基本概念   块设备(blockdevice) --- 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时 ...

  5. 基于 SOA 概念 RPC 框架 的 消息中心 云部署 设计 漫谈

    一.背景 假设有一个系统的最大并发量有2000TPS左右.同时该系统有闲时和忙时,希望可以随时进行拓展和削减服务能力,以节省服务器费用开销. 该系统能提供站内消息.短信.app消息.邮箱的一个消息系统 ...

  6. Linux内核中网络数据包的接收-第一部分 概念和框架

    与网络数据包的发送不同,网络收包是异步的的.由于你不确定谁会在什么时候突然发一个网络包给你.因此这个网络收包逻辑事实上包括两件事:1.数据包到来后的通知2.收到通知并从数据包中获取数据这两件事发生在协 ...

  7. 3.5Linux设备驱动--块设备(一)之概念和框架☆☆

    基本概念   块设备(blockdevice) --- 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性 ...

  8. Linux设备驱动--块设备(一)之概念和框架(转)

    基本概念   块设备(blockdevice) --- 是一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,从缓存一次性写入设备或者从设备一次性 ...

  9. USB驱动程序涉及的概念及框架

    引入:当我们把一个USB设备接入PC机时,会出现什么样的现象? 现象:把USB设备接到PC1.右下角弹出“发现android phone”2.跳出一个对话框,提示你安装驱动程序 首先来看一下,USB驱 ...

随机推荐

  1. 如何用Redis做LRU-Cache

    LRU(Least Recently Used)最近最少使用算法是众多置换算法中的一种. Redis中有一个maxmemory概念,主要是为了将使用的内存限定在一个固定的大小.Redis用到的LRU ...

  2. java并发之ReentrantLock学习理解

    简介 java多线程中可以使用synchronized关键字来实现线程间同步互斥,但在jdk1.5中新增加了ReentrantLock类也能实现同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定 ...

  3. 一个比ack速度快n倍的代码搜索工具: ag

    一个比ack速度快n倍的代码搜索工具:  ag 银搜索者(The Silver Searcher) 一个类似于代码搜索工具ack,着重于速度. Github:   https://github.com ...

  4. Volley 图片加载相关源码解析

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47721631: 本文出自:[张鸿洋的博客] 一 概述 最近在完善图片加载方面的 ...

  5. LaTeX 中图片格式错误情况

    Unknown graphics extension: .eps 利用宏包usepackage {graphicx} 是图片和pdflatex一起用时的错误.注:{不是所有的时候,有时候也能通过} 两 ...

  6. 2. 网友对app后端写作系列文章的写作建议

    很感谢"app后端"qq群的网友,在发布消息后,就收到了大量网友的反馈 下面的建议会融入到写作当中: 1.还有,对版本升级很感兴趣,我们现在为了兼容旧版本,已经把工程代码搞的乱哄哄 ...

  7. Cassadra & presto 集群部署

    四台服务器部署cassandra集群 和 presto搜索引擎 及代码演示: 还有很多细节没有补充,有问题和疑问的地方 咋们一起探讨哇!1.创建用户    使用root用户登录应用服务器,执行以下操作 ...

  8. 安装Navicat for MySQL

    注: 以下内容引自 https://www.cnblogs.com/da19951208/p/6403607.html Navicat for MySQL下载.安装与破解   一:下载Navicat ...

  9. 第一天 Java语言概述

    一.什么是软件 软件就是按照特定的顺序把数据和指令组合在一起,能够完成相应功能的程序. 软件分为两种: 系统软件:专门用户运行其他程序的平台.比如Linux.Windows.MAC等 应用软件:完成相 ...

  10. maven+springmvc的配置

    1. 首先创建1个mavenweb项目  如果没有的话最好是去官网下载一个最新版本的eclipse  里面什么都有 maven/gradle 啥的 2. 选择路径   没啥影响 就是一个路径 默认就行 ...