千家信息网

STM32 SDIO是什么

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下STM32 SDIO是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、SDIO简介SDIO,全称:
千家信息网最后更新 2026年11月03日STM32 SDIO是什么

小编给大家分享一下STM32 SDIO是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1、SDIO简介

SDIO,全称:Secure Digital Input and Output,即安全数字输入输出接口。它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。

SDIO和SD卡规范间的一个重要区别是增加了低速标准。低速卡的目标应用是以最小的硬件开支支持低速I/O能力。低速卡支持类似调制解调器、条码扫描仪和GPS接收器等应用。

STM32的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SDI/O卡和CE-ATA设备。

SDIO框图

复位后SDIO_D0用于数据传输。初始化后主机可以改变数据总线的宽度(通过ACMD6命令设置)

如果一个多媒体卡接到了总线上,则SDIO_D0、SDIO_D[3:0]或SDIO_D[7:0]可以用于数据传输。

MMC版本V3.31和之前版本的协议只支持1位数据线,所以只能用SDIO_D0(为了通用性考虑,在程序里面我们只要检测到是MMC卡就设置为1位总线数据)

02、SDIO特点

①与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。

②与较早的多媒体卡系统规格版本全兼容(向前兼容)。

③与SD存储卡规格版本2.0全兼容。

④与SDI/O卡规格版本2.0全兼容:支持两种不同的数据总线模式:1位(默认)和4位。

⑤完全支持CE-ATA功能(与CE-ATA数字协议版本1.1全兼容)。8位总线模式下数据传输速率可达48MHz。

⑥数据和命令输出使能信号,用于控制外部双向驱动器。

03、SDIO时钟

卡时钟(SDIO_CK):每个时钟周期在命令和数据线上传输1位命令或数据。对于SD或SD I/O卡,时钟频率可以在0MHz至25MHz间变化。

SDIO适配器时钟(SDIOCLK):该时钟用于驱动SDIO适配器,可用于产生SDIO_CK时钟。SDIOCLK来自PLL48CK(48Mhz)。

APB2总线接口时钟(PCLK2):该时钟用于驱动SDIO的APB2总线接口,其频率为PCLK2=84Mhz。

SDIO_CK计算公式:SDIO_CK=SDIOCLK/(2+CLKDIV)

注意:在SD卡初始化时,SDIO_CK不可以超过400Khz,初始化完成后,可以设置为最大频率(但不可以超过SD卡最大操作频率)

04、SDIO的命令与响应

命令

SDIO的命令分为:应用相关命令(ACMD)和通用命令(CMD)两部分。发送ACMD时,需先发送CMD55。

SDIO所有的命令和响应都是在SDIO_CMD引脚上面传输的,命令长度固定为48位,SDIO命令格式如下表所示:

STM32 SDIO长响应(136位)格式如下表所示

在收到R1响应后,我们可以从SDIO_RESPCMD寄存器和SDIO_RESP1寄存器分别读出命令索引和卡状态信息。关于其他响应的介绍,请大家参考光盘:《SD卡2.0协议.pdf》

05、SDIO块数据传输

多数据块读操作

SDIO与SD卡通信一般以数据块的形式进行传输,SDIO(多)数据块读操作,如下图所示

数据块写操作同数据块读操作基本类似,只是数据块写的时候,多了一个繁忙判断,新的数据块必须在SD卡非繁忙的时候发送。这里的繁忙信号由SD卡拉低SDIO_D0,以表示繁忙,SDIO硬件自动控制,不需要我们软件处理。

注意:当SDIO_CK频率过快时,可能导致SD卡通信失败,此时,建议降低SDIO_CK试试。

06、代码

STM32的SDIO控制器驱动还是很复杂的,ST提供了stm32f2x_sdio_sd.c驱动文件,我们组要修改对应的GPIO驱动即可。

/**  * @brief  Initializes the SD Card and put it into StandBy State (Ready for   *         data transfer).  * @param  None  * @retval None  */void SD_LowLevel_Init(void){  GPIO_InitTypeDef  GPIO_InitStructure;   /* GPIOC and GPIOD Periph clock enable */  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | SD_DETECT_GPIO_CLK, ENABLE);   GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_SDIO);  GPIO_PinAFConfig(GPIOC, GPIO_PinSource9, GPIO_AF_SDIO);  GPIO_PinAFConfig(GPIOC, GPIO_PinSource10, GPIO_AF_SDIO);  GPIO_PinAFConfig(GPIOC, GPIO_PinSource11, GPIO_AF_SDIO);  GPIO_PinAFConfig(GPIOC, GPIO_PinSource12, GPIO_AF_SDIO);  GPIO_PinAFConfig(GPIOD, GPIO_PinSource2, GPIO_AF_SDIO);   /* Configure PC.08, PC.09, PC.10, PC.11 pins: D0, D1, D2, D3 pins */  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  GPIO_Init(GPIOC, &GPIO_InitStructure);   /* Configure PD.02 CMD line */  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  GPIO_Init(GPIOD, &GPIO_InitStructure);   /* Configure PC.12 pin: CLK pin */  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;  GPIO_Init(GPIOC, &GPIO_InitStructure);    /*!< Configure SD_SPI_DETECT_PIN pin: SD Card detect pin */  /*GPIO_InitStructure.GPIO_Pin = SD_DETECT_PIN;  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  GPIO_Init(SD_DETECT_GPIO_PORT, &GPIO_InitStructure);*/   /* Enable the SDIO APB2 Clock */  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SDIO, ENABLE);   /* Enable the DMA2 Clock */  RCC_AHB1PeriphClockCmd(SD_SDIO_DMA_CLK, ENABLE);}

DMA等配置使用默认的即可。

我们需要使用的函数接口有

SD_Error SD_Init(void);SD_Error SD_Erase(uint32_t startaddr, uint32_t endaddr);SD_Error SD_WriteBlock(uint8_t *writebuff, uint32_t WriteAddr, uint16_t BlockSize);SD_Error SD_ReadBlock(uint8_t *readbuff, uint32_t ReadAddr, uint16_t BlockSize);

以上是"STM32 SDIO是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

数据 命令 时钟 总线 版本 传输 支持 接口 驱动 频率 繁忙 低速 多媒体 多媒体卡 数据传输 规格 控制 模式 篇文章 应用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州百单互联网科技有限公司 美国互联网科技巨头监管 互联网 科技 贷财互联网科技 互联网科技大会 科技互联网创业计划书 互联网科技公司介绍 顺网科技2021年互联网排名 无锡溥仪互联网科技有限公司 互联网科技公司的市场部门 互联网实体化科技化 团飞科技与伯堂互联网服务平台 贵州叶脉互联网科技有限公司所属行业 互联网方面的科技前沿 锡山区互联网智能科技产品供应 北京市互联网新科技 版纳互联网科技选哪家 美国五大互联网科技公司市值多少 杭州科技互联网公司有哪些 上海旺乐尼互联网科技有限公司 互联网最新的科技有限公司 苏州互联网科技贷款公司 互联网科技上市公司 互联网科技小额贷款 华脉科技工业互联网产品 承德科技产业互联网发展 辽宁互联网新科技 互联网金融科技名词解释 万物互联网智能科技 互联网 科技节活动 微视频大赛
0