随着Flash Memory等非易失存储技术的发展,诞生了许多基于Flash存储技术的非易失大容量闪烁存储卡。其中SD卡以体积小、功耗低、口线少、操作方便等优势,被广泛应用于各种数码产品中,如数码相机、MP3等。SD卡同时也为低功耗、便携式动态心电监护仪器的采集、存储系统提供了理想的存储介质。本研究设计了一个基于MSP430系列单片机和SD卡的FAT16文件系统,该文件系统能够将采集的数据以Windows标准文件的形式存储在SD卡上,然后通过读卡器方便地将采集的数据传输到通用计算机上,进行进一步的数据处理和分析。 1硬件功能原理及接口设计 SD卡的外形和接口如图1所示。根据SD卡与主控制器的通信协议不同,SD卡对外提供两种访问模式[1]:SD模式和SPI模式。所用通信模式不同,SD卡引脚的功能也不同,具体引脚功能如表1所示。在具体通信过程中,主机只能选择其中一种通信模式,而且通信模式一旦选定,系统在通电情况下不能改变。SD模式下,主控制器使用SD总线访问SD卡,而通常的单片机没有硬件SD总线,尽管可以借助通用口线用软件仿真,但访问速度较低,还要占用大量CPU时间,而单片机多具有SPI总线,本文就利用SPI总线实现对SD卡的访问。下面主要介绍SPI总线方式。 在SPI总线模式下,CS为主控制器向卡发送的片选信号,SCLK为主控制器向卡发送的时钟信号,DI(DataIn)为主控制器向卡发送的单向数据信号,DO(DataOut)为卡向主控制器发送的单向数据信号。SD卡的内部结构如图2所示,SD卡内部除了具有大量存储单元外,还具有卡接口控制器、寄存器以及SD和SPI两种模式的对外接口等。外部主控制器访问卡的接口控制器与存储器单元接口相连。这样主控制器并不直接访问存储器,而是通过卡接口控制器根据主控制器的命令自动处理完成,而主控制器无须知道卡内是如何操作、管理存储单元的,这将大大减轻主控制器对存储器操作的负担。SD卡内部有6个信息寄存器,用来设置和保存操作卡的关键信息,有2个状态寄存器,用来记录操作卡的当前状态。 本设计中的主控制器采用MSP430F149单片机。MSP430系列16位低功耗单片机是一个具有强大处理能力的混合微处理器[2],它具有强大的处理能力以及丰富的片内外设。MSP430F149除能够满足数据采集功能外,还能很容易地实现对SD卡的访问。与SD卡系统相关的特性如下[3]: (1) 采用16位的RISC结构,有较高的处理速度,在8MHz晶体驱动下,指令周期为125ns,即指令速度可达8MIPS,能够满足高速操作SD卡的功能要求。 (2)具有2个串行通信接口,可用于异步和同步(UART/SPI),可以直接和SD卡的SPI总线连接。 (3)具有6个8位并行端口,且2个8位端口具有中断能力,能够满足口线的需求以及SPI中断的要求。 (4) 片内存储器包括60KB的Flash和2KB的RAM,不需要外扩存储器,就可以满足对SD卡的访问。 (5) 3.3V的工作电压,与SD卡工作电压兼容。 (6) 时钟系统更加完善,可以使用内部时钟,也可以使用外部时钟,通过编程可以切换。 (7) 可实现通过JTAG接口的在线系统调试,方便系统的开发。
|