SD卡通信协议那些事

2023-11-03

SD卡通信

SD卡通信协议主要包括物理层、数据传输层和应用层三个部分。

物理层:SD卡使用SPI或SDIO两种物理层协议进行通信。SPI是一种同步串行通信协议,使用4根信号线进行通信;SDIO是一种异步串行通信协议,使用9根信号线进行通信。

数据传输层:SD卡使用命令响应式数据传输(Command Response Data Transfer)协议进行数据传输。该协议采用命令-响应机制,每个命令都有一个响应,响应的类型有四种,分别是R1、R2、R3和R7。在数据传输过程中,SD卡可以使用多种数据传输模式,如单块传输、多块传输、数据读取和数据写入等。

应用层:SD卡应用层协议主要包括文件系统和命令集两个部分。文件系统包括FAT12、FAT16、FAT32和exFAT等多种文件系统格式,用于管理SD卡中存储的文件和目录。命令集包括SD卡的基本命令集和扩展命令集,用于控制SD卡的读写操作。

命令响应式数据传输

命令响应式数据传输(Command Response Data Transfer)协议是SD卡数据传输层的协议,用于控制SD卡的读写操作。

该协议采用命令-响应机制,每个命令都有一个响应,响应的类型有四种,分别是R1、R2、R3和R7。
命令格式:
SD卡命令由6个字节组成,其中第一个字节为命令码,后面的5个字节为命令参数。命令码和命令参数组合成完整的命令,用于控制SD卡的读写操作。

响应格式:
SD卡的响应由1个到3个字节组成,响应类型有四种,分别是R1、R2、R3和R7。其中,R1响应是最常见的响应类型,用于表示命令是否执行成功。R2响应用于CID和CSD寄存器的读取操作,包含16个字节的寄存器数据。R3响应用于SD卡初始化操作,包含32位的OCR寄存器数据。R7响应用于CMD8命令的响应,包含8个字节的响应数据。

数据传输:
SD卡支持多种数据传输模式,包括单块传输、多块传输、数据读取和数据写入等。在数据传输过程中,SD卡会根据命令和响应的类型进行数据传输,以完成读写操作。

总之,命令响应式数据传输协议是SD卡数据传输层的核心协议,用于控制SD卡的读写操作。掌握该协议的原理和实现方式,对于开发SD卡驱动程序和应用程序具有重要意义。

SD通信举例

比如以读取SD卡CID寄存器为例,以下是命令响应式数据传输协议的具体实现步骤:

发送CMD10命令,CMD10命令的命令码为0x0A,表示读取CID寄存器,命令参数为0x00000000,表示读取第0个块的数据。

等待SD卡响应,SD卡会返回R1响应,R1响应的第一字节为0x00,表示命令执行成功。

继续等待SD卡响应,SD卡会返回R2响应,R2响应包含16个字节的CID寄存器数据,这些数据包含了SD卡的制造商信息、容量信息等。

解析CID寄存器数据,提取需要的信息,比如SD卡的制造商ID、产品系列号、容量等。

完成CID寄存器的读取操作。

以上就是读取SD卡CID寄存器的命令响应式数据传输协议的实现步骤。

【最后一个bug】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SD卡通信协议那些事 的相关文章

  • Select For update语句浅析

    Select forupdate语句是我们经常使用手工加锁语句 通常情况下 select语句是不会对数据加锁 妨碍影响其他的DML和DDL操作 同时 在多版本一致读机制的支持下 select语句也不会被其他类型语句所阻碍 借助for upd
  • chi square-卡方分布的定义及性质

    chi square 卡方分布的定义及性质 摘要 2 chi 2 2分布 卡方分布 的定义 g
  • Anchor-Free即插即用

    点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 后台回复 多模态综述 获取论文 后台回复 ECCV2022 获取ECCV2022所有自动驾驶方向论文 后台回复 领域综述 获取自动驾驶全栈近80篇综述论文 Anchor

随机推荐

  • 做什么副业比较靠谱,这五个正规项目,记得收藏

    人这一生不易 每个阶段都会有压力和烦恼 尤其是成年人 上有老下有小的 生活的重担都在一个人身上 压得人喘不过气 生活的方方面面都需要钱 仅靠工资已经很难维持一家人的开支了 所以很多人打算利用业余时间做点副业 来增加收入 可是不知道做什么 哪
  • Roaming\npm\node_modules\nrm\node_modules\open\index.js:38

    nrm1 2 1版本安装遇到的问题 C Users Cwqiang gt nrm ls C Users Cwqiang AppData Roaming npm node modules nrm node modules open index
  • ViewModel 的基本用法

    文章目录 ViewModel简介 ViewModel 的基本用法 向ViewModel传递参数 ViewModel简介 ViewModel 应该算是Jetpack 中最重要的组件之一了 其实Android 平台上之所以会出现注入MVP MV
  • 统一软件开发过程(RUP)分析

    什么是RUP RUP Rational Unified Process 统一软件开发过程 统一软件过程是一个面向对象且基于网络的程序开发方法论 RUP是风险驱动的 基于Use Case技术的 以架构为中心的 迭代的 可配置的软件开发流程 R
  • 谈谈头文件

    一 头文件的定义 C语言中常常使用预处理指令 include 把另一个文件的内容复制到源文件当中 被复制的文件就是头文件 其后缀名为 h 二 头文件的作用 1 在多文件的工程当中 头文件用于全局变量 外部函数的声明 其本身不包含程序的实现代
  • Type Conversion and Function Overloading___CH_8

    8 1 Implicit type conversion coercion What happens when a type conversion is invoked When a type conversion is invoked w
  • 使用Xpose突破安卓App禁止截屏限制

    WindowManager LayoutParams FLAG SECURE标志的app 这里需要注意下支付宝 网上银行类的app不建议拦截 像支付宝里的付款码 商家拿到后 直接就能扣费 不需要用户这边的确认 所以其实这款应用是可以用在多个
  • HNUCM-OJ 1401: 递归求解

    http acm hnucm edu cn JudgeOnline problem php id 1401 题目描述 使用递归编写一个程序 求以下数列的前n项 s 1 1 2 1 3 1 4 1 5 1 6 1 n 输入 多组数据输入 每组
  • HDF5 使用介绍

    1 HDF5介绍 HDF 是用于存储和分发科学数据的一种自我描述 多对象文件格式 HDF 是由美国国家超级计算应用中心 NCSA 创建的 以满足不同群体的科学家在不同工程项目领域之需要 HDF 可以表示出科学数据存储和分布的许多必要条件 H
  • 第二节:微信小程序静态页面开发初体验

    根据上一节了解到的小程序知识 尝试完成一个入门的demo项目 记录下过程 供日后参考 第一个页面 打算做一个新闻信息展示的静态页面 首先展示一下最后完成的效果 页面很简单 分成三个部分 页面标题 中间的轮播图和下面的图文信息 轮播图的实现
  • 云演CTF: 007.blog

    云演CTF 007 blog 作者 admin 时间 2021 05 28 分类 信息收集 打开就是登录界面 直接 123456 出现弹窗 还以为是js验证 想多了 CTRL u打开源码 function var login login l
  • 复原ip地址--回溯算法

    LeetCode 复原IP地址 给定一个只包含数字的字符串 复原它并返回所有可能的IP地址格式 有效的IP地址正好由四个整数 每个整数位于0到255之间组成 整数之间用 分隔 示例 输入 25525511135 输出 255 255 11
  • 径向基函数

    注意核函数是一回事 径向基函数是另一回事 核函数表示的是高维空间里由于向量内积而计算出来的一个函数表达式 后面将见到 而径向基函数是一类函数 径向基函数是一个它的值 y 只依赖于变量 x 距原点距离的函数 即 也可以是距其他某个中心点的距离
  • 我使用的Vim插件

    2023年9月5日 周二下午 为了方便以后还原自己的Vim插件配置 于是写这篇博客来记录一下 不定期更新 目录 语法检查Syntastic 文件树The NERD tree 自动补全括号auto pairs 超轻量级自动补全vim auto
  • 交换机端口安全实验

    文章目录 一 实验的背景与目的 二 实验拓扑 三 实验需求 四 实验解法 1 PC配置IP地址部分 2 在SW1上开启802 1X身份验证 3 创建一个用户身份验证的用户 用户名为wangdaye 密码为123456 4 创建一个端口隔离组
  • 死锁,死锁必要条件及处理策略

    大自然的搬运工 完美分割线 多线程中 常见的一种问题除了竞态条件外就是死锁 那什么是死锁呢 死锁就是 是指两个或两个以上的进程在执行过程中 因争夺资源而造成的一种互相等待的现象 若无外力作用 它们都将无法推进下去
  • 图片在div中居中

    一 方法1 html代码 div class content img src img 举手yeah png div css代码 content display flex justify content center align items
  • 微服务网关实战——Spring Cloud Gateway

    导读 作为Netflix Zuul的替代者 Spring Cloud Gateway是一款非常实用的微服务网关 在Spring Cloud微服务架构体系中发挥非常大的作用 本文对Spring Cloud Gateway常见使用场景进行了梳理
  • 带你一周刷完操作系统视频笔记(3)

    本片笔记将会从基本概念 进程结构 区分进程线程这三个方面解释什么是进程 process 概念 process是一个具有一定独立功能的程序关于某个数据集合的一次运行活动 是系统进行资源分配和调度的独立单位 是资源分配的最小单位 要点 进程是程
  • SD卡通信协议那些事

    SD卡通信 SD卡通信协议主要包括物理层 数据传输层和应用层三个部分 物理层 SD卡使用SPI或SDIO两种物理层协议进行通信 SPI是一种同步串行通信协议 使用4根信号线进行通信 SDIO是一种异步串行通信协议 使用9根信号线进行通信 数