eMMC识别过程:
1. Host发送CMD1,所有设备以线与方式响应CMD1,不兼容的设备进入inactive状态;
2. Host发送广播命令CMD2(ALL_SEND_CID),获取设备的CID。每个设备都拥有唯一的128Bits的CID,其内容具体如下:
Name | Field | Width | CID-Slice |
Manufacturer ID | MID | 8 | [127:120] |
Reserved | 6 | [119:114] | |
Device/BGA | CBX | 2 | [113:112] |
OEM/Application ID | OID | 8 | [111:104] |
Product name | PNM | 48 | [103:56] |
Product revision | PRV | 8 | [55:48] |
Product serial number | PSN | 32 | [47:16] |
Manufacturing date | MDT | 8 | [15:8] |
CRC7 checksum | CRC | 7 | [7:1] |
not used, always “1” | - | 1 | [0:0] |
所有未识别的设备在收到此命令后线与模式下逐位发送自己的CID,当前已发送CID与自己的不匹配的,停止发送CID,等待下次CMD2命令再发送。最终,有且仅有一个EMMC设备会将自己的CID全部发送给Host;
3. 通过CMD3(SET_RELATIVE_ADDR)命令设置当前唯一EMMC设备的RCA地址,以后访问该设备时即可通过该RCA地址来进行控制操作。EMMC设备此后进入standby,接口切换至PP(push-pull)模式。
4. 重复上面的动作,直到所有设备识别完成。