SD卡驱动开发
2007-01-27 19:08
204 查看
按照SD卡的协议的描述可分为2种总线的接口
1. SD BUS
物理层定义:(具体连接图不在贴出)下面大致介绍下一些数据线的定义
D0-D3 数据传送
CMD 进行CMD 和Respons
CLK 大家最熟悉的HOST时钟信号线了
VDD VSS 电源和地
2. SPI BUS 一般用SPI协议的接口来做
物理层定义:
CLK HOST时钟信号线了
DATAIN HOST-àSD Card数据信号线
DATAOUT SD Card àHOST数据信号线
除了以上述数据线外SPI BUS多了CS片选(注意:如果是以SPI方式来写SD卡驱动要注意这点)
通常SD MMC卡内部会有一些Register
一般有下面几种
1. CID 卡的识别号
2. RCA 卡的相对地址
3. DSR 可选寄存器
4. CSD 描述操作该卡的规则(时序规则)。包括,数据读/写时间,工作电流,扇区大小,文件系统格式,卡所使用的命令集,写保护等信息。通过该寄存器可以获取卡的容量,访问方式。
5. SCR 卡的配置寄存器
6. OCR 卡运行条件寄存器 描述卡的工作电压范围 ,它还还包含一个上电状态标记位用于描述是否完成卡上电过程 (驱动对卡在作初试化动作的时候特别要注意这点)
首先谈下SD协议:
SD总线的访问状态有3态
1 COMMOND::启动操作的会话,由Host从CMD连线传送到卡类设备
2 Response:响应CMD的会话,由卡类设备由CMD连线传送至Host
3 Data:在Host与卡设备间传送数据的双向数据流,物理链路为Data0-Data3
注意:每一个完整的操作都需要一个CMD来启动,根据不同的CMD 有相应的Data和Response.
SD可以一主对多从,也可以P2P 所以大家弄清楚P2P的规律,其他的多卡广播也自然明了
按照协议的描述对于P2P的情形是否有数据传输来分4类
1.无响应的广播命令-(BC)
2.响应型的广播命令-(BCR)
3.无数据传输的点对点命令(AC)
4.带数据传输的点对点命令(ADTC)
这些会话都有一定的时序。
from http://blog.csdn.net/professionaler/archive/2006/05/30/763871.aspx
1. SD BUS
物理层定义:(具体连接图不在贴出)下面大致介绍下一些数据线的定义
D0-D3 数据传送
CMD 进行CMD 和Respons
CLK 大家最熟悉的HOST时钟信号线了
VDD VSS 电源和地
2. SPI BUS 一般用SPI协议的接口来做
物理层定义:
CLK HOST时钟信号线了
DATAIN HOST-àSD Card数据信号线
DATAOUT SD Card àHOST数据信号线
除了以上述数据线外SPI BUS多了CS片选(注意:如果是以SPI方式来写SD卡驱动要注意这点)
通常SD MMC卡内部会有一些Register
一般有下面几种
1. CID 卡的识别号
2. RCA 卡的相对地址
3. DSR 可选寄存器
4. CSD 描述操作该卡的规则(时序规则)。包括,数据读/写时间,工作电流,扇区大小,文件系统格式,卡所使用的命令集,写保护等信息。通过该寄存器可以获取卡的容量,访问方式。
5. SCR 卡的配置寄存器
6. OCR 卡运行条件寄存器 描述卡的工作电压范围 ,它还还包含一个上电状态标记位用于描述是否完成卡上电过程 (驱动对卡在作初试化动作的时候特别要注意这点)
首先谈下SD协议:
SD总线的访问状态有3态
1 COMMOND::启动操作的会话,由Host从CMD连线传送到卡类设备
2 Response:响应CMD的会话,由卡类设备由CMD连线传送至Host
3 Data:在Host与卡设备间传送数据的双向数据流,物理链路为Data0-Data3
注意:每一个完整的操作都需要一个CMD来启动,根据不同的CMD 有相应的Data和Response.
SD可以一主对多从,也可以P2P 所以大家弄清楚P2P的规律,其他的多卡广播也自然明了
按照协议的描述对于P2P的情形是否有数据传输来分4类
1.无响应的广播命令-(BC)
2.响应型的广播命令-(BCR)
3.无数据传输的点对点命令(AC)
4.带数据传输的点对点命令(ADTC)
这些会话都有一定的时序。
from http://blog.csdn.net/professionaler/archive/2006/05/30/763871.aspx
相关文章推荐
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一)
- S3C2440上 MMC/SD卡驱动实例开发讲解
- MMC/SD卡驱动实例开发讲解(二)
- Linux SD卡驱动开发(六) —— SD卡启动过程总体分析
- SD卡驱动开发心得体会
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一)
- Linux SD卡驱动开发(四) —— SD 控制器之真正的硬件操作
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)
- S3C2440上 MMC/SD卡驱动实例开发讲解
- S3C2440上MMC/SD卡驱动实例开发讲解(一) - 内核、驱动开发篇
- CE下基于Zylonite硬件平台的SD卡驱动开发
- 嵌入式Linux知识:S3C2440上 MMC/SD卡驱动实例开发讲解(2)
- 嵌入式Linux知识:S3C2440上 MMC/SD卡驱动实例开发讲解
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(二)
- S3C2440上 MMC/SD卡驱动实例开发讲解(三)
- 嵌入式LinuxS3C2440上MMC/SD卡驱动实例开发讲解(一)
- CE5.0下SD卡驱动开发(一)
- 嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一)[转]
- Linux SD卡驱动开发(一) —— SD 相关基础概念