基于ARM含SD控制器的SD卡的SDIO模式驱动解析(转)
2014-04-18 10:29
260 查看
SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。
SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,因此越来越多的被应用的嵌入式系统中。
SD卡的使用非常方便,常见的有两种工作模式:SPI和SDIO。SPI是串行的工作模式,速度相对较低,但是使用方便,只要MCU含有SPI接口均可使用。SDIO模式,可以最多4线传输,因此速度比较快,由于SD卡的普及,越来越多的MCU内部集成了SDIO控制器,简化了我们的工作。本文以三星s3c2410为例介绍。
1. SD卡的接口电路
2. SD卡的协议
SD卡的控制指令非常强大,支持SPI,SDIO模式,兼容MMC等。而且不同的
指令有不同的响应(3种),这在我们使用指令是要注意的。
3. S3C2410 SD卡控制器的介绍
SD卡控制器帮我们完成了协议上的很多工作,我们只需要按照协议配置寄存器
以及按照协议流程对SD卡操作就可以完成SD卡的功能了。
SDICON:完成SD卡基础配置,包括大小端,中断允许,模式选择,时钟使能等。
SDIPRE:对SDCLK的配置。
SDICARG:指令的参数存放在这里
SDICCON:控制指令形式的寄存器,配置SPI还是SDI指令,指令的反馈长度,是否等待反馈,是否运行指令,指令的索引等
SDICSTA:指令状态寄存器,指令是否超时,传送,结束,CRC是否正确等
SDIRSPO:反映SD的状态
SDITIMER:设置超时时间
SDIBSIZE:block的大小
SDIDCON:数据控制寄存器,配置是几线传输,数据发送方向,数据传送方式等。
SDIDSTA: 数据状态寄存器,数据是否发送完,CRC效验,超时等
SDIFSTA: FIFO状态积存器,DMA传输时否判断FIFO
SDIMSK:中断屏蔽
SD卡的结构能保证数字文件传送的安全性,也很容易重新格式化,因此越来越多的被应用的嵌入式系统中。
SD卡的使用非常方便,常见的有两种工作模式:SPI和SDIO。SPI是串行的工作模式,速度相对较低,但是使用方便,只要MCU含有SPI接口均可使用。SDIO模式,可以最多4线传输,因此速度比较快,由于SD卡的普及,越来越多的MCU内部集成了SDIO控制器,简化了我们的工作。本文以三星s3c2410为例介绍。
1. SD卡的接口电路
2. SD卡的协议
SD卡的控制指令非常强大,支持SPI,SDIO模式,兼容MMC等。而且不同的
指令有不同的响应(3种),这在我们使用指令是要注意的。
3. S3C2410 SD卡控制器的介绍
SD卡控制器帮我们完成了协议上的很多工作,我们只需要按照协议配置寄存器
以及按照协议流程对SD卡操作就可以完成SD卡的功能了。
SDICON:完成SD卡基础配置,包括大小端,中断允许,模式选择,时钟使能等。
SDIPRE:对SDCLK的配置。
SDICARG:指令的参数存放在这里
SDICCON:控制指令形式的寄存器,配置SPI还是SDI指令,指令的反馈长度,是否等待反馈,是否运行指令,指令的索引等
SDICSTA:指令状态寄存器,指令是否超时,传送,结束,CRC是否正确等
SDIRSPO:反映SD的状态
SDITIMER:设置超时时间
SDIBSIZE:block的大小
SDIDCON:数据控制寄存器,配置是几线传输,数据发送方向,数据传送方式等。
SDIDSTA: 数据状态寄存器,数据是否发送完,CRC效验,超时等
SDIFSTA: FIFO状态积存器,DMA传输时否判断FIFO
SDIMSK:中断屏蔽
相关文章推荐
- 基于ARM含SD控制器的SD卡的SDIO模式驱动解析
- 基于ARM含SD控制器的SD卡的SDIO模式驱动解析
- 基于ARM含SD控制器的SD卡的SDIO模式驱动解析
- 基于ARM含SD控制器的SD卡的SDIO模式驱动解析
- 基于ARM含SD控制器的SD卡的SDIO模式驱动解析
- 基于SPI模式的SD卡驱动
- [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分) - SD卡(SPI模式)驱动
- 基于FATFS文件系统使用SDIO的4线模式在SD卡上写入数据(一)
- 【再上层楼】CooCox优化了CoX——基于ARM Cortex-M处理器的设备驱动统一接口
- 基于ARM-LINUX的温度传感器驱动(一)
- 基于ubuntu-2.6.35内核的SDIO-WiFi驱动移植
- 基于ARM的智能灯光控制系统(3)驱动开发
- 基于ARM_contexA9 led驱动编程
- STM32CubeMX的SDIO模式下对SD卡读写测试(附源码)
- CE下基于Zylonite硬件平台的SD卡驱动开发
- 基于S3C2410的SD卡linux驱动工作原理
- 基于ARM-LINUX的温度传感器驱动18B20(1)
- 基于事件驱动的解析接口 SAX (实例三)
- 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
- 编写基于ARM的uClinux下自设备驱动