OPERATION MODE: boot mode/ device identification mode/ interupt mode / data transfer mode/ inactive mode
协议中对各个mode的界定如下图所示:
1. boot mode
上电重启后,设备将进入boot mode,主要进行boot数据的读取操作,在不掉电的情况下进入boot mode有两种方式,一是拉低 CMD 信号并保持不少于 74 个时钟周期,另外一个方法是保持 CMD 信号为高电平,74 个时钟周期后,发送参数为 0xFFFFFFFA 的 CMD0 命令,对应结束boot mode的方法是传输过程中,拉高 CMD 信号,以及发送参数为 0xF0F0F0F0 的 CMD0 命令。
2. device identification mode
该模式下,所以的数据通信在cmd line完成,有以下操作:
host reset device
检查操作电压范围和访问模式
识别设备
指定bus上的设备RCA(relative device address)
3. data transfer mode
该模式下的所有通信都是host和device之间点对点的,可实现对emmc的编程,对存储区属性的设计,数据的读取、擦除,总线的测试等功能。
数据读取命令:block读取(cmd17) multiple block读取(cmd18)
send tuning block(cmd21)和send write protect(cmd30)
数据写命令:block write(cmd24和cmd25) write CID(cmd26) write CSD(cmd27)
init状态转换:
power on —> cmd0(IDLE state) —> cmd1 —>READY state —> cmd2 —> identification state —> cmd3 —> standby state —> cmd7 —> transfer state
read data状态转换:
transfer state —> cmd8 —> sending-data state —> cmd12 —> operating complete —> transfer state
write data状态转换:
transfer state —> cmd4 —> receive-data state —> transfer complete —> programming state —> operation complete —> transfer state
4. interrupt mode
host 或者device同时进入此模式,该模式下不做数据传输,只允许host或者device送出中断服务请求,interrupt service request