SD存储卡硬件接口
SD存储卡有6条通信线路和3条供电线路:
CMD:命令是双向信号。主机和卡驱动以推拉方式工作。
DAT0-3:数据线是双向信号。主机和卡驱动在推拉模式下运行
CLK:时钟是主机到卡的信号。CLK工作在推拉模式
Vdd: Vdd是所有卡的供电线路。
Vss1, Vss2是两条地线。
除了那些连接到内部卡电路的线路外,还有两个写保护/卡检测开关的触点,它们是插座的一部分。这些触点不是强制性的,但如果它们存在,则应按下图所示进行连接。当使用DAT3检测卡时,应断开DAT3的RDAT,另接一个电阻接地。
SD NAND
如果使用SD NAND时,只需使用CMD、DAT0-3、CLK、Vdd、Vss共计8个网络即可。可以选用1线程和4线程,最高工作频率可以达到50MHz
Rdat和Rcmd是上拉电阻,当没有卡插入或所有卡驱动处于高阻抗模式时,保护CMD和DAT线路免受总线浮动。即使主机在SD模式下仅使用1bit - 1模式的SD存储卡,主机也应通过RDAT拉出所有的DAT0-3线。此外,主机应该在SPI模式下拉出所有的“RSV”线,即使它们没有被使用。Rwp用于写保护/卡检测开关。
应用:如果主机在电源线上使用去耦电容,以减少热插拔产生的涌流影响.
热插拔
为了保证在热插拔过程中卡引脚连接的正确顺序,必须使用特殊的热插卡连接器或主机侧的自动检测环路。即使在电源(Vdd)上电的情况下,在SD Memory card总线上插拔卡也不会损坏卡。数据传输操作受到CRC码的保护,因此由于插卡和拔卡引起的任何位变化都可以被主机检测到。
当CLK携带时钟频率fpp时,插入的卡也应正确复位。每个卡都应有电源保护,以防止卡(和主机)损坏。主机检测到拔插导致的数据传输失败。它们应该由应用程序更正,它可以重复发出的命令。
卡检测(插/拔)
为了能够给用户反馈指示,SD存储卡系统需要实现插卡或拔出卡的检测。一种方法是由连接器产生卡检测信号。
另一种方法是通过感应卡的引脚1,检测其上的上拉电阻。这个和其他几个卡检测选项的详细描述在“Part H2主机实现指南”中给出。
上电
“上电时间”定义为电压从0伏上升到Vpp min的时间(参见6.6),取决于应用参数,如SD卡的最大数量,总线长度和电源单元的特性。
“电源上升时间”提供电源上升到工作电平(主机供电电压)的时间,以及SD卡可以接受第一个命令的时间。
主机应给卡供电,使电压在250ms内达到Vdd min,并开始向SD卡供电至少74个SD时钟,并保持CMD线高位。在SPIl模式下,CS应在74个时钟周期内保持高电平。
上电后(包括热插拔,即在总线运行时插卡)SD卡进入空闲状态。如果是SD主机,则不需要CMD0。如果是SPI主机,CMD0应该是第一个将卡发送到SPI模式的命令。
CMD8是物理层规范2.00版本新增的,支持多个电压范围,用于检测卡是否支持供电电压。2.00或更高版本的主机在初始化卡之前必须发出CMD8并验证电压。不支持CMD8的主机应提供高电压范围。
ACMD41是一个同步命令,用于协商操作电压范围,并轮询卡,直到它们的上电顺序结束。如果主机系统连接多个卡,主机应检查所有卡是否满足供电电压。否则,主机应该选择其中一张卡片并进行初始化。
上电时间
“物理层规范2.00”的上图Power-up Diagram中没有对复位级别进行描述。下方图所示的变化适用于上图物理层的范围
主机需要保持电源线电平小于0.5V,功率上升前大于1ms。
上电或上电循环
为确保SD卡可靠硬复位,请遵循上电和上电周期要求。
(1)电压等级应低于0.5V
(2)持续时间至少为1ms。
Power Supply Ramp Up
功率上升时间定义为从0.5V阈值电平到工作电源电压,
该电压在VDD(最小)和VDD(最大)之间稳定,主机可以提供SDCLK。以下是功率提升的建议:
(1)电源升压电压应尽量是单调的。
(2)最小上升时间为0.1ms。
(3) 2.7-3.6V电源最大升压时间为35ms。
下电和上下电循环
当主机关闭电源时,卡电压应降到0.5伏以下,持续时间至少为1ms。下电时,应将DAT、CMD、CLK断开或由主机驱动到逻辑0位,以避免工作电流从信号线引出。
如果主机需要改变工作电压,则需要一个电源周期。电源循环是指电源被关闭并再次供电。访问已经处于非活动状态的卡也需要电源周期。要创建一个电源周期,主机在给卡上电之前应按照下电描述操作(即卡电压应一次降到0.5伏以下,持续时间至少为1ms)。