文件名称:错误条件-专业嵌入式软件开发
文件大小:2.81MB
文件格式:PDF
更新时间:2024-06-30 15:25:51
sd协议
4.6 错误条件 4.6.1 CRC 和非法命令 所有的命令都通过 CRC 位来保护。如果寻址卡的 CRC 检查错误,卡不会反馈,命令也不 会执行。卡不会改变自身的状态,且在状态寄存器中设置 COM_CRC_ERROR 位。 类似的,如果收到无效命令,卡也不会改变状态,不会响应,并且在状态寄存器中设置 ILLEGAL_COMMAND 位。只有正确的状态分支会显示在状态图中(图 4-1 和图 4-3)。 表 4-29 包含了一个完成的状态转换描述。 有几种不同的非法命令: 卡不支持的组中的命令(比如只读卡里的写命令) 当前状态不允许的命令(Transfer 模式下的 CMD2) 没有定义的命令(CMD5) 4.6.2 读,写和擦除超时情况 卡应该在规定的时间内完成命令的处理,或者放弃并返回错误。如果主机没有在规定的 超时时间收到任何回应,那么会认为这张卡不会回应,然后尝试恢复(复位,重新上电,放 弃)。 4.6.2.1 读 对于标准卡来说,读操作的超时时间是100倍的标准访问时间或者是100ms(取较小的)。 读访问时间是 CSD 的参数 TAAC 和 NSAC 的和(见 5.3)。如果是单独的读操作,这些卡的参数 定义了读命令的结束位和数据块的起始位之间的延时。如果是多块的读操作,他们也定义了 块与块之间的标准延迟。 对于高速卡来说,TAAC 和 NSAC 是写死的值。主机应该使用 100ms(最小)作为超时时间, 而不是使用 TAAC 和 NSAC 的和。 4.6.2.2 写 对于标准卡来说,超时时间应该是 100 倍的标准操作时间,或者是 250ms(取较小的)。 CSD 中的 R2W_FACTOR 区域用来指示标准的操作时间,这个值乘以读访问时间就是写访问时