1、简介
SD卡是基于flash的存储卡。
SD卡和MMC卡的区别在于初始化过程不同。
SD卡的通信协议包括SD总线和SPI两类。
SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。
通信电压范围:2.0-3.6V;工作电压范围:2.0-3.6V
最大读写速率:10Mbyte/s
最大10 个堆叠的卡(20MHz,Vcc=2.7-3.6V)
2:卡类型
MMC卡: MultiMedia card,有 7 个触点( 引脚),分为两种操作模式,分别为 MMC模式与SPI 模式,两种模式对引脚的定义是不同的。SPI 模式只有 Host 具有SPI 接口时才能使用。MMC只具有存储功能,不像SD卡还具有加密功能。
SD卡: Security Digtial card,共有9 个触点( 引脚),多余的 2 个引脚为数据线,但使用与 MMC卡兼容的模式时,这两个多余的引脚没有起到作用。SD卡除了存储功能外,还有一种加密功能,但加密功能是收费的(所以开源的linux中只包含mmc的驱动目录),因为当初SD卡联盟中(索尼)就是发明这种卡就是用来存储音乐(淘汰卡带),并使用加密特性,防止拷贝。
TF卡:软件上SD卡一致,只是在硬件的体积上比SD卡西小,所以市场上很多的TF卡的SD外形卡套
SDIO卡: 这种卡并不是存储卡,可以理解为一个SDIO接口卡,如WIFI(SDIO接口);并非memory卡,故名思意,
就是输入/ 输出卡,这种卡有用于 LAN的、也有用于蓝牙的。
3、SD卡协议
1.x:小于2GB的卡(但通过相关的软件,可以模拟实现大于2GB)
2.0: 2<sd卡<32 gb
3.0: >32GB
4、SD卡通信接口
SD卡有9个pin:1个VDD,2个VSS(GND),CLK,CMD,DATA0-DATA3, 【DATA3可以作为卡检测脚】
SD卡可以使用SD总线接口,也可以使用SPI通信接口;
SD总线接口描述:
CMD:Command is a bi-directional signal. (Host and card drivers are operating in push pull mode.) 【命令与响应都是走这条线】
DAT0-3:Data lines are bi-directional signals. (Host and card drivers are operating in push pull mode.) 【真正的数据走这几条线,数据位是可以配置:1~4】
CLK:Clock is a host to cards signal. (CLK operates in push pull mode.)
VDD:VDD is the power supply line for all cards.
VSS[1:2]:VSS are two ground lines.
SPI接口描述:
CS:Host to card Chip Select signal.
CLK:Host to card clock signal.
DataIn:Host to card data signal.
DataOut:Card to host data signal.
5、SD卡内部结构
Each card has a set of information registers
The RCA register is not available in SPI Mode.
OCR: 卡操作电压寄存器 32位, 只读,每隔0.1V占1位, 第31位卡上电过程是否完成
CID: 卡身份识别寄存器 128bit,只读, 厂家号,产品号,串号,生产日期
SCR: 卡配置寄存器, 可写的 64bit 是否用Security特性(LINUX不支持),以及数据位宽(1bit或4bit)
RCA: 卡地址寄存器: 可写的 16bit SD host和卡进行协商的一个地址,内核中会在代码里面记录这个地址,卡这 边则写到RCA寄存器
CSD: 卡专有数据寄存器 部分可读写 128bit, 卡容量,最大传输速率,读写操作的最大电流、电压,读写擦出块的最大长度等








</sd卡