eMMC的数据读取,也就是data output,即host从eMMC端读取需要的data。
读取的方式有single read和multiple read两种,相关的command有CMD17/18/44/45/46。
接下来主要是讲解single read和multiple read的差异,涉及的command有CMD17和CMD18。
Single read主要用CMD17 (READ_SINGLE_BLOCK)。CMD17带的参数就是read的起始地址,数据大小由CSD[83:80]决定,一般是512bytes。下面是对应的protocol。
Multiple read主要用CMD18 (READ_MULTIPLE_BLOCK)。CMD18带的参数就是read的起始地址,数据大小由host决定。有两种方式决定数据大小:1、CMD18前用CMD23设定要read的block数量 2、read的过程中,用CMD12来进行中断,也可以知道此read的block数量。
1、CMD18前用CMD23设定要read的block数量,对应的protocol
2、read的过程中,用CMD12来进行中断,也可以知道此read的block数量,对应的protocol