运动控制器23:STM32的SDIO功能介绍1

SDIO主要功能

  • 支持1位总线,4位总线,8位总线,8位总线可达48M传输速率。
  • 支持MMC卡,SD卡和CE-ATA等标准

SDIO总线拓扑

  • 总线上的通信是通过传送数据和命令实现的。

  • 基本操作:命令/响应,某些操作还有数据令牌。

  • 在SD存储器上是以数据块的形式进行传输。

  • 当选择SDIO工作在SD4位数据总线工作模式时候,我们选中的引脚如下:


    SD卡用到的引脚
  • 数据的传输操作流程如下:(以读操作为例)

    • 主机发送命令,等待卡的响应。
    • 卡响应以后,数据从卡发送至主机,经过CRC后(也可能是数据流,无需每次CRC).
    • 继续发送下一个数据块。
    • 主机发送一个STOP的命令后,卡发回一个响应,传输完成。

SDIO功能描述

  • 包含两个部分,一个是SDIO适配器,一个是AHB总线接口。
  • 所有的数据线都工作于推挽模式。
  • 对于SD或SD I/O卡,时钟频率可以在0MHz至25MHz间变化。
  1. 适配器,一共五个部分
  • 寄存器
  • 控制单元

电源管理和时钟分频

命令通道

发送命令和接收响应
- 命令通道状态机CPSM
- 命令固定为48位,其中包括了开始和结束位,传输位一共3位
- 6位命令索引
- 32位参数
- 7位CRC
- 响应则有两种格式,短格式如上命令格式,长格式136位包括CID和CSD

数据通道

  1. SD卡可以选择4位总线或者1位总线,默认为1位
  2. 数据通道状态机:DPSM使能后进入WAIT-S或者WAIT-R状态
  • 发送状态:如果FIFO中有数据,则发送出去
  • 接收状态,收到起始位进入接收状态,从卡中读数据
  1. DPSM一共6个状态,包括idle,busy以外,还有WAIT-S和WAIT-R,以及sending和receiving状态。
  2. 数据令牌格式分成两种,一种是块数据,一种是流数据,块数据包含了16位CRC,流数据则没有。
  3. 数据为32位+起始2位+CRC16位。

数据FIFO

  1. FIFO大小为32*32,根据RXACT和TXACT来分配FIFO为发送还是接收
  2. 发送FIFO,AHB数据写入FIFO,有TXFIFOF和TXFIFOE表示FULL和EMPTY,当8个以上的FIFO空时候,TXFIFOHE,此时可以通知DMA继续填入数据,TXDAVL和TXUNDERR用于处理异常。
  3. 接收FIFO类似。

总线接口

下面的例子,主机控制器使用CMD24(WRITE_BLOCK)从主机传送512字节到MMC卡,关于CMD24命令,后面有统一描述。

  1. 执行卡识别过程
  2. 提高SDIO_CK频率
  3. 发送CMD7命令选择卡
  4. 配置DMA2:清中断,设置源地址和目标地址,设置DMA2的其他参数,使能DMA
  5. 发送CMD24:
    • 设置数据长度
    • 卡的地址
    • 设置命令WRITE_BLOCK
    • 等待SDIO_STA中断
    • 等待DBCKEND
  6. 查询DMA通道的使能状态

卡功能描述

卡识别模式

此模式只用到了CMD线,执行流程:复位所有卡,检测电压范围,分配地址RCA

卡复位

CMD0软件复位后,所有的卡处于闲置模式,分配默认地址,闲置模式下卡的输出端为高阻状态。

操作电压范围确认

超出操作电压的卡将进入非激活状态,存储了CID和CSD的卡,电压正常后则可以通信。

卡识别过程

MMC和SD卡的识别略有不同,MMC卡就是数码相机用的卡,而SD卡更小,而SDIO接口通常用于WIFI和蓝牙,GPS模块用,SD卡的识别过程如下:

  1. 总线被激活
  2. 主机发送SEND_OP_COND
  3. 主机得到响应,不兼容的卡设为非激活状态
  4. ALL_SEND_CID广播发送到激活卡
  5. 激活的卡发送CID,如果有多个竞争,则用线与仲裁
  6. 主机发送SET_RELATIVE_ADDR,作为刚刚CID卡的地址,然后此卡进行待机。
  7. 如果有多个卡,则进行下一次循环。

写数据块

  1. 执行CMD24-27时,主机写入数据,在数据块后跟CRC
  2. WRITE_BL_LEN决定了数据长度,如果CRC错误,则所有数据全部丢掉。
  3. 如果卡已写满,或者有对齐等错误发生时进行处理,主机可以随时发送SEND_STATUS来查询状态。
  4. READY_FOR_DATA表示卡还可以继续写入数据,主机才继续写入
  5. 有错误时,SDIO_D拉低。

读数据块

读数据块的操作有点同写数据块

数据流操作

只适用于多媒体卡,SD卡和SDIO不支持这种最快速的操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343