随着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总线方式。
3 FAT16文件系统的实现
单片机对SD卡底层的读写,按照FAT16的格式对SD卡上数据进行操作,就可在SD卡上创建文件、读写文件和删除文件,从而实现文件的管理。
为了程序的可移植性和易用性,将整个文件系统分为3层,第1层是SD卡驱动层,第2层是FAT16文件系统层,第3层是应用层,提供给用户的接口函数。
SD卡驱动层完成SD卡控制器中相应寄存器的设置和向SD卡发送命令,实现SD卡初始化、读、写等操作,目的是为FAT16文件系统层提供相应的功能函数,屏蔽直接对硬件的具体操作。
FAT16文件系统层向应用层提供对文件和目录进行操作的API接口函数,使写入SD卡的数据能够在被装有Windows操作系统的上位机中得到正确访问。
应用层直接使用文件系统层的接口函数完成对数据的操作,而不需要考虑使用函数的细节问题以及底层硬件的相关问题。
FAT16文件系统向应用层提供的接口函数有:CreateFile(),创建文件;OpenFile(),打开文件;WriteFile(),写文件;ReadFile(),读文件;DelFile(),删除文件等。其中创建、读写、删除文件是应用程序使用的主要函数接口,下面对其作详细介绍。
一周热门 更多>