首页 > 其他分享 >SD协议-基本概念

SD协议-基本概念

时间:2023-05-30 22:56:19浏览次数:43  
标签:协议 状态 总线 基本概念 Host RCA Card SD

1.SD协议版本

  • SD 1.1
  • SD 2.0
  • SD 3.0
    在看协议的时候,需要注意协议的版本,注意版本之间的差别
  • SD协议是常见的数据通信和存储卡之间的协议
  • HDMI是显示相关的协议,遵循HDMI协议
  • USB遵循USB协议,USB3.0协议的复杂度高于USB2.0
  • 主要学习的是协议的分析方法

2.system feature

SD存储芯片的技术特点

  • SD Card是slave,SD Host是Master,对SD Card进行操作
  • SD Host是存在与SoC中的一个主控设备,进行读写取外围的SD Card中的数据
  • 信号线是连接到芯片的IO上进行传输的,一般而言,信号线不是很多



3.SD Card总线介绍

  • 如果SD Host想要去访问SD卡,从cmd总线上发送命令(复位\IDLE)
  • 命令分为两种:一种是当前的命令是不需要响应的,单向传输;另外一种是当前的命令需要SD卡进行响应,双向传输
  • CMD是三态总线:总线上挂接的器件可以接收总线的数据和指令,也可以控制总线,还可以不接收总线的数据和指令(从总线上断开),通过输出0,1,z进行控制状态
  • cmd总线是1bit,上面挂载着SD Host,SD Card0,SD Card1 ....
  • 默认情况下SD card处于被动接收命令的状态,同一时间只有一个模块能够控制三态总线,最初的时候是SD Host控制总线
  • SD Host会通过总线发出命令,根据地址找到SD Card,然后SD Card接收到指令之后会做出响应,如果要响应数据,需要SD Card在某个时刻控制总线(输出0,1)

  • cmd可以从SD Host传给一个SD card (address command),还可以由一个SD Host传给多个SD Card -- (Broadcast command)
  • 读写都是以block为单位操作
  • Data最多是4bit


4.传递数据

  • 传递一笔数据或cmd,每一笔数据是8bit(1byte),每一笔数据是如何传的?传递数据的时候是从最高位到最低位传递
  • 信号有两种模式:一种4bit全部都用,另一种只用其中1bit

5.SD Card


  • RCA - 相对卡的地址,SD Host想要读取卡中的数据,发送的指令中携带RCA值,可以用于标记卡的地址,唯一标识卡;卡收到命令之后,发现是自己的RCA,会进行一个响应
  • DSR - SD 卡驱动水平寄存器
  • CSD - SD 卡的规格信息
  • SCR - SD 卡的配置信息
  • OCR - SD 卡操作信息
  • SSR - SD 状态信息
  • CSR - Card的状态信息


  • address command -- 一对一的命令,根据RCA进行区分
  • broadcast command -- 一对多的命令,将命令广播到所有的卡
  • 上电之后,SD卡首先处于识别状态,复位的时候会处于SD卡识别状态;等待SD Host进行一些适配,SD Host会发送一些识别的命令(电压及是否busy等);当SD卡和SD Host进行适配之后,SD Host会发送一个CMD3,SD卡接收到CMD3命令之后会发出一个RCA,SD Host接收到RCA之后可以进行其他操作
  • SD卡发送RCA之后,进入数据传输状态data transfer mode,就可以接收SD Host的请求,进行数据传输
  • 当SD Host发送的电压等信息,SD卡接收到之后发现不匹配,SD卡就会处于inactive状态(无效状态)
  • identification mode和data transfer mode都有一些状态
  • standby - 等待状态
  • transfer - 具备传输能力状态
  • sending - data - 读
  • receiving data and programming - 写
  • disconnect - RCA不匹配,等待重新匹配


SD卡的状态机

  • SD卡初始状态时IDLE状态
  • SD Host发送CMD8,SD卡接收到CMD8之后会进行物理规格版本的验证,进行适配
  • SD 卡上电之后会进行初始化,初始化后会对SD卡中表示busy状态的寄存器进行更新
  • SD Host发送ACMD41,SD卡会将当前卡是不是busy的状态信息返回给SD Host,同时,SD卡接收到ACMD41的时候,会进行电压范围的核对,如果SD卡的电压和SD Host的电压不适配,SD卡会进入inactive state
  • **当SD卡接收到ACMD41并且不处于busy状态,SD卡就会进入ready status,可以进行相应的处理
  • SD Host发送CMD2,SD卡,SD卡接收到CMD2,会返回一些信息给SD Host,SD Host拿到这些信息之后可以进行一些判断,然后SD卡就进入identification state,表示卡已经完成了初步的识别**
  • SD Host会发送CMD3,SD卡会返回一个RCA,当SD卡发送RCA之后,SD卡从identification state装到data transfer state
  • standby模式可以看作是SD卡data transfer state的空闲状态,在standby模式下,如果接收到来自SD Host的CMD3,就可以发送一个新的RCA
  • 在任何状态下,接收到SD Host的CMD0命令,SD卡会恢复到IDLE状态,SD卡恢复到IDLE状态并不是复位,复位是对寄存器的值进行复位,这里是对SD卡的状态机进行复位
  • SD卡的状态机和Sd Host的状态机是不同的,根据SD卡的状态转移来决定SD Host的状态

  • ACMD41,进一步核对电压是不是匹配,SD卡会返回OCR寄存器的值给SD Host,OCR中有1bit表示当前卡是不是上电完成,是不是busy
  • 在发送ACMD指令之前都要跟一条CMD55,告诉SD卡下一条指令是ACMD类型的指令;CMD55会携带一个RCA值0x0000

标签:协议,状态,总线,基本概念,Host,RCA,Card,SD
From: https://www.cnblogs.com/Icer-newer/p/17441796.html

相关文章

  • ubuntu下查看-卸载软件(卸载.net core sdk的方法)
    查看已安装的包:dpkg--list查看正则匹配的包:dpkg--list'dotnet-*' //查看以dotnet-开头的包卸载匹配的包:sudoapt-get--purgeremove<programname>按照正则卸载匹配的包:sudoapt-get--purgeremove'dotnet-*' //卸载以dotnet-开头的包如果不想自己手动输入Y确认的话则......
  • nebula入门学习——day1 nebula基本概念、原理和架构
    什么是NebulaGraph¶NebulaGraph是一款开源的、分布式的、易扩展的原生图数据库,能够承载包含数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。什么是图数据库¶图数据库是专门存储庞大的图形网络并从中检索信息的数据库。它可以将图中的数据高效存储为点(Vertex)和......
  • 开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
    开源(OpenSource):开源是指公开软件的源代码。开源软件在发行的时候会附上软件的源代码,并授权允许用户更改、传播或者二次开发。软件的分类:商业:收费,源码不公开共享:免费,源码不公开自由:源码公开开源协议:世界上的开源许可证(OpenSourceLicense)大概有上百种,我们常用的开源软件......
  • 针对HTTP协议-弱点分析
     ......
  • SSH协议-漏洞渗透挖掘
     ......
  • 云南中茶茶业有限公司与大连联中茶业有限公司成功签订合作协议
        2023年5月18日,央企中粮旗下云南中茶茶业有限公司、中茶普洱茶叶有限公司、中茶(勐海)茶业有限公司与大连联中茶业有限公司在大连新天百茶城举办了《云南中茶茶业有限公司特殊渠道经销合同》的签约仪式。云南中茶茶业有限公司东北大区负责人马洪浩、大连联中茶业有限公司董......
  • 基本概念笔记
    project:对资源进行分组和隔离。service:nova、cinder、glance......endpoint:url,service通过endpoint暴露api,user通过endpoint访问、操作资源role:通过定义role,赋予不同的权限,实现访问控制。openstack默认配置只区分admin和非adminrole。每个对象都有id,delete、show等操作......
  • android开发java.lang.NoClassDefFoundError: org/jetbrains/kotlin/cli/common/Prope
    问题:编译Android项目出现java.lang.NoClassDefFoundError:org/jetbrains/kotlin/cli/common/PropertiesKt原因:项目使用发JDK版本和Kotlin版本不一致或者说不对应导致gradle找不到对应的类解决方法:我的解决方法是降低JDK的版本到1.8,具体操作是OpenModulesSettings->SDKLoc......
  • P3704 [SDOI2017]数字表格
    简要题意令\(f(i)\)为斐波那契数列第\(i\)项的值。\(T\)组数据,对于每一个\(n,m\),求出:\[\prod_{i=1}^{n}\prod_{j=1}^{m}f(\gcd(i,j))\pmod{10^9+7}\]\(1\leqT\leq10^3,1\leqn,m\leq10^6\)思路这里将介绍一种自认为比题解更为简便的方法首先原式有\(\prod\)......
  • 电影绿幕走进生活?如何基于相芯SDK实现绿幕分割?
    绿幕,是一种广泛应用于电影、电视制作和视频编辑领域的技术。它通过在拍摄或录制过程中使用一块特殊颜色(通常是绿色)的背景布,然后在后期制作中将该颜色替换成其他图像或视频素材。这种技术主要基于颜色键盘合成技术(chromakeying),可以实现在虚拟环境中展示各种场景和效果。相芯SDK绿幕......