1、 毕业论文文献综述 电子信息工程 SD 卡的综述 摘要: 在数码产品竞争日益残酷的今天,基于已有的 SD卡标准,通过不同平台实现其多种多样的应用,让人们不经眼前一亮。文章首先简单介绍下 SD卡的概念和应用背景,以及 SD卡的通信协议。然后介绍 SD卡的初始化及 SD卡控制器的实现方法,为 SD卡在不同平台下的应用铺垫,最后介绍 SD卡在不同平台下的几种应用并做比较。 关键词: SD卡; SPI协议;初始化;控制器;应用 引言 现在数码相机、手机、掌上电脑、随身听上处处都可能用到存储卡,存储卡有很多种类,常见的有 CF 卡、 MicroDrive、 SD 卡、 MMC 卡、记忆棒、 SM 卡、
2、xD 卡等。对于各种数码设备和移动设来说,各种存储卡是共通的泛用设备,也是必不可少的核心环节之一,过去那种不支持存储卡,不具备扩展能力,仅靠有限的内置存储体来工作的数码相机和掌上电脑在今天是不可想象的。随着数码相机像素的提高以及对拍摄速度的更高要求、手机和掌上电脑影视音乐娱乐等方面的需求以及软件的大型化,不但存储卡必不可少,而且还需要容量和性能更高的存储卡 14。 1 SD 卡概述 SD 卡( Secure Digital Memory Card)是由日本松下、东芝和 美国的 SanDisk 公司三家联合于 1998年 8 月共同研制开发的。大小犹如一张邮票,重量只有 2 克,但却拥有高记忆容
3、量、快速数据传输率、极大的移动灵活性以及很好的安全性等诸多优点。 SD 卡在 24mmX32mmX2 1mm 的体积内整合了 SanDisk 快闪记忆卡控制与 MLC( MultilevelCell)技术和东芝 0 16u 及 0 13u 的 NAND 技术,通过 9 针的接口界面与专门的驱动器相连接,不需要额外的电源来保持其上记忆的信息。而且它是一体化固体介质,没有任何移动部分,所以不用担心机械运动的损坏。标准版本 (SD、 miniSD、microSD)、大容量版本 (SDHC、 miniSDHC、 microSDHC)、和 SDIO 卡。其中 mini 型和 micro 型是在原有的 S
4、D 基础上加以改进而使体积逐渐减小。 miniSD 卡的开发是为了符合行业对小型移动电话的持续需求。 miniSD 卡的大小仅是 SD 卡的 37,但小小一张卡却具备所有的存储能力、速度、及其它优点,还有版权保护 1。 SD 卡较传统的 Flash 具有明显的优势:首先,价格便宜,随着 SD 卡技术的发展和 SD 卡生产厂商的不断增加, SD 卡的价格不断下降,已经和 Flash 的价格相差无几。其 次,存储容量大,尤其是 SDHC 卡的出现,目前已经能够达到 32GB,并且增大趋势日益明显。再次,读写方便,我们可以通过读卡器读写 SD 卡,比起仿真价格便宜,读写速度快。最后,易插拔、更换和携
5、带方便 9。 图 1 SD 卡与 引脚定义 2 SD 卡通信协议 在不同的通信模式下, SD 卡的各引脚功能也不相同。这里的通信模式是指微处理访问卡时使用的通信协议,分为 SD 模式和 SPI 模式两种。在具体的通信过程中,主机只能选择一种模式。通信模式的选择对于主机来说是透明的。卡将会自动检测复位命令的模式,而且要求以后双方的通信都要按相同的通信模式进行 15。 (1)SD 模式 在 SD 模式下,主机使用 SD 总线访问 SD 卡,其总线拓朴结构为:一个主机、多个从机和同步的星形拓朴结构。所有卡共用时钟上 CLK、电源和地信号,而命令线和数据线则是卡的专用信号线,即每张卡都独立拥有这些信号
6、 15。 (2)SPI 模式 在 SPI 模式下,主机使用 SPI 总线访问卡。当今大部分微处理器本身都带有硬件 SPI 接口,所以使用微处理器的 SPI 接口访问卡的很方便。微处理器在卡上电后的第一个复位命令时就可以选择卡进入 SPI 模式,但在卡上电期间,它们之间的通信模式不能 更改为 SD 模式 15。 图 2 SPI 时序图 两种协议的区别: SD 卡可以采用 SD 总线访问,也可以采用 SPI 总线模式访问,考虑到大部分微控制器都有 SPI接口而没有 SD 总线接口,所以使用微控制器的 SPI 接口访问 SD 卡是很方便的,而且如果采用 IO 口模拟 SD 总线,不但增加了软件的开销
7、,而且对大多数微控制器而言,模拟总线远不如真正的SD 总线速度快,这将大大降低总线数据传输的速度,基于以上的考虑,主机使用 SPI 总线访问 SD卡 1。 2.1 相关寄存器 SD 卡内部有 7 个寄存器其中 OCR, CID, CSD 和 SCR 寄存器保存着卡的配置信息; RCA 寄存器保存着通信过程中卡当前暂时分配到的地址;卡状态和卡状态寄存器保存着卡的状态,这两个寄存器的内容与通信模式相关 15。 2.2 SD 卡初始化 开始电源及 CS 引脚线设置时钟和数据线连线设置卡状态检测和时钟频率设置上电74 个时钟延时发送 CMD 0 同时 CS 设为 0读取 SD 应答信号应答信号 0 x
8、 01发送 CMD 1应答信号为 0 x 00读取 OCR 信息修改时钟频率设置数据块长读取 CSD 信息初始化完成NYNY图 3 SD 卡初始化流程图 在卡识别模式之前,需要进行一系列的硬件链路设置,设置好后主机上电并等待 74 个时钟周期,发送 CMDO 命令重启 SD 卡,它是一种软件启动方式,并且同时 CS 线拉低,该命令发送成功后,卡将进入到 Idle State 状态,卡的命令线处于输入模式,并且等待下一个 命令的起始位,此时需要向卡发送命令 CMDI 以激活卡的初始化进程,最后 SD 卡需要得到的是 0CR 寄存器的值,里面记录着该卡的驱动电压范围,访寄存器值由 ACMD41 命
9、令取出,在发送此类命令之前都需要加入一个CMD5S 命令。如果获取成功, SD 卡进入 Ready State 状态 1。 3 SD 卡控制器的实现 功能强大的嵌入式产品通常需要复杂的操作系统给予支持,系统启动模块 (BootLoader)作为系统软件的重要组成部分,起到引导和加载操作系统内核镜像的作用。嵌入式系统低成本启动方案的设计实现,对降低产品的成本具有 重要的实用价值 7。 通过分析 SD 卡物理层规范 ,设计一种采用 SD 总线的 SD 卡控制器 ,该控制器可以实现对于 SD 卡的基本控制 ,如 : 初始化 SD 卡、读写数据、擦除数据等操作 6。 3.1 SD 卡控制器的 FPGA
10、 实现 SD 卡控制器通过发送、接收和监测总线上的信号实现对 SD 卡的控制。它们之间有三种通信模式: l-bitSD 总线模式、 4-bit SD 总线模式和 SPI 总线模式。因 为 1-bit SD 总线和 SP 总线的数据传输速度与效率都很低,所以采用 4-bit SD 总线模式实现控制器对 SD 卡的初始化、读写等操作。控制器工作时 ,发出命令操作信号,将命令字和命令参数进行并串转换加上相应的 CRC(Cyclic Redun dancy Check)校验位,通过 CMD 线传送给 sD 卡, SD 卡发出响应作为命令的回应,响应也在 CMD 线上传输,控制器接收并对响应信号进行 C
11、RC 校验分析以确定 SD 卡状态,根据状态进行下一步的操作。若命令或响应在传输过程中出现错误控制器将发出中断操作命令 3。 图 4 SD 控制器 3.2 基于 ARM7 的 SD 卡控制器 上电后, SD 卡自动进入 SD 模式。单片机此时使 CS 信号为低电平,并向 SD 卡发送 RESET 命令 (CMD0),如果 sD 卡有 0x01 作为响应,则表明 SD 卡进入 SPI 模式下的 Idle 状态。在等待至少 74个时钟周期后,向 SD 卡发 SEND OP COND(CMDl)命令,当轮询到 SD 卡的响应为 0x00 时,说明 SD 卡已经准备好接收读写操作了 8。 SD 模式I
12、dle state ( SPI 模式 )准备好CMD 0CMD 1CMD 24CMD 17CMD 25CMD 18上电图 5 控制器实现流程图 4 SD 卡在各种平台下的应用 4.1 基于 FPGA 的 SD 卡音乐播放系统 首先使用 soPc BuiLder 系统工具构建了一个 Nios CPU 作为整个系统的处理器核。它的 Avalon总线对其他接口 及控制器进行指令和数据传输,包括:由内部定时器控制的 Avalon 总线;为 Nios CPU配置了 JATG 通用异步收发器 UART:为可选择的片外存储器配备了专用存储器接口;控制语音输入输出的音频数据接口,实现语音编解码的控制和流处理
13、2。图 6 软件系统结构图 4.2 基于 NiosII 和 SD 卡的数据采集系统 在 Nios 软核处理器上采用 SD卡设计了一种嵌入式文件系统 ,并在该文件系统和 FPGA的基础上设计了一种便携式数据采集系统 5。 整个系统由以下四部分构成:信号调理电路、 AD9240 转换器、 FPGA 和大 容量 SD 卡。 FPGA平台采用 Ahera 的 DEl 开发板 4。 1) 信号调理电路 : 对来自探测器的信号进行滤波、放大等信号调理后,满足 AD9240 的输入要求。( 2) AD9240: 完成采样、转换与数据输出功能。采样率 lOMHz, 14bit,量程采用 2 5V。由 FPGA
14、提供 AD 转换芯片的电源及时钟信号,用该时钟信号控制 ADC 的采样、转换和数据输出。 ( 3) FPGA:包括 NiosII 内核、片内存储器、定时器、 P10 控制器、 SPI 核、 DMA 控制器、 ADC 控制器。其中自定义模块 ADC 控制器用来控制 AD9240 的采集、转换和 数据读出,对数据的读取采用乒乓结构。 ( 4)SD 卡 : SD 卡采用的是 Sandisk 公司的,容量为 2G,应用 FATl6 格式保存数据文件 4。信号调理 A / D 转换 FPGA SD 卡模拟信号图 7 系统流程图 5 SD 卡应用的比较 基于 FPGA 的 SD 卡音乐播放系统使用内嵌 N
15、ioslI 软核处理器的 FPGA 作为运算、控制核心的音乐播放系统,具有结构简单、可靠性高、使用方便。扩展性强等优点。利用 FPGA 快速强大的处理功能能够快速、方便地进行音乐的播放。利用可编程的片上系统 SOPC 可以方便灵活地进行音乐播放,不仅 降低了成本,还具有很大的扩展性和灵活性用 2。 基于 NiosII 和 SD 卡的数据采集系统应用通用性强的 SD 卡大容量存储器,以 FatFS 文件系统为基础,设计了一种面向 NioslI 处理器的 SD 卡嵌入式文件系统,并将此系统应用于基于 NiosII 的SOPC 设计的数采集系统中。随着半导体工艺的发展, H, GA的功耗越来越低,应
16、用前景越来越广阔。与传统的 CPLD+ARM、 DSP+USB数据采集系统相比,本系统具有扩展性好、携带方便、成本低廉等优点,有较强的实用性 4。 6 总结 在数码产品日新月异的今天,新的嵌入式 SD 标准将定位于带有闪存管理、自启动功能的低功耗消费类移动手持存储设备 .因此,针对带有 SD 功能的产品的研发已成必不可少的步骤,而 SD 协议又提供了程序化的开发标准,所以对其功能的实现的研究也可以在以后诸多涉及到其功能的产品中能起到一定的软件复用的作用,意义非常深远。 参考文献 1任玉帅 .SD 存储方案的研究与实现 J.重庆工学院学报 ,2008,22(4):10-11. 2朱艳 ,骆扬 .
17、基于 SOPC 的音乐播放系统 J.微计算机信息 ,2006,22(2):143-145. 3李德桥 ,丁克勤 .SD 卡控制器 的 FPGA 实现 M.西安 :西安电子科技大学出版社 ,2008. 4 杨爽 , 郑丽芳 . 基于 NiosII 和 SD 卡的数据采集系统的设计技术 J 核电子学与探测技术2009,29(4):28-32. 5李兰英 .Nios 嵌入式软核 SOPC 设计原理及应用 M.北京 :电子工业出版社 ,2008. 6左源 ,刘新宁 ,师超 .一种 SD 卡控制器的硬件实现 J.电子世界 ,2007(10):23-25. 7王清 .嵌入式系统启动方案的设计与实现 M.南
18、京 :东南大学出版社 ,2008. 8高学军 ,王君 .基于 ARM7 的 SD 卡控制器的设计 J.华北工学院学报 ,2006,23(3):173-176. 9孙伟忠 ,吴庆洪 .SD 卡引导 Linux 内核在 ARMl l 中的实现 J技术探讨 ,2007(04):33-36 10张文昌 . 便携式心电分析仪的低功耗采集系统及软件体系研究 J.单片机与嵌入式系统应用 ,2007(07):55-65. 11李楠 ,胡世安 ,韩威 ,张凯翊 ,王馨熠 .基于 MSP430 和 SD 卡的低功耗压力采集系统 J.电子设计应用 ,2007(07):78-81. 12 Alcalde,A.Ortm
19、ann,M.S.gussa,S.NIOS II processor implemented in FPGA.An application on control of a PFC converter.IEEE,2008:4446-4451. 13 Ni,F.L,Jin,lI.H.Xie,Z.W.A Highly Integrated Joint Servo System Based on FPGA with Nios II Processor.IEEE International Conference,2006:973-978. 14郑亮 ,SD/MMC 控制器的设计与实现 J.福建师范大学学报 (自然科学版 )2007,23(1)33-36. 15关学勇 .基于 NIOS 的 SD 卡读写设计实现 D.大连 :大连理工大学 ,2009.