SDIO学习(2)--SD卡 2.0协议

本文参考文档:

《SD Specifications Part 1 Physical Layer Simplified Specification Version 2.00》 
 

1 SD卡简介

1.1 SD卡概念

1.2 SD卡外形和接口

Clk:时钟线,由SDIO主机产生

CMD:命令控制线,SDIO主机通过改线发送命令控制SD卡,如果命令要求SD卡提供应答,SD卡也是通过该线传输应答信息。

DAT0-3:数据线,SD卡可将DAT0拉低表示忙状态,上电后,SD 卡默认只使用 DAT0 来传输数据。初始化之后,主机可以改变总线宽度(使用的数据线数目)。

SD卡和MMC卡接口引脚对比:

1.3 SD卡特点

2 SD 2.0特点

下面基于SD 2.0协议,对SD 2.0主要特点进行概述:

● 存储容量:
标准容量 SD 卡(SDSC):最高达到 2GB
高容量 SD 卡(SDHC):大于 2GB(SD2.0版本规格最高 32GB)

● 电压范围:
高电压 SD 卡-工作电压范围:2.7 -3.6V
双电压 SD 卡-工作电压范围:低电范围(待定) 和 2.7-3.6V

● 工作模式:
默认模式:可变时钟频率 0-25MHz,最高12.5MB/s 的接口速度(使用 4 条并行数据线)
高速模式:可变时钟频率 0-50MHz,最高25MB/s 的接口速度(使用 4 条并行数据线)

● 支持机械开关的写保护功能和卡检测功能(插入/拔出)

● 速度等级分类:定义了 4 个速度等级,来表示卡的最小速率:(实际上目前最高 Class10)
Class 0 – 这种卡不定义具体性能,代表了这个规范出来之前的所有卡
Class 2 – 最小 2MB/s 的性能
Class 4 – 最小 4MB/s 的性能
Class 6 – 最小 6MB/s 的性能

3 SD 2.0总线拓扑结构

SD 卡系统定义了两种通信协议:SD 和 SPI。主机系统可以选择任意一种。当收到 reset 命令的时候,SD 卡通过主机的信息来决定使用何种模式,并且之后的通讯都会使用相同的模式。

3.1 SD模式 

SD 卡总线支持一主多从(卡),拓扑结构如下图 3-2所示,其中时钟,电源和地信号是所有卡都有的,命令(CMD)和数据(DAT0-3)信号是点对点连接到所有卡。

在初始化时,处理命令会单独发送到每个卡,允许应用程序检测卡以及分配逻辑地址。数据总是单独发送(接收)到(从)每张卡。但是,为了简化卡的堆栈操作,在初始化过程结束后,所有的命令都是同时发送到所有卡。地址信息包含在命令包中。

SD 总线允许数据线的动态配置。上电后,SD 卡默认只使用 DAT0 来传输数据。初始化之后,主机可以改变总线宽度(使用的数据线数目)。

SD 总线包含下面的信号:
CLK: 时钟信号
CMD: 双向命令/响应信号
DAT0-DAT3: 双向数据信号
Vdd,Vss1,Vss2: 电源和地信号

3.2 SPI模式

SD 卡的 SPI 通信模式是用来同 SPI 信道通信,主要是应用在市场上的各种微处理器。模式选择是在上电后的第一次 reset 命令期间决定,并且只要不断电就不能改变。

SPI 标准只是定义了物理连接,没有完成数据传输协议。SD 卡的 SPI 实现使用了 SD 模式相同的命令。从应用的角度来说,SPI 模式的优点是使用现成主机的能力,从而减小设计压力,缺点是性能的损失。

SD 卡 SPI 接口同市场上现有的 SPI 主机兼容。同其他 SPI 设备一样,SD 卡的 SPI 信道有以下 4 个信号,其拓扑结构如下图3-3所示:
CS: 主机到卡的片选(chip select)信号
CLK: 主机到卡的时钟信号
DataIn: 主机到卡的数据信号
DataOut: 卡到主机的数据信号

SPI 的另一个 特点是字节传输,这也是卡的实现。所有的数据都是字节(8 bit)的整数倍,并且直接总是对齐 CS 信号。

4 SD 2.0总线协议

SD总线的通信基于命令和数据流的,包含三个要素:命令(Command),响应(Response)和数据(Data)。

命令:命令是启动操作的令牌。命令从主机发送到卡(寻址命令)或所有连接的卡(广播命令),命令在CMD行上串行传输。

响应:响应是卡发送到主机,作为对先前接收到的命令的响应,响应在CMD线上串行传输。

数据:数据可以从卡传输到主机,反之亦然。

SD主机与SD存储卡之间的数据传输按块进行。数据块的后面总是CRC位。SD协议定义了单个和多个块操作,多块操作模式更适合大量数据的写入操作。当CMD线上出现停止命令时,多块传输终止。主机可以将数据传输配置为使用单个或多个数据线。

无论数据线的数量如何,块写入操作都使用DAT0数据线返回busy信号(见图3-4)。

1线和4线模式的数据结构如下图所示。

 

5 SD卡寄存器

SD卡接口中定义了六个寄存器:OCR、CID、CSD、RCA、DSR和SCR。这些只能通过相应的命令访问。OCR、CID、CSD和SCR寄存器携带卡/内容特定信息,而RCA和DSR寄存器是存储实际配置参数的配置寄存器。

5.1 OCR寄存器

OCR寄存器是一个32bit的操作条件寄存器,存储了卡支持的VDD电压描述,支持的电压如下表5-1所示,当对应的bit为0时表示SD卡不支持该电压。

Bit 31表示卡的上电状态信息位,如果卡上电完成,该位会置1,如果卡是busy状态,该位会置0。

Bit 30表示卡容量状态位(CCS),在上电完成后,读取该位可以获取卡的容量状态,若果CCS=1,则表示是高容量卡(2~32G),如果CCS=0,则表示是标准容量卡(0~2G)。

Bit 7是为双电压卡新定义的,默认设置为0。如果双电压卡没有接收到CMD8,则响应中的OCR位7指示0,并且接收到CMD 8的双电压卡将该位设置为1。

下表是中文版本: 

5.2 CID 寄存器

卡识别(CID)寄存器是一个 128 位的寄存器。包含了卡的识别信息,用于卡识别解析。每个读/写卡都有一个特殊的识别号。CID 寄存器的结构如下:

下表是中文版本: 

5.3 CSD 寄存器 

卡特定数据寄存器提供关于访问卡内容的信息。CSD 定义了卡的数据格式,错误修改类型,最大数据访问时间等参数。

5.3.1 CSD_STRUCTURE

CSD 寄存器的结构体因SD协议版本和卡容量的不同而不同。CSD 寄存器中的CSD_STRUCTURE 表明了结构体版本。表5-3显示了相关CSD结构的版本号

5.3.2 CSD Register (CSD Version 2.0)

表5-16显示了大容量SD存储卡的CSD定义(CSD 2.0版)。以下部分介绍了大容量SD存储卡的CSD字段和相关数据类型。CSD 2.0版仅适用于大容量SD存储卡。括号中的字段名称设置为固定值,表示主机不必引用这些字段。固定值使引用这些字段的主机能够保持与CSD 1.0版的兼容性。Cell Type字段编码如下:R=可读,W(1)=一次可写,W=多次可写。

下表是中文版: 

 5.4 RCA寄存器 

可写的 16 位卡相对地址寄存器,在卡的初始化期间,由卡向外发布的卡地址。这个地址用于卡初始化进程之后,主机同卡之间的交互寻址。默认的 RCA 寄存器值是 0x0000,这个值保留着,用来通过 CMD7 设置所有卡到 stand-by 状态。

5.5 DSR 寄存器(可选择)

这是一个16位驱动器级寄存器。它可以选择性地用于提高总线性能(取决于总线长度、传输速率或卡的数量等参数)。CSD寄存器携带有关DSR寄存器使用情况的信息。DSR寄存器的默认值为0x404

5.6 SCR 寄存器

除了CSD寄存器外,SD卡的另一个配置寄存器称为SD卡配置寄存器(SCR)。SCR 提供了 SD 卡的特殊功能的信息。SCR寄存器的大小为64位,此寄存器由SD存储卡制造商将设置。下表介绍了SCR寄存器内容。

下面是中文版: 

下面是每个域段的介绍: 

 


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/752778.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flutter开发实战-ListWheelScrollView与自定义TimePicker时间选择器

flutter开发实战-ListWheelScrollView与自定义TimePicker 最近在使用时间选择器的时候,需要自定义一个TimePicker效果,当然这里就使用了ListWheelScrollView。ListWheelScrollView与ListView类似,但ListWheelScrollView渲染效果类似滚筒效果…

Oracle新特性速递:未来数据库技术的无限可能

文章目录 一、自治数据库:智能化与自动化的革命二、机器学习集成:智能数据分析的新境界三、区块链技术:确保数据完整性与透明性四、云原生数据库:灵活扩展与快速部署五、人工智能优化器:智能查询执行计划《Oracle从入门…

上海约瑟电器 JOBS(KG9001)拉绳开关 严格质量细节监控

基本信息 品牌:JOSEF约瑟 型号:JOBS(KG9001) 技术参数 动作角度:30 电源电压:220V 工作电压:380V 额定电流:5A 防护等级:IP65 复位方式:支持自动(I)和手动&am…

高考填报志愿三连问,从人格优势分析兴趣和专业

“我的兴趣爱好什么?” “我的理想是什么?” “我想成为什么?” ------高考填报志愿三连问! 最近我在知乎上看过一个比较有意义的提问,提问的也是高考填报志愿的同学,自从高考后,每日三连问&…

Python基于逻辑回归分类模型、决策树分类模型、LightGBM分类模型和XGBoost分类模型实现车辆贷款违约预测项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 随着经济的发展和人民生活水平的提高,汽车消费在居民消费中所占比例逐渐增加,汽…

华为实训案例

案例下载 拓扑图 任务清单 (一)基础配置 根据附录1拓扑图、附录2地址规划表、附录3设备编号表,配置设备接口及主机名信息。 将所有终端超时时间设置为永不超时。 在全网Trunk链路上做VLAN修剪,仅允许必要的流量通过&#xff0…

什么是GPIO口,GPIO口最简单的input/output

目录 一,什么是GPIO口 二,GPIO内部结构 三,GPIO口工作模式 一,什么是GPIO口 1.GPIO口是通用输入输出端口(General-purpose input/output)的英文缩写,是所有的微控制器必不可少的外设之一&…

基于C++标准库实现定时器类

基于C标准库实现定时器类 定时器类是多线程编程中经常设计到的工具类 简单的定时器原理其实很简单(是不是有点GNU is not unix的味道;): 创建一个新线程在那个线程里等待等待指定时长后做任务 python标准库中就有这么一个定时器类&#xf…

车载测试工程师在行业中有哪些挑战需要面对?

车载测试工程师在行业中面临着多方面的挑战,这些挑战涵盖了技术、安全、法规以及市场环境等多个层面。 1. 技术挑战: 复杂性与集成性:现代汽车系统由众多模块和子系统组成,包括发动机控制、安全系统、娱乐系统、导航系统等。这些系…

查普曼大学团队使用惯性动捕系统制作动画短片

道奇电影和媒体艺术学院是查普曼大学的知名学院,同时也是美国首屈一指的电影学院之一,拥有一流电影制作工作室。 最近,道奇学院的一个学生制作团队接手了一个项目,该项目要求使用真人动作、视觉效果以及真人演员和CG角色之间的互动…

鸿蒙NEXT开发知识:工具常用命令—ohpm config

设置ohpm用户级配置项。 命令格式 ohpm config set <key> <value> ohpm config get <key> ohpm config delete <key> ohpm config list 说明 配置文件中信息以键值对<key> <value>形式存在。 功能描述 ohpm 从命令行和 .ohpmrc 文件中…

AI专区上新啦!豆包、通义、360AI、天工AI、澜舟智库等入驻麒麟软件商店

继百度文心一言、讯飞星火、博思白板、雅意等AI产品上架后&#xff0c;麒麟软件商店再添新成员&#xff01;近日&#xff0c;豆包、通义、360AI搜索、360智脑、360智绘、昆仑万维天工AI、澜舟智库等重磅AI产品登陆麒麟软件商店人工智能专区&#xff0c;涵盖了AI对话、AI写作、A…

普乐蛙景区9d电影体验馆商场影院娱乐设备旋转飞行影院

今天与大家聊聊VR娱乐新潮流&#xff0c;我们普乐蛙的新品——旋转飞行影院&#xff01;裸眼7D环幕影院&#xff0c;话不多说上产品&#xff01;我们通过亲身体验来给大家讲讲这款高性价比新品的亮点。 想象一下走上电动伸缩梯&#xff0c;坐进动感舱&#xff0c;舱门缓缓合上&…

MySQL实训项目——餐饮点餐系统

项目简介&#xff1a;餐饮点餐系统是一款为餐厅和顾客提供便捷点餐服务的在线平台。通过该系统&#xff0c;餐厅能够展示其菜单&#xff0c;顾客可以浏览菜品&#xff0c;并将其加入购物车或直接下单。系统还提供了订单管理功能&#xff0c;方便餐厅跟踪和处理顾客的订单。 1. …

【隐私计算】对SIMD编码的粗浅理解

首先需要知道&#xff0c;同态加密是在多项式上进行的&#xff0c;基于RLEW的整体流程如下&#xff1a; 将单个数编码到一个N阶&#xff08;N项&#xff09;多项式中&#xff0c;多项式系数的利用率极低。而在神经网络中&#xff0c;我们需要计算的东西往往是一个很大的矩阵/te…

docker部署EKF

1.检查版本 检查当前系统的docker版本 [rootnode1 ~]# docker version Client: Docker Engine - CommunityVersion: 20.10.12API version: 1.41Go version: go1.16.12Git commit: e91ed57Built: Mon Dec 13 11:45:41 2021OS/Arch: …

【ajax实战07】文章筛选功能

本文章目标&#xff1a;根据筛选条件&#xff0c;获取匹配数据展示 本章**“查询参数对象”指的是&#xff0c;要“获取文章列表”功能**中服务器接口要求配置的对象 实现步骤如下&#xff1a; 一&#xff1a;设置频道列表数据 二&#xff1a;监听筛选条件改变&#xff0c;…

侯捷C++面向对象高级开发(上)-1-头文件与类的声明

1.数据和函数比较 2.代码基本形式 3.c vs c输出 4.头文件防卫式声明 5.头文件布局 6.class模板简介

MoneyPrinterPlus:AI自动短视频生成工具-微软云配置详解

MoneyPrinterPlus可以使用大模型自动生成短视频&#xff0c;我们可以借助Azure提供的语音服务来实现语音合成和语音识别的功能。 Azure的语音服务应该是我用过的效果最好的服务了&#xff0c;微软还得是微软。 很多小伙伴可能不知道应该如何配置&#xff0c;这里给大家提供一…

Vip-智能预估+大数据标签+人群全选=用户分群!

Mobpush用户分群功能升级&#xff0c;创建推送入口vip用户可进入自有选择标签创建“用户分群”&#xff0c;相比于免费标签&#xff0c;“用户标签”维度更丰富。在应用基础属性上&#xff0c;增加“品牌”、“网络状态”、“运营商”&#xff0c;众所周知&#xff0c;不同厂商…