The bus protocol between the eMMC/SD/SDIOi host controller and the card is message-based. Each message is represented by one of the following parts:
- Command: A command starts an operation. The command is transferred serially from the eMMC/SD/SDIO host controller to the card on the CMD line.
- Response: A response is an answer to a command. The response is sent from the card to the eMMC/SD/SDIO host controller. It is transferred serially on the CMD line.
- Data: Data are transferred from the eMMC/SD/SDIO host controller to the card or from a card to the eMMC/SD/SDIO host controller using the data lines.
- Busy: The DAT[0] signal is maintained low by the card as far as it is programming the data received.
- CRC status: The CRC result is sent by the card through the DAT[0] line when executing a write transfer. In the case of transmission error, occurring on any of the active data lines, the card sends a negative CRC status on DAT[0]. In the case of successful transmission, over all active data lines, the card sends a positive CRC status on DAT[0] and starts the data programming procedure.