SD协议-命令响应
1.CRC

- 发送命令或数据的时候,都需要经过芯片的IO口,SD Host和SD卡是通过PCB的走线连接在一起的,SD Host IO --> PCB线 --> SD Card IO,PCB走线容易受到电磁干扰,所以在传递的数据的时候可能出现错误
- 在进行数据或者指令传输的时候,会跟一段数据的编码(CRC),CRC的位宽通常比数据位宽小很多

- 在传输数据和命令的时候,发送端有一个CRC生成器,当数据发送完之后,再传输CRC生成器生成的CRC(CRC-m)
- 在接收端,不断接收数据,一边接收数据,也会一边生成自己的CRC(CRC-s),然后通过比较器cmp比较CRC-m和CRC-s,如果相同,就表示数据没有问题
- 如果CRC-m和CRC-s如果不同,有两种情况,数据传输出现错误或者CRC传输的时候出现错误,就不能使用这一笔数据,接收端会发送信息给发送端,将接收到数据并出错的信息返回给发送端,发送端一般会再次发送一次数据
- CRC的作用主要是为了校验发送的数据是不是传输正确
1.1 CRC生成

- 对于CMD来讲使用的是CRC7,7bitCRC
- CRC生成多项式:CRC7,最高次幂是7,系数为1;其他次幂前的系数是0或者是1
- 最高次幂是多少就有多少个寄存器,data out和data in做异或逻辑,输入到第一个寄存器
- x3之前的系数是1,就在第三个寄存器后面加异或逻辑,哪一项系数是1,就在其所在次幂的寄存器之后加一个异或逻辑

- DATA位宽比较宽,使用的是CRC16
2.Command种类及格式

- bc(Broadcast) - 命令总是从SD Host发送给SD Card,SD Host发送一些命令,所有的SD Card都会收到这个命令
- bcr - Broadcast with response,需要SD卡进行回复
- ac - Address command(point-to-point command),没有data transfer
- actc - Address data transfer command,比如CMD发送出去之后附带有数据返回或者输出
- SD Host在进行读写的时候,只会要求一个SD Card进行读写
- 最高位是1bit,0表示开始
- transmission bit:0表示响应回来的数据,1表示发送的命令
- command index:CMD3,4,5,6,7,具体的命令编号通过[45:40]进行体现
- argument:命令附带的参数,比如电压等信息,体现在这里面
- CRC7:CRC7编码
- 最低位1bit,1结束
2.1 CMD类型

- CMD0 - 所有的SD Card都会回到IDLE状态
- CMD2 - SD Card返回CID
- CMD3 - SD Card返回RCA,SD Host收到RCA之后,会进行存储
- CMD4 - 设置DSR(Driver Stage),设置驱动等级,挂载的SD Card越多或者总线越长,驱动能力需求越强,在standby状态下可以通过CMD4设置驱动能力
- CMD7 - argument中会携带RCA,SD Card收到之后会进行比对RCA值,相同则转到data transfer state

- CMD8 - check电压值
- CMD9 - 给SD A通信就发送A的RCA,返回CSD
- CMD10 - 返回CID值
- CMD12 - stop transmission(用于multiple block transfer)
- CMD13 - 返回状态信息
- CMD17,18 - single,multiple block transfer, SD Card处于data transfer state
- 存在一些保留的指令,方便增加指令
SD协议-命令响应的更多相关文章
- HTTP协议请求响应过程和HTTPS工作原理
HTTP协议 HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本. 服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议.与之类似的还有文件传送协议(file transfer p ...
- HTTP协议请求响应模型
HTTP协议请求响应模型:以”用户登录“这个场景来描述 第一步:客户端发起请求到API接口层,操作:用户在客户端填写用户名和密码,点击登录,发送请求. 第二步:api接收到客户端发起的用户请求,api ...
- HTTP协议:响应消息
一.请求消息:客户端发送给服务器端的数据 数据格式: 1.请求行 2.请求头 3.请求空行 4.请求体 二.响应消息:服务器端发送给客户的数据 数据格式: 1.响应行: 1.组成:协议/版本 响应状态 ...
- IMAP协议命令(详细)
参照:http://www.cnblogs.com/qiubole/archive/2007/11/23/970180.html 转载:http://blog.sina.com.cn/s/blog_5 ...
- MFC中菜单的命令响应顺序
响应只可以由Doc,View,MainFrame以及APP四个类完成. 响应顺序是: 点击某菜单项,框架类最先接到菜单命令消息. 框架类把接收到得这个消息交给它的子窗口,即视图类. 视图类根据命令消息 ...
- 9. http协议_响应状态码_页面渲染流程_路由_中间件
1. http协议 超文本传输协议 协议详细规定了 浏览器 和 万维网服务器 之间互相通信的规则 客户端与服务端通信时传输的内容我们称之为报文(请求报文.响应报文) 常见的发送 get 请求方式 在浏 ...
- 自制操作系统Antz(11)——实现shell(下)命令响应
我已经规范了系统代码风格,类似于按照linux分包,把各部分功能区分开了 Antz系统更新地址 Linux内核源码分析地址 Github项目地址 在之前的任务中,我们已经通过直接操作显卡驱动完成了简单 ...
- HTTP协议—HTTP响应头和请求头
HTTP请求头提供了关于请求,响应或者其他的发送实体的信息. HTTP的头信息包括通用头.请求头.响应头和实体头四个部分.每个头域由一个域名,冒号(:)和域值三部分组成. 通用头标:即可用于请求,也可 ...
- Web协议详解与抓包实战:HTTP1协议-HTTP 响应行(3)
一.HTTP 响应行 二.响应码分类:1xx 三.响应码分类: 2xx 1. 201 Created: 有新资源在服务器端被成功创建 2.207 Multi-Status:RFC4918 ,在 WEB ...
- HTTP协议之响应头Date与Age
HTTP没有为用户提供一种手段来区分响应是缓存命中的,还是访问原始服务器得到的.客户端有一种方法能判断响应是否来自缓存,就是使用Date首部.将响应中Date首部的值与当前时间进行比较,如果响应中的日 ...
随机推荐
- python进阶:带你学习实时目标跟踪
摘要:本程序主要实现了python的opencv人工智能视觉模块的目标跟踪功能. 本文分享自华为云社区<python进阶--人工智能实时目标跟踪,这一篇就够用了!>,作者:lqj_本人 . ...
- Latex符号
上标 $\hat{x}$ : \(\hat{x}\) $\widehat{x}$ : \(\widehat{x}\) $\tilde{x}$ : \(\tilde{x}\) $\widetilde{x ...
- MySQL 中索引是如何实现的,有哪些类型的索引,如何进行优化索引
MySQL 中的索引 前言 索引的实现 哈希索引 全文索引 B+ 树索引 索引的分类 聚簇索引(clustered index) 非聚簇索引(non-clustered index) 联合索引 覆盖索 ...
- 在云服务器上搭建个人版chatGPT及后端Spring Boot集成chat GPT
总结/朱季谦 本文分成两部分,包括[国内服务器上搭建chat GPT]和[后端Spring Boot集成chat GPT]. 无论是在[国内服务器上搭建chat GPT]和[后端Spring Boot ...
- 全网最详细中英文ChatGPT-GPT-4示例文档-信息智能提取从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)
目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node.js接口请求示 ...
- C++ 测试框架 GoogleTest 初学者入门篇 乙
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/aFeiOGO-N9O7Ab_8KJ2wxw 开发者虽然主要负责工程 ...
- 最新版本 Stable Diffusion 开源 AI 绘画工具之使用篇
目录 界面参数 采样器 文生图(txt2img) 图生图(img2img) 模型下载 界面参数 在使用 Stable Diffusion 开源 AI 绘画之前,需要了解一下绘画的界面和一些参数的意义 ...
- 面试题:JS如何最快的执行垃圾回收机制
因为没看见答案,所以也不知道对不对. JavaScript 的垃圾回收机制是由 JavaScript 引擎自动管理的,通常情况下我们无法控制垃圾回收机制的执行时间和频率. 然而,我们可以采取一些优化策 ...
- CSS实现段落首行缩进两个字符
段落前面空两个字的距离,不要再使用空格了,对于文字,需要使用4个 才会显示汉字2个字符空格的效果. 用CSS实现段落首缩进两个字符,应该使用首行缩进text-indent.text-indent可以使 ...
- 【FAQ】统一扫码服务常见问题及解答
1.隐私政策是怎么样的?收集哪些信息? 关于Scan Kit的隐私政策及收集的信息,请查看SDK隐私安全说明. Android:SDK隐私安全说明 iOS:SDK隐私安全说明 2.如何使用多码识别?多 ...