SD卡协议中文解析:命令格式、工作模式和状态变换
3星 · 超过75%的资源 需积分: 9 35 浏览量
更新于2024-07-28
收藏 2.7MB DOC 举报
SD卡协议中文
SD卡协议是SD卡与主机之间的通信协议,用于实现数据的传输和交换。该协议定义了SD卡的总线模式、命令格式、响应格式和数据格式等内容。
一、SD卡总线模式
SD卡总线模式下,包括CLK、CMD、DAT0-3、VDD和VSS五个信号线。其中,CLK为时钟信号,CMD为双向命令和响应信号,DAT0-3为双向数据信号,VDD和VSS为电源和地信号。
在SD模式下,允许有一个主机和多个从机(即多个卡),主机可以给从机分别地址。主机发送命令,有些命令是发送给指定的从机,有些命令可以以广播形式发送。SD模式下可以选择总线宽度,即选用几根DAT信号线,主机可以在初始化后设置。
二、SD卡命令描述
SD卡命令可以分为广播命令和点对点命令两种。广播命令是给所有卡都发送的,某些命令需要响应。点对点命令是给指定地址的卡发送的,需要响应。
SD卡系统有两种工作模式:卡识别模式和数据传输模式。卡识别模式下,主机上电复位后即处于此模式,卡复位后也处于此模式,直到SEND_RCA(CMD3)命令到来。数据传输模式下,卡收到SEND_RCA(CMD3)命令后即进入此模式,主机识别到卡后也进入此模式。
三、SD卡命令格式
SD卡命令格式包括命令、响应和数据三部分。命令是由主机发往从机的比特流,用于启动一个操作。响应是由从机发往主机的比特流,用于之前命令的回答。数据是由主机或从机发往对方的比特流,用于数据传输。
四、SD卡状态和工作模式
SD卡有两种状态:IdleState和InactiveState。卡识别模式下,卡的状态变换图如下所示:
卡识别模式下,主机复位总线所有的卡,验证工作电压,询问卡的地址。这个模式下所有数据的传输都是只通过CMD线来完成。卡的复位是通过GO_IDLE_STATE(CMD0)命令或卡上电实现的。此时卡将其RCA设为0,相关寄存器设为传输稳定的最优模式。
工作电压验证是通过SD_SEND_OP_COND(ACMD41)命令实现的,该命令用来判断卡的工作电压是否符合,如果不符合的话,卡应该放弃总线操作,进入InactiveState状态。在发送SD_SEND_OP_COND(ACMD41)命令前记得要首先发送APP_CMD(CMD55)。
SD卡协议是SD卡与主机之间的通信协议,定义了SD卡的总线模式、命令格式、响应格式和数据格式等内容,并规定了SD卡的状态和工作模式。
2020-09-28 上传
2022-07-15 上传
2021-09-24 上传
2023-06-05 上传
2023-07-22 上传
2024-01-15 上传
2023-03-20 上传
2023-07-08 上传
2023-12-06 上传
Augusdi
- 粉丝: 1w+
- 资源: 5755
最新资源
- C++ Qt影院票务系统源码发布,代码稳定,高分毕业设计首选
- 纯CSS3实现逼真火焰手提灯动画效果
- Java编程基础课后练习答案解析
- typescript-atomizer: Atom 插件实现 TypeScript 语言与工具支持
- 51单片机项目源码分享:课程设计与毕设实践
- Qt画图程序实战:多文档与单文档示例解析
- 全屏H5圆圈缩放矩阵动画背景特效实现
- C#实现的手机触摸板服务端应用
- 数据结构与算法学习资源压缩包介绍
- stream-notifier: 简化Node.js流错误与成功通知方案
- 网页表格选择导出Excel的jQuery实例教程
- Prj19购物车系统项目压缩包解析
- 数据结构与算法学习实践指南
- Qt5实现A*寻路算法:结合C++和GUI
- terser-brunch:现代JavaScript文件压缩工具
- 掌握Power BI导出明细数据的操作指南