摘要:随着嵌入式技术的发展,越来越多的系统需要具备大容量数据存储、传输和分析的功能,对于数据灵活性和通用性的要求也随之提高。本文基于MC9S12UF32设计了一款使用FAT文件系统对数据进行管理的数据存储模块。详细介绍了该模块的软、硬件构架,并给出了开放源代码的文件系统FatFs软件包的移植与使用方法。
关键词:MC9S12UF32;FatFS;FAT文件系统
引言
随着信息技术的发展,嵌入式系统简单地对存储介质按地址、字节进行读写的方式已经不能满足实际应用的需求,利用文件系统对存储介质进行管理成为嵌入式系统的一个发展方向。虽然目前存在很多版本的文件系统,但windows的广泛应用使得FAT文件系统仍然是最通用的文件系统之一。本文中基于MC9S12UF32单片机,结合开源文件系统FatFS,设计实现了使用FAT文件系统的大容量数据存储模块。
1 系统结构
数据存储系统框架如图1所示。该数据存储模块以Freescale公司的MC9S12UF32为核心,串行通信接口SCI接收到的数据可以直接通过单片机以FAT文件的形式存储在micro SD卡中。用户程序可以通过编程控制单片机,直接对micro SD卡中的任意文件进行读写,实现存储数据。由于实现了FAT文件系统,用户也可以通过单片机内置的USB接口将本数据模块识别为U盘,用PC机进行读写操作。此外,模块中的SD卡也可以取出,使用标准的读卡器可在任何PC机上读出。
2 硬件结构及底层函数的编写
本文所介绍的数据存储插件由MC9S12UF32、DSl2887实时钟模块、micro SD卡、串行通信接口以及USB接口5部分组成。实时时钟,可以为数据存储模块的文件系统提供正确的时间戳信息,在精简的系统设计中,这个部分则可以省略。
2.1 MC9S12UF32单片机
Freescale公司生产的这款16位单片机具有3.5 KBRAM和32 KB Flash EEPROM。它最大的特点在于拥有USB2.O接口、ATA5接口以及SD/MMC、SmartMedia、MemoryStick等多种存储卡接口。本文所介绍的数据存储插件采用MC9S12UF32单片机内部集成的SD主控制器模块(SDHC)实现micro SD卡的底层读写。
(1)SDHC模块
SDl.O规范协议中定义了对SD卡的两种访问模式:SD模式和SPI模式。使用SDHC(Secured Digital cardHost Controller)模块对SD卡读写采用了SD模式。该模块将SD总线转换为MC9S12UF32内部的IPBus总线或者IQUE总线,使用者只需要对SDHC模块相关的寄存器进行配置,就可以实现向SD卡发送各种命令和读写数据的功能。SD卡与SDHC的连接如图2所示。