【SDIO】SDIO外设讲解-STM32

1、功能框图

        STM32控制器有一个SDIO,由两部分组成:SDIO适配器和APB2接口,见图 功能框图。SDIO适配器提供SDIO主机功能, 可以提供SD时钟、发送命令和进行数据传输。APB2接口用于控制器访问SDIO适配器寄存器并且可以产生中断和DMA请求信号。

        SDIO使用两个时钟信号,一个是SDIO适配器时钟(SDIOCLK=48MHz),另外一个是APB2总线时钟(PCLK2,一般为84MHz)。 

        DIO_CK是SDIO接口与SD卡用于同步的时钟信号。它使用SDIOCLK作为SDIO_CK的时钟来源, 可以通过设置BYPASS模式直接得到,这时SDIO_CK = SDIOCLK=HCLK。若禁止BYPASS模式, 可以通过配置时钟寄存器的CLKDIV位控制分频因子,即SDIO_CK=SDIOCLK/(2+CLKDIV)= HCLK/(2+CLKDIV)。 配置时钟时要注意,SD卡普遍要求SDIO_CK时钟频率不能超过25MHz。

        STM32控制器的SDIO是针对MMC卡和SD卡的主设备,所以预留有8根数据线,对于SD卡最多用四根数据线。

        SDIO适配器是SD卡系统主机部分,是STM32控制器与SD卡数据通信中间设备。SDIO适配器由五个单元组成, 分别是控制单元命令路径单元、数据路径单元、寄存器单元以及FIFO,见图 SDIO适配器框图

2、控制单元

        控制单元包含电源管理时钟管理功能,结构如图 SDIO适配器控制单元。 电源管理部件会在系统断电和上电阶段禁止SD卡总线输出信号。时钟管理部件控制CLK线时钟信号生成。一般使用SDIOCLK分频得到。

3、命令路径

        命令路径控制命令发送,并接收卡的响应,结构见图 SDIO适配器命令路径

        关于SDIO适配器状态转换流程可以参考图 卡识别模式状态转换图 , 当SD卡处于某一状态时,SDIO适配器必然处于特定状态与之对应。 STM32控制器以命令路径状态机(CPSM)来描述SDIO适配器的状态变化,并加入了等待超时检测功能, 以便退出永久等待的情况。CPSM的描述见图 CPSM状态机描述图

        正常命令运行路径如上图所示。

4、数据路径

        数据路径部件负责与SD卡相互数据传输,内部结构见图 SDIO适配器数据路径

        SD卡系统数据传输状态转换参考图 数据传输模式卡状态转换 , SDIO适配器以数据路径状态机(DPSM)来描述SDIO适配器状态变化情况。 并加入了等待超时检测功能,以便退出永久等待情况。发送数据时,DPSM处于等待发送(Wait_S)状态,如果数据FIFO不为空, DPSM变成发送状态并且数据路径部件启动向卡发送数据。接收数据时,DPSM处于等待接收状态,当DPSM收到起始位时变成接收状态, 并且数据路径部件开始从卡接收数据。DPSM状态机描述见图 DPSM状态机描述图

        正常接收和发送数据运行路径如上图所示。

5、数据FIFO

        数据FIFO(先进先出)部件是一个数据缓冲器,带发送和接收单元。控制器的FIFO包含宽度为32bit、 深度为32字的数据缓冲器和发送/接收逻辑。其中SDIO状态寄存器(SDIO_STA)的TXACT位用于指示当前正在发送数据RXACT位指示当前正在接收数据,这两个位不可能同时为1

  • 当TXACT为1时,可以通过APB2接口将数据写入到传输FIFO。

  • 当RXACT为1时,接收FIFO存放从数据路径部件接收到的数据。

        根据FIFO空或满状态会把SDIO_STA寄存器位值1,并可以产生中断和DMA请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值