首页 » 科学 » SD NAND 的 SDIO在STM32上的应用详解(上篇)_存放器_敕令

SD NAND 的 SDIO在STM32上的应用详解(上篇)_存放器_敕令

南宫静远 2024-12-21 23:53:48 0

扫一扫用手机浏览

文章目录 [+]

一.SDIO简介

二.SD卡简介/内部构造

SD NAND 的 SDIO在STM32上的应用详解(上篇)_存放器_敕令 科学

1.SD卡/SD NAND引脚

2.SD卡寄存器

3.FLASH存储器

三.SDIO总线拓扑

中篇:

四.SDIO功能框图(重点)

1.SDIO适配器

2.掌握单元

3.命令通道(重点)

4.数据通道

五.命令与相应

1.命令格式

2.命令类型

3.命令描述

4.相应类型

六.SD卡/SD NAND功能描述(重重点)

1.操作条件确认

2.卡识别模式

3.数据传输模式

下篇:

七.SDIO外设构造体

1.SDIO初始化构造体

2.SDIO命令初始化构造体

3.SDIO数据初始化构造体

八.SD卡读写测尝尝验

1.硬件设计

2.代码讲解

3.实验结果

一.SDIO简介

SDIO (Secure Digital Input and Output)全称安全数字输入/输出接口,在AHB外设总线和多媒体卡(MMC)、SD存储卡、SDIO卡和CE-ATA设备间供应了操作接口。

多媒体卡(MMC)

MMC(MultiMedia Card)卡由西门子公司和首推CF的SanDisk于1997年推出多媒体卡(MMC)是一种小型(24x32或18x1.4mm)可擦除固态存储卡,其全称为Multi-Media Card,特殊运用于移动电话和数字影像及其他移动终端中。

SD卡:(Secure Digital Memory Card)

SD卡是一种基于半导体快闪影象器的新一代影象设备。
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开拓研制。
SD卡数据传送和物理规范由MMC发展而来,大小和MMC差不多,但是容纳更大容量的存贮单元。
SD卡与MMC卡保持着向上兼容,也便是说,MMC可以被新的SD设备存取,兼容性则取决于运用软件,但SD卡却不可以被MMC设备存取。

运用:SD卡的构造能担保数字文件传送的安全性,也很随意马虎重新格式化,以是有着广泛的运用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。
因此不少数码相机也开始支持SD卡。

SD I/O 卡

本身不是用于存储的卡,它是指利用 SDIO 传输协议的一种外设。
比如 Wi-Fi Card,它紧张是供应 Wi-Fi 功能,有些 Wi-Fi 模块是利用串口或者 SPI 接口进行通信的,但 Wi-Fi SDIO Card 是利用 SDIO 接口进行通信的,一样平常设计 SD I/O 卡是可以插入到 SD 的插槽

CE-ATA设备

CE-ATA 一种基于为了节省接口IO数量,专为轻薄 条记本硬盘 设计的条记本硬盘高速通讯接口。
一种利用MMC接口界面,ATA指令集的条记本电脑 硬盘接口

结论:MMC卡是SD卡的前身,也便是说SD将取代MMC卡的地位,MMC卡也用的越来越少,以是我们后面只讲SD卡.

SDIO的紧张功能:(关于不是SD卡的就不先容了)1.与SD存储卡规格版本2.0全兼容(向前兼容)2.数据和命令输出使能旗子暗记,用于掌握外部双向驱动器。

SDIO外设挂载在STM32的AHB总线。

这样一来,STM32(主机),就可以通过AHB总线,掌握SDIO外设的寄存器进而掌握SDIO外设读/写SD卡,SDIO外设向SD卡传输数据,或者向SD卡吸收数据可以利用DMA进行传输(这样可以省去很多繁琐的步骤后面再讲)

当前版本的SDIO在同一韶光里只能支持一个SD卡(这是ST公司限定的)

二.SD卡简介/内部构造

SD卡是一种基于半导体快闪影象器的新一代影象设备。
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开拓研制。
SD卡数据传送和物理规范由MMC发展而来,大小和MMC差不多,但是容纳更大容量的存贮单元。
SD卡与MMC卡保持着向上兼容,也便是说,MMC可以被新的SD设备存取,兼容性则取决于运用软件,但SD卡却不可以被MMC设备存取。

运用:SD卡的构造能担保数字文件传送的安全性,也很随意马虎重新格式化,以是有着广泛的运用领域,音乐、电影、新闻等多媒体文件都可以方便地保存到SD卡中。
因此不少数码相机也开始支持SD卡。

SD卡采取的是采取了NandFlash存储器,稍后阐明NandFlash与NorFlash的差异。

1.卡容量

标准容量 SD 卡,支持最大 2GB 的容量。
所有的物理规格文档都会定义这种。

高容量 SD 卡(SDHC),支持超过 2GB 的容量。
本文档阐明的规格最大为 32GB 容量。
只有 SDIO支持 2.0 协议才能够识别这种高容量 SD 卡(而SDIO外设恰好最高支持到2.0协议)。

STM32F10x 系列掌握器只支持 SD 卡规范版本 2.0,即只支持标准容量 SD 和高容量SDHC 标准卡,不支持超大容量 (大于32GB)SDXC 标准卡,以是STM32可以支持的最高卡容量是 32GB。

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

SD卡的内部布局:

电源检测单元担保 SD 卡事情在得当的电压下,如涌现掉电或上状态时,它会使掌握单元和存储单元接口复位;

1.SD卡/SD NAND引脚

1)SD卡引脚

SD 卡利用 9-pin 接口通信,个中 3 根电源线、1 根时钟线、1 根命令线和 4 根数据线,详细解释如下:

CLK:时钟线,由 SDIO 主机产生,即由 STM32 掌握器输出,最高 25MB/s 的接口速率(利用4条并行数据线);

CMD:命令掌握线,SDIO 主机通过该线发送命令掌握 SD 卡,如果命令哀求 SD 卡供应应答(相应),SD 卡也是通过该线传输应答信息(即命令相应都是通过CMD命令掌握线来串行传输的);

D0-3:数据线,传输读写数据;SD 卡可将 D0 拉低表示忙状态; VDD、VSS1、VSS2:电源和地旗子暗记。

2.SD卡寄存器

卡掌握单元掌握 SD 卡的运行状态,它包括有 8 个寄存器,接口驱动器掌握 SD 卡引脚的输入输出

SD 卡统共有 8 个寄存器,用于设定或表示 SD 卡信息,这些寄存器只能通过对应的命令访问(STM32主机通过驱动SDIO外设通过CMD命令线向从机SD卡发送命令),SDIO 定义了 64 个命令,每个命令都有分外意义,可以实现某一特定功能,SD 卡吸收到命令后,根据命令哀求对 SD 卡内部寄存器进行修正,程序掌握中只须要发送组合命令就可以实现 SD 卡的掌握以及读写操作。

1.CID 寄存器(重点理解)卡识别(CID)寄存器是一个 128 位的寄存器。
包含了卡的识别信息,用于卡识别解析(具有唯一性)。
每个读/写卡都有一个分外的识别号。
CID 寄存器的构造如下:

2.RCA 寄存器(重点理解)可写的 16 位SD卡相对地址寄存器,在SD卡的初始化期间,由SD卡向外发布的卡地址。
这个地址用于卡初始化进程之后,主机同卡之间的交互寻址。
(在主机向SD卡读写数据时,便是发送CMD7选择/取消选择 RCA 地址卡,便是靠RCA来确定主机与哪张卡通信)为啥不用上面的CID呢 ?答:由于它太长了128位呢,仅此而已

3.CSD 寄存器(2.0)CSD V2.0 只适用于高容量

4.SCR 寄存器作为 CSD 寄存器的补充,另一个配置寄存器称为 SD 卡配置寄存器(SCR)。
SCR 供应了 SD 卡的分外功能的信息。
SCR 是一个 64bit 的寄存器,这个寄存器该当由 SD 厂家设置。

5.OCR 寄存器(重点理解)

32 位的操作条件寄存器(OCR)存储了卡的 VDD 电压描述。
其余,还包括了状态信息位。
如果卡的上电程序完成,一个状态位会被设置。
寄存器还包括另一个状态位,在设置上电状态位后,用来表明卡的容量状态。

Bit31 – 卡上电状态位(busy),这个状态位在卡的上电流程完成后设置。
Bit30 – 卡容量状态位(CCS),如果是高容量卡,设置为 1,如果是标准卡,设置为 0。

卡容量状态位只有在上电流程完成,且 Bit31 设置为 1 之后才有效。
主机可以读取这个状态位来判断卡的种类

上面这些寄存器的只要理解即可,后面用的不多,等后面用到再讲这样就能有个更深刻的认识。

3.FLASH存储器

1)FLASH简介FLSAH 存储器又称闪存,它与 EEPROM 都是掉电后数据不丢失的存储器,但 FLASH存储器容量普遍大于 EEPROM,现在基本取代了它的地位。
我们生活中常用的 U 盘、SD卡、SSD 固态硬盘以及我们STM32 芯片内部用于存储程序的设备,都是 FLASH 类型的存储器。
在存储掌握上,最紧张的差异是 FLASH 芯片只能一大片一大片地擦写,而在“I2C章节”中我们理解到 EEPROM 可以单个字节擦写。

2)NOR FLASH 和 NAND FLASH的差异FLASH 存储器又分为 NOR FLASH 和 NAND FLASH

NOR 与 NAND 的共性是在数据写入前都须要有擦除操作,而擦除操作一样平常因此“扇区/块”为单位的。

而 NOR 与 NAND 特性的差别,紧张是由于其内部“地址/数据线”是否分开导致的。
由于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码实行哀求,而由于 NAND 的数据和地址线共用,只能按“块”来读写数据,以是不符合CPU指令译码哀求。

以是NOR FLASH 一样平常运用在代码存储的场合,如嵌入式掌握器内部的程序存储空间。

而 NAND FLASH 一样平常运用在大数据量存储的场合,包括 SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。

总结一句话:NOR FLASH贵而精,NAND FLASH大而便宜

以是我们的SD卡用 NAND FLASH 作为存储单元

存储单元是存储数据部件,存储单元通过存储单元接口与卡掌握单元进行数据传输

三.SDIO总线拓扑

总线上的通信是通过传送命令和数据实现。
在SD卡总线上的基本操作是命令/相应构造(主机发送命令给SD卡,SD卡是否进行相应,主机发生命令和SD卡相应都是通过命令线(CMD)传输的(有一个相应例外等下说)),这样的总线操作在命令或总线机制下实现信息交流。

在SD/SDIO存储器卡上传送的数据因此数据块的形式传输;在MMC上传送的数据因此数据块或数据流的形式传输;

SD 卡总线有一个主机,多个SD卡,时钟线(CLK),电源(VDD)和地旗子暗记(VSS)是以是卡共用。
命令线(CMD)和数据线(DAT0-3)旗子暗记是根据每张卡的。

理论上主机可以与多张卡进行数据交互,虽然可以共用总线,但不推举多卡槽共用总线旗子暗记,哀求一个单独 SD 总线该当连接一个单独的 SD 卡。
即STM32只能接一张SD卡

SDIO 不管是从主机掌握器向 SD 卡传输,还是 SD 卡向主机掌握器传输都只以 CLK 时钟线的上升沿为有效。
SD 卡操作过程会利用两种不同频率的时钟同步数据:识别卡阶段:时钟频率 FOD,最高为 400kHz数据传输模式:时钟频率FPP,默认最高为 25MHz如果通过干系寄存器配置使 SDIO 事情在高速模式,此时数据传输模式最高频率为 50MHz

为什么卡识别阶段的频率低?卡识别的时候为了兼容识别不同版本的SD卡

SD 总线通信是基于命令和数据传输的。
通讯由一个起始位(“0”),由一个停滞位(“1”)终止,SD 通信一样平常是主机发送一个命令(Command),从设备在吸收到命令后作出相应(Response),如有须要会有数据(Data)传输参与。

SD 数据因此块形式传输的,SDHC 卡数据块长度一样平常为 512 字节,数据可以从主机到卡,也可以是从卡到主机。
数据块须要 CRC 位来校验数据。
CRC 位由 SD卡系统硬件天生。
STM32 掌握器可以掌握利用单线或 4 线传输(D0-D3)。

SD 数据传输支持单块和多块读写,它们分别对应不同的操作命令,多块写入还须要利用命令来停滞全体写入操作。
数据写入前须要检测 SD 卡忙状态,由于 SD 卡在吸收到数据后存储到存储区(NandFlash)过程须要一定操作韶光。
SD 卡忙状态通过把 D0 线拉低表示。

数据传输:

利用 4 数据线(D0~D3)传输时,每次传输 4bit 数据,每根数据线都必须有起始位、终止位以及CRC 位,CRC 位每根数据线都要分别检讨,并把检讨结果汇总然后在数据传输完后通过D0 线反馈给主机。
SD 卡有两种数据包格式。

1.常规数据(8bit 宽):常规数据发送是先低字节,再高字节的顺序,但是每个字节则是先高位后低位

数据位在四线顺序排列发送,DAT3 数据线发较高位,DAT0 数据线发较低位。

2.宽位数据(SD 存储寄存器):宽位数据从高位开始传输。

对 SD 卡而言宽位数据包发送办法是针对 SD 卡 SSR(SD 状态)寄存器内容发送的,SSR 寄存器统共有 512bit,在主机发出ACMD13 命令后(当然在发送ACMD13 之前须要发送CMD55 ) SD 卡将 SSR 寄存器内容通过数据线发送给主机。

【本文转载自CSDN,作者:rivencode】

全文目录内容分为三篇【上/中/下】原文链接跳转如下:

SD NAND 的 SDIO在STM32上的运用详解(上篇): http://www.longsto.com/news/58.html

SD NAND 的 SDIO在STM32上的运用详解(中篇): http://www.longsto.com/news/59.html

SD NAND 的 SDIO在STM32上的运用详解(下篇): http://www.longsto.com/news/60.html

相关文章

IT广场美食之旅,舌尖上的科技园区

随着科技的发展,我国各大城市纷纷崛起了一批现代化的科技园区,其中,IT广场作为科技创新的集聚地,不仅吸引了众多企业入驻,更成为了美...

科学 2024-12-30 阅读0 评论0

英伟达:AI芯片还可以这样做_芯片_缩放

过去一年,我们看到了来自工业界的新研究芯片的年夜水。基于芯片的新设计和新的神经处理器体系构造比比皆是。在早前举办的2019年超大规...

科学 2024-12-30 阅读0 评论0

IT感文化衫,科技与时尚的完美融合

随着科技的飞速发展,互联网、大数据、人工智能等新兴领域成为了人们关注的焦点。在这个充满科技感的时代,IT感文化衫应运而生,成为了一...

科学 2024-12-30 阅读0 评论0