eMMC总线中,可以有一个Host,多个eMMC Device.总线上的所有通讯都由Host端以一个Command开发发起,Host一次只能与一个eMMC Device通讯。System 上电启动后,Host会为所有eMMC Device 分配地址(RCA, relative device address)。当Host需要和某一个eMMC Device 通讯时,会根据RCA选中该eMMC Device,只有被选中的eMMC Device才会响应Host的Command。
BUS protocol包含3种token(detail 5.3.1):
① Command:任何操作都要以CMD开始,只能由host发往device,且要串行完成
② Response:在device端接收到host发送的CMD,device 作为回应将通过command line 发送一个response,只能有device 发往host,且只能通过Command line串行传输
③ Data:data可由host发送device (写),可由device发往host (读),data线可以采用1线、2线、4线、8线传输,对于每条data线,可以选择单沿传输 single data rate还是双沿传输 dual data rate。每个数据线,每个cycle clock 数据可以传输1bit/2bit。
● Device地址由host controller 在初始化阶段指定配置。
● Device通过CID进行识别
● Bus操作由CMD,RES,data中的一种或者多种组成,包括:CMD,CMD+RES,CMD+RES+Data。
● 读写数据时,Data Block后跟CRC bits,支持Single data block读写和 Multilateral Data Block 读写,Command 发送stop 命令表示读写结束
● Program data,Device通过Data0的Busy位告知Host当前Block写入是否完成。