• SD/MMC的Commands和Responses的总结


    SD总线通信是基于指令和数据比特流,起始位開始和停止位结束。

    SD总线通信有三个元素:
    1.Command:由host发送到卡设备。使用CMD线发送。

    2.Response:从card端发送到host端,作为对前一个CMD的对应,通过CMD线发送;

    3.Data:即能从host传输到card,也能从card传输到host。通过data线传输。

    一、Commands
    下面是四种用于控制卡设备的指令类型,每一个command都是固定的48位长度:
    1、broadcast commands(bc)。 no response:广播类型的指令。不须要有响应;
    2、broadcast commands with response(bcr):广播类型的指令且须要响应;
    3、addressed(point-to-point) commands(ac):由HOST发送到指定的卡设备,没有数据的传输;
    4、address(point-to-point) data transfercommands(adtc):由HOST发送到指定的卡设备且伴随有传输数据。

    Command format例如以下:


    Byte1:0 1 x x x x x x(命令号。由指令标志定义CMD39为100111即16进制0x27。那么完整的CMD39第一字节为01100111,即0x27+0x40)。
    Byte2-5:Command Arguments,命令參数,有些命令没有參数。


    Byte6:前7位为CRC(Cyclic Redundacy Check。循环冗余校验)校验位,最后一位为停止位0。

    当中bit[45:40]共6bit组成了Command index,换句话说。总共同拥有2^6次方(64)个CMD,这些CMD伴随在卡的初始化、识别、读写、擦除数据都会用到。

    关于命令的具体描写叙述參考《Part_1_Physical_Layer_Specification_Ver3.00_Final_090416》的4.7.4 Detailed Command Description。在P88能够找到对应的CMD的具体介绍。

    二、Responses
    全部的response都通过CMD线发送到host端。R4和R5响应类型是SDIO中特有的:
    1、R1(normal response command):用来响应经常使用指令;
    2、R2(CID,CSD register):用来响应CMD2和CMD10或CMD9。并把CID或CSD寄存器作为响应数据。
    3、R3(OCR register):用来响应ACMD41指令,并把OCR寄存器作为响应数据;
    4、R6(published RCA response):分配相对卡地址的响应。
    5、R7(card interface condition):响应CMD8,返回卡支持的电压信息;
    6、R4(CMD5):响应CMD5,并把OCR寄存器作为响应数据;
    7、R5(CMD52):CMD52是一个读写寄存器的指令,R5用于CMD52的响应。

    Response的格式例如以下:


    关于响应的具体描写叙述參考《Part_1_Physical_Layer_Specification_Ver3.00_Final_090416》的4.9 Responses 在P98能够找到对应的Responses的具体介绍。

  • 相关阅读:
    导出预设体的缩略图工具
    FairyGui自动生成Wnd工具(Unity)
    Unity骨骼优化(转)
    顶点处理机制
    面向对象
    文件读取
    协同程序
    元表
    模块与包
    Lua表
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6865749.html
Copyright © 2020-2023  润新知