解读一下EMMC文档协议,下面的内容是我们在coding写代码的时候,必须要弄明白的东西,Emmc规格书的内容很多,下面是我自己总结的核心内容,希望对大家的学习工作都有所帮助。
创作不易,给点赞收藏加关注,感谢,哈哈哈。
目录
Detailed command description(命令详细说明)
Device state transition table (设备状态转换表)
总体概括:
第1-5章主要将讲解的是eMMC协议整体框架 协议类型,
协议总线特性(CLK CMD DS DATAD等总线),第六章主要讲述的是eMMC的状态机,分区管理等,第7 章主要 详解设备寄存器(OCR register CID CSD externed CSD Rsegister RCA DSR QSR。不同寄存器操作原理都是类似的。具体看手册。等),第八章(错误保护), eMMC机构标准 分区管理,其实呢内容最多最重要的还是第六章。
eMMC架构图
eMMC(Embedded Multi Media Card)好处就是emmc提供统一的访问接口,把不同nandflash的访问差异交给模块中eMMC,处理器只需要用统一的标准eMMC接口即可访问 Nandflash
eMMC引脚定义
和SPI通信方式相似,都是一主多从模式 SPI通信方式:主设备发送命令字通知从设备的鉴别访问 的类别,而后发送访问地址和数据 。
简单介绍一下SPI:
SPI:是全双工且SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps
CS/SS:从设备片选信号,由主设备控制。它的功能是用来作为“片选引脚”,也就是选择指定的从设备,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。
SCLK:串行时钟信号,由主设备产生。
具体更多的details网上查阅相关资料。
eMMC所有的命令和响应都是Command总线上发送的,CMD分很多类具体可以查看一下手册。
Memory Addressing
在4.1规范之前使用32位地址,最高容量达到2G;4.1之后采用512Byte扇区访问模式(eMMC中1Block=512Byte NANDFLASH 1Block=1024BYTE),可支持大于2G的存 储空间。
host读取OCR寄存器位[39:29]确定寻址模式。 How to set具体看手册第七章寄存器详解
OCR(Operation Conditions Register,操作条件寄存器): 作用:OCR用于识别Host设备支持的电压类型。
应用场景:在设备初始化时,主机通过发送特殊命令读取OCR,以确认设备的工作电压。
eMMC Device Overview
eMMC接口与Host(主机)进行通信,实现eMMC的协议逻辑: CLK:时钟信号,用于主机与eMMC卡间的同步。
Data Strobe:数据锁存信号,eMMC卡端的输出信号 用于HS400模式
CMD:用于传输从主机端发出的命令command和eMMC卡端发出的回应respons DATA0 ~ DATA7:用于在主机和eMMC卡间传输数据
Reset:复位信号线,主要用于主机对eMMC卡进行复位操作
VCCQ对GPIO引脚供电
GPIO的几种配置模式:
PP: PUSH PULL推挽输出 通常用于输出模式,表示信号线可以驱动高电平或低电平,
OD open-Drain开漏输出 这是一种输出配置,其中晶体管的漏极连接到负载,源极接地,用于实现高阻抗输出(默认情况下为高电平)。
Register Introduction
CID 16BYTE 128bit 其中bit127:120]为MID bit[113:112]为CBX(indicates device type)。。。。如何设置具体也可看手册。
Bus protocol
Nand-FLASH的每个Block大小为1024Byte,eMMC则为512Byte。
分为读 写总线协议 每一个命令都是由CMD总线传输,Host发送