SD/SDIO/EMMC

前言

本文对SD/SDIO/EMMC做简单介绍,目标是对其有初步的了解和认识。

SD/SDIO传输模式

SD传输模式有以下3种:
SPI mode(required)
1-bit mode
4-bit mode

SDIO同样也支持以上3种传输模式。依据SD标准,所有的SD(记忆卡)与SDIO(外围)都必须支持SPI mode,因此SPI mode是「required」。此外,早期的MMC卡(使用SPI传输)也能接到SD插糟(SD slot),并且使用SPI mode或1-bit mode来读取。SD的MMC Mode

发展过程

 

 SDIO

 

SD

 EMMC

        扇区(block)是驱动可以操作的最小单位,是磁盘级别的。一个磁盘扇区(sector)512个字节(现在有4K的了),扇区(sector)是磁盘的最小存储单位,

        块(block)是文件系统层的,mkfs时可以设置块的大小.磁盘块(block)应该是类似FAT的簇大小的概念,是操作系统中分配磁盘容量的最小单位. 块(block)是数据存储的最小单位!

       我的理解,512字节和520字节(针对EMC)所指的不是block,而是硬盘扇区的大小。在EMC存储中,每个硬盘在出厂前就被格式化成每扇区520 字节(其中512字节可存放数据,另外8字节是存储FLARE的元数据。其他存储设备的硬盘一般默认都是每扇区512字节的。

       至于block的大小,在一般情况下,我觉得应该等同于strip大小。只有在创建了RAID之后才会有block的概念。stripe 和 strip之间的区别的确容易混淆,我是这么理解的,一个RAID中所有磁盘的strip合起来就是stripe。

    在创建RAID的时候,会让你选择Stripe size 以及Block size,

  • CRC Status Token

在写数据传输中,eMMC Device 接收到 Host 发送的一个 Data Block 后,会进行 CRC 校验。

如果校验成功,eMMC 会在对应的 Data Line 上向 Host 发回一个 Positive CRC status token (010)。

如果校验失败,则会在对应的 Data Line 上发送一个 Negative CRC status token (101)。

读数据时,Host 接收到 eMMC Device 发送的 Data Block 后,也会进行 CRC 校验,但是不管校验成功或者失败,都不会向 eMMC Device 发送 CRC Status Token。


Positive CRC status token

Negative CRC status token

参考

1、作者博文
SD卡介绍
各种SD卡参数及接口
EMMC 驱动代码流程详解---MCU
EMMC驱动简介(Renesas RH850)
UHS-I、UHS-II、UHS-III接口
硬盘、文件系统和存储 block、sector、 Stripe size区别
sd和emmc如何进行tuning
emmc tuning case data crc error
Linux MMC 驱动子系统简述(源码剖析)
eMMC之分区管理、总线协议和工作模式
eMMC(三)——工作模式_口袋里のInit的博客-CSDN博客
eMMC(补充2)——总线数据
eMMC的命令(command)和 响应(response)详解_
eMMC Sampling Tuning and linux mmc driver support

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值