0%

eMMC

eMMC

首先,我们要知道eMMC是什么?本质就是nano Flash+ic驱动芯片。说白了,它就是一个flash。

它与一般nano Flash的异同

相同

一般我们使用nano flash只能用于存储而不能运行代码,运行代码的flash是nor flash。我们一般都是通过协议来进行通信也就是说,我们开发nano flash其实也是对它的驱动ic来进行通信操作。

差异

与NAND Flash不同的是,eMMC通常具有较小的存储容量,通常在几十GB或几百GB的级别。eMMC可以作为内置存储器使用,并且由于其内置控制器的作用,可以实现快速的读写操作。因此,eMMC适合于移动设备、嵌入式系统和一些消费电子产品等领域的应用。而与SSD相比,SSD的存储容量可以达到数TB,更适用于需要大容量、高速存储的场景,例如用于企业服务器、工作站、高端游戏电脑等。

eMMC驱动ic引脚

CLK: 用于同步的时钟信号

Data Strobe: 此信号是从Device端输出的时钟信号,频率和CLK相同,用于同步从Device端输出的数据。

CMD:此信号用于发送Host 的command和Device的response。

DAT0-7:用于传输数据的8bit总线

根据驱动ic来选数据位模式。

通信过程

flash,一般是nor flash直接扩容,直接FSMC把flash加入可用地址中;或者驱动ic来增加空间,也就是使用spi来进行通信。

不过emmc的话,就是纯靠硬件外设去通信了。比如可以使用mcu,通过cube来配置emmc的外设寄存器,可以是1、4、8数据位模式,对应驱动ic的引脚,有的1、4、8位的并行数据线;设置为host的设备,速度模式自行选择。如下博客所示:

【经验分享】STM32使用HAL库驱动emmc存储芯片读写_stm32 emmc-CSDN博客

用途

常见的就是用于 手机内存、一些移动的嵌入式内存。不过mcu和小型的soc就别想了,都是一整块flash搞定的事情。一般开发安卓的时候才能用到这些东西,使用方法也是根据手册,或者厂商写好了块设备添加到文件系统中。

note:还有一点就是千万别把内存和存储空间搞混了,这两个不是一个东西啊,而且要知道一件事情,函数不是运行在ram中,函数是固定不动,ram中是存放变量得哦。常见得固态,机械硬盘、U盘这些都是存储空间。内存条、nor flash、ddr技术这些才是内存哦。

-------------下次的来访是什么时候呢[doge]-------------