SD卡认识——SDIO协议入门与实践(一)

news2024/9/27 11:45:07

最初是三年前,接手开发sdio裸机驱动和测试用例的工作,内容很多,一开始就是各种在官网、各大论坛以及开源的驱动和例程里学习,简单浏览了sdio控制器、SD卡、MMC、SDIO卡等协议,然后就是开干;鉴于sdio协议还是很成熟的,基本很容易找到学习资料,从最简单的SD卡入手,参考协议、stm驱动流程,磕磕绊绊总算完成驱动基本coding和sd卡初始化、1、4线操作、单block多block读写流程、以及fat32文件系统移植等等,毕竟sdio控制器的编程模型各家还是各不相同的,开发期间和硬件设计各种沟通、扯皮、来回修问题后才搞定初版…接下来就是emmc卡的测试,emmc和SD卡相似之处很多,很快就把emmc整个流程兼容到了SD卡中…完成了sd相似工作;接下来就是sdio卡,市面上能买到的sdio接口的模块确实不多,经过调研,资料相对多的就是两款芯片:NXP的marvell8011和瑞昱的RTL8852,多方比较后,最终选择了marvell8801来测试;官方提供的是Linux的驱动,我当前环境是不支持的,所以不得不从一堆资料和代码里扒拉出来了逻辑驱动,完成开启AP、连接station的工作…

至此过了快半年时间,经过仿真调试和FPGA上板测试,我们的sdio接口控制器也算是有了基本功能,可以支持SD卡、emmc、sdio卡的读写…也不断有客户在购买我们的sdio接口ip,我这边就是支持客户使用…

直到今年有客户需要支持UHS模式、具有slave功能、支持HS200等等,新一轮的迭代开发开始;说实话,之前一轮的开发过去之后,很多协议细节也忘了,主要还有很多当时也没搞很清楚,稀里糊涂过去了,但这次是重新再看一遍协议,特别是开发sdio slave功能,站在slave角度再来开发,对整个sdio协议有了更深的认识,很多细节突然醍醐灌顶的感觉。可能也没理解那么深入,但是现在至少是能全面的看sdio协议了,所以呢,也是及时整理下之前的笔记,记录分享下,希望能对新入门的亦或是工作多年的工程师提供一点点的帮助吧。

废话有点多了,开始sdio协议整个系列内容吧。

SD卡认识——SDIO协议入门与实践(一)

谈到sdio协议,首先联想到的应该就是sd卡,在mcu级别的嵌入式领域,sdio应用最多的就是读写sd卡;前面先不谈sdio协议本身,先来看看sdio接口常用的几个外设之——SD卡。

1 SD卡类型了解

经常用sd卡会在卡的正面看到,SD、SDHC、SDXC的字样,一般用户也不太关心这些,但如果要搞sd卡相关开发,还是要了解一二的
SD卡,SDHC卡,SDXC卡区别在于规格不一样,SD卡最大支持2GB容量,SDHC 最大支持32GB容量,SDXC 最大支持2TB(2048GB)容量,支持SDXC卡的数码设备是兼容支持SD卡与SDHC卡的,如果设备只有支持SDHC卡,那么这个设备就不能使用SDXC卡,但兼容SD卡。一般用户手里的卡大部分是SDHC的(4-32G)。
如果你的卡磨得看不见字了,就通过sd card cmd 来读卡相关寄存器判断吧。

1.1 SD 卡分类

1.1.1 根据容量区分

无论是Full SD(简称SD)还是microSD卡,都有SD、SDHC、SDXC三种容量,miniSD目前还没有SDXC的容量
目前市面上有存储容量更大的卡SDUC(2t-128t)
在这里插入图片描述

1.1.2 SD 卡容量及其使用的文件系统

mcu在使用fat文件系统时,要考虑卡的容量,小于 2GB(SD 卡)使用 FAT12 或者FAT16,容量在 2GB 和 32GB 之间(SDHC 卡)使用 FAT32,容量大于 32GB 小于 2TB(SDXC 卡)使用 exFAT。
在这里插入图片描述

1.1.3 SD卡总线速度和速度等级

sdio控制器能支持多高的速度,一般对应spec都会有指出,所以要根据其来选择对应的卡测试,不然可能出现时序不收敛的情况
SD卡速度:
在这里插入图片描述
SD卡写入速度等级:
在这里插入图片描述

1.2 各种存储卡区别

市面上的卡种类非常多,容易把人搞糊涂,这里将这些卡种类为大家做个区分:

1.2.1 SD 卡,miniSD 卡,TF 卡,MircoSD 卡

TF 卡是 MicroSD 卡的另一种叫法,无需做区分。SD 卡,miniSD 卡,MircoSD 卡其实 是一种卡,区别是引脚使用上。

2 卡标识

2.1 卡容量

容量等级:SDXC(32G-2T:SDXC;)
实际容量:64GB(实际要小一点,软硬件换算关系问题)

2.2 厂商品牌

SanDisk:闪迪品牌名字
Extreme PRO:闪迪三代卡(pro版)(三代卡一般是灰色,另外Ultra是二代卡,颜色越黑卡越好也越贵,感兴趣可以了解下)

2.3 读取速度

200M/s:这张卡的最快读取速度,当然这并不代表卡读取就是200MB/s,读取快慢也跟接口以及读取设备有关,相同设备下,200MB/s肯定会比100MB/s读取信息更快。

2.4 LOCK标识

LOCK锁:按钮往下拨,可以将卡锁住,插入相机后就会提示写保护,无法存入照片,插入电脑后只可以复制文件,无法删除和格式化(不排除一些电脑不支持,上锁后仍可以删除);按钮往上拨,内存卡可以正常使用
NOTE:
TF卡没有改标识

2.5 写入速度等级(最重要的参数)

写入速度等级有三个参数表示,分别是普通的速度等级Speed Class*(C*),超高速速度等级UHS Speed Class*(U*),视频速度等级Video Speed Class*(V*),*代表数字表示最低写入速度。如图所示
可知上面卡的写入速度是10M/s

在这里插入图片描述

2.5.1.【C】普通的速度等级Speed Class

有Class 2、Class 4、Class 6和Class 10,简写为C2、C4、C6、C10,分别表示最低写入速度为2MB/s、4MB/s、6MB/s、10MB/s。C10代表可用于高速或更高速的模式。

2.5.2.【U】超高速速度等级UHS Speed Class

UHS Speed Class 1和UHS Speed Class 3,简写为U1、U3。U1代表最低写入速度为10M/S,U3代表最低写入速度为30M/S。UHS与U1/U3(UHS Speed Class)不同,不要弄混了。一个是接口标准,一个是速度

2.5.3.【V】视频速度等级Video Speed Class

有V6、V10、V30、V60和V90,V后面的数字表示最低写入速度,单位MB/s,V6表示最低写入速度为6MB/s,V90表示最低写入速度为90MB/s。这个参数对录制视频来说非常重要,录制不同画质的视频对存储卡视频速度等级也不一样。如果要录制4k画质视频,必须要用V30以上的存储卡。

2.5.4.【A】APP软件性能等级

APP软件性能等级是SD卡5.1标准后出现,用于衡量用户直接在存储卡上运行APP程序的场景。使用随机存取时的IOPS性能标准,(Input/Output Operations Per Second 每秒输出入作业次数),分为两个等级A1和A2。
在这里插入图片描述

2.6【UHS】总线接口类型

总线接口分为UHS-I、UHS-II和UHS-III,UHS全称Ultra High Speed,中文超高速。支持UHS-I(第一代超高速)的SD卡产品于2010年被发布,理论传输速度可达104MB/s,支持UHS-II的SD卡产品理论传输速度可达312MB/s。支持UHS-III的SD卡产品理论传输速度可达624MB/s。物理接口上也可以区分UHS-I和UHS-II/UHS-III,UHS-I只有一排金手指,UHS-II/UHS-III有两排(所以传输速度更快)。卡本体上面的标识通常会省略掉“UHS”,只标“I”,“II”、“III”。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java GC:GC算法、GC回收器、GC日志

文章目录 基本概念垃圾回收类型垃圾回收算法垃圾回收器 VM参数设置控制vm参数内存参数GC参数 GC实例分析 基本概念 垃圾回收类型 Minor GC:对新生代进行的垃圾回收,所以也叫Young GCMajor GC:对老年代进行的垃圾回收,所以也叫Old GCFull GC:对整个Java…

无人机的作战指挥中心-地面站!

无人机与地面站的关系 指挥与控制:地面站是无人机系统的核心控制部分,负责对无人机进行远程指挥和控制。无人机根据地面站下达的任务自主完成飞行任务,并实时向地面站反馈飞行状态和任务执行情况。 任务规划与执行:地面站具备任…

Laravel部署后,CPU 使用率过高

我在部署 Laravel 应用程序时遇到严重问题。当访问量稍微大一点的时候,cpu马上就到100%了, 找了一大堆文档和说明,都是说明laravel处理并发的能力太弱,还不如原生的php。最后找到swoole解决问题。 1、php下载swoole插件&#xff0…

智能监控,守护绿色能源:EasyCVR在电站视频监控中心的一站式解决方案

随着科技的飞速发展,视频监控技术在社会安全、企业管理及智慧城市建设等领域中扮演着越来越重要的角色。特别是在电力行业中,电站作为能源供应的关键设施,其安全性和稳定性至关重要。传统的人工监控方式已难以满足现代电站复杂多变的运行需求…

Sql Server时间转换之查询时间格式不对--CONVERT(NVARCHAR,CreateTime,23) 转换出来有时分秒

错误:CONVERT(NVARCHAR,CreateTime,23) 转换出来有时分秒 SELECT TOP 10 CONVERT(NVARCHAR,CreateTime,23) FROM table A 解决办法:限制转换的字符串长度 SELECT TOP 10 CONVERT(NVARCHAR(10),CreateTime,23) FROM table A

Android 通过自定义注解实现Activity间跳转时登录路由的自动拦截

应用场景 在Android 中部分软件需要登录才能使用,但是有的页面又不需要登录,Android不同于Web可以直接拦截重定向路由,因此如果在Android中如果需要检测是否登录,如果没登录跳转登录的话就需要再每个页面中判断,当然也…

不会写SD WebUI 的负面提示词?用这几款Embedding模型一键搞定!效果好到爆炸!

文章目录 一、Embedding 模型简介二、负面提示词 Embedding三、Embedding 资源下载四、Embedding 安装与使用关于AI绘画技术储备零基础AI绘画学习资源介绍👉stable diffusion新手0基础入门PDF👈👉AI绘画必备工具👈👉AI…

MySQL重点,面试题

一、 聚合函数 分类 COUNT:统计行数量SUM:获取单个列的合计值AVG:计算某个列的平均值MAX:计算列的最大值MIN:计算列的最小值 二、SQL关键字 分页:limit SELECT * FROM student limit 100,6; 倒序 desc s…

数据结构 ——— 移除 nums 数组中的 val 元素(快慢指针)

目录 题目要求 代码实现(快慢指针) 题目要求 编写函数,给你一个数组 nums 和一个值 val,你需要在 nums 数组 原地 移除所有数值等于 val 的元素,并且返回移除后数组的新长度 不能使用额外的数组空间,要…

11.全面学习面向对象技术

面向对象开发 相关概念 对象:由数据及其操作所构成的封装体,是系统中用来描述客观事务的一个实体,是构成系统的一个基本单位。一个对象通常可以由对象名、属性和方法3个部分组成。类:现实世界中实体的形式化描述,类…

MySQL_插入、更新和删除数据

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

如何禁止电脑蓝牙?五个有效方法教给你!小白必看!

在生活和工作中,蓝牙是一种非常方便的无线技术,可以连接鼠标、键盘、耳机等设备。 然而,蓝牙同时也是信息泄露的潜在渠道,特别是在公共场所或公司内部环境中,可能会带来安全隐患。 想要保护隐私或防止电脑与未经授权…

基于YOLOv8目标检测与chef-transformer(T5)从图像创建食谱

前言 在本文中,将演示如何使用从Roboflow获得的开源产品数据来训练我的YOLOv8模型,然后将其与从Hugging Face获得的chef-transformer(T5)模型集成。应用程序的主要目标是将检测到的对象参数化地发送到语言模型,并在NL…

第05-3节:加载流程原理介绍(Done)

我的后端学习大纲 我的Linux学习大纲 本节目标 1.能够说出交互式Shell与非交互式Shell2.能够说出登录Shell与非登录Shell环境 1.1.Shell工作环境介绍 用户进入linux系统就会初始化Shell环境, 这个环境会加载全局配置文件和用户个人配置文件中环境变量.每个脚本文件都有自己的…

STM32嵌入式编程学习到提高:【4】UART串口打印

------------------------------------------------------------------------------------------------------------------------- 工程文件:放在百度云盘里,需要的自行下载!!! 链接: https://pan.baidu.com/s/14gRne…

2万字长文助你快速入门AIGC:包含底层原理、应用场景、热门工具、行业现状…

最近大家热议的ChatGPT和AI绘画工具的底层技术原理是什么?是如何发展到现在的?有哪些应用场景、热门工具?AIGC产业上下游有哪些公司?作为普通用户,我们还能接触哪些应用AI技术打造的商业解决方案?…… 我们…

RK 方案VOP 显示接口的链接关系以及DTS如何配置

这图显示各vp 支持情况 如下图VP0 支持DSI0 DSI1 EDP LVDS HDMI 显示接口,如果我们一方案需要点MIPI 屏 和HDMI out, 如果VP0 链接MIPI DSI0 那么VP0 就不能再选择了,只能VP1 链接HDMI out 了。因为VP2不至此HDMI,所有就只有选择VP1 链接HDMI…

随记——机器学习

前言 本来有个500块钱的单子,用机器学习做一个不知道什么鸟的识别,正好有数据集,跑个小项目,过一下机器学习图像识别的流程,用很短的时间记录下来..... 一、数据预处理 将数据集分为训练集和测试集,直接…

【HarmonyOS】SaveButton保存图片

SaveButton组件把图片显示到相册中的方法demo,支持组件截图、url网络图片、base64格式图片。注意事项: 1、不支持自定义SaveButton样式。 2、下载按钮被遮挡一部分,也无法保存到相册。 import photoAccessHelper from ohos.file.photoAcces…

使用 pypdf 给 PDF 添加目录书签

""" dir.txt的形式 第1章 计算机系统基础知识 1 1.1 嵌入式计算机系统概述 1 1.2 数据表示 4 1.2.1 进位计数制及转换 4 1.2.2 数值型数据的表示 6 第2章 嵌入式系统硬件基础知识 56 2.1 数字电路基础 56 2.1.1 信号特征 56 2.1.2 组合逻辑电路和时序逻辑电路 5…