SD存储卡协议解析:从1.00到4.00,包括ffmpeg编译及超时处理

需积分: 50 33 下载量 179 浏览量 更新于2024-08-09 收藏 5.23MB PDF 举报
"错误条件-windows下自己动手一步步编译ffmpeg和ffplay" 在Windows环境下手动编译FFmpeg和FFplay的过程中,可能会遇到各种错误条件。这些错误通常涉及到CRC校验失败、非法命令、读写超时等。理解这些错误条件有助于顺利进行编译工作。 4.6 错误条件 4.6.1 CRC 和非法命令 CRC(Cyclic Redundancy Check)校验用于确保命令的正确性。当CRC检查发现错误时,存储卡不会执行命令,也不会给出反馈,只会设置状态寄存器中的COM_CRC_ERROR位。同样,接收到无效命令时,卡片会设置ILLEGAL_COMMAND位,不会改变自身状态。只有正确的状态分支会在状态图中显示。 4.6.2 读,写和擦除超时情况 读、写和擦除操作必须在预设时间内完成,否则卡片应返回错误。如果在规定超时时间内未收到响应,主机将认为卡片无响应并尝试恢复,如复位或重新供电。 4.6.2.1 读 对于标准SD卡,读操作的超时时间是CSD参数TAAC和NSAC的总和,或者100ms(取较小值)。对于高容量SDHC/SDXC卡,TAAC和NSAC是固定的,主机应使用100ms作为超时时间。 4.6.2.2 写 标准卡的写操作超时时间是100倍的标准操作时间或250ms(取较小值)。CSD中的R2W_FACTOR乘以读访问时间得到写访问时间。 此外,SD卡协议的更新也是重要的知识点: - SD4.0协议标准新增了对UHS-II接口的支持,提高了数据传输速度。 - 功率消耗和功率限制的管理,确保设备的能源效率。 - 附录中增加了关于主机电源网络的内容,优化了系统的电源管理。 - 物理层版本升级至3.01,提升了物理层面的数据传输稳定性和兼容性。 - 安全性方面,SD卡采用了新的密码算法,加强了内容保护,并支持SPI模式下的CPRM(Content Protection for Recordable Media)安全性。 在编译FFmpeg和FFplay时,了解这些协议细节可以有效地解决可能出现的硬件通信问题,从而成功完成编译过程。需要注意的是,不同版本的SD协议可能会影响到与卡的交互方式,因此在实际操作中需要根据所用设备的协议版本来调整相应的配置和代码。