MC9S12UF32的嵌入式文件系统数据存储模块
[10-10 20:38:44] 来源:http://www.88dzw.com 单片机学习 阅读:8489次
文章摘要:摘要:随着嵌入式技术的发展,越来越多的系统需要具备大容量数据存储、传输和分析的功能,对于数据灵活性和通用性的要求也随之提高。本文基于MC9S12UF32设计了一款使用FAT文件系统对数据进行管理的数据存储模块。详细介绍了该模块的软、硬件构架,并给出了开放源代码的文件系统FatFs软件包的移植与使用方法。关键词:MC9S12UF32;FatFS;FAT文件系统引言 随着信息技术的发展,嵌入式系统简单地对存储介质按地址、字节进行读写的方式已经不能满足实际应用的需求,利用文件系统对存储介质进行管理成为嵌入式系统的一个发展方向。虽然目前存在很多版本的文件系统,但windows的广泛应用使得FAT
MC9S12UF32的嵌入式文件系统数据存储模块,标签:单片机开发,单片机原理,http://www.88dzw.com
摘要:随着嵌入式技术的发展,越来越多的系统需要具备大容量数据存储、传输和分析的功能,对于数据灵活性和通用性的要求也随之提高。本文基于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所示。
具体移植过程如下:
(1)存储媒介初始化函数
DSTATUS disk_initialize(BYTE drv)
由于采用的存储媒介是SD卡,所以该函数的实际功能是对SD卡进行初始化。drv是存储介质号码,由于Tiny-FatFS只支持一个存储介质,所以此处drv始终取O值。执行无误,则返回值=O;执行中出现错误,则返回非O值。
(2)状态检测函数
DSTATUS disk_status(BYTE drv)
该函数用于检测是否支持当前的存储介质。此处的drv仍然恒为O。对Tiny-FatFS而言,只要drv为O,就认为支持当前介质,函数直接返回O值即可。
(3)读扇区函数
DRESULT disk read(BYTE drv,BYTE*buff,DWORD seetor,BYTE.count)
该函数是在“单片机从SD卡读取一个扇区”的函数基础上编写而成的,其功能是从SD卡读取一个或多个扇区的数据。*buff用于存储已经读取的数据,sector是待读取扇区的起始扇区数,count是需要读取的扇区数。如果执行无误则返回O值,否则返回非O值。
《MC9S12UF32的嵌入式文件系统数据存储模块》相关文章
- › 基于MC9S08AW32和HT1621家电液晶显示系统设计
- › MC9S12UF32的嵌入式文件系统数据存储模块
- › MC9S12NE64型单片机的嵌入式以太网连接
- 在百度中搜索相关文章:MC9S12UF32的嵌入式文件系统数据存储模块
- 在谷歌中搜索相关文章:MC9S12UF32的嵌入式文件系统数据存储模块
- 在soso中搜索相关文章:MC9S12UF32的嵌入式文件系统数据存储模块
- 在搜狗中搜索相关文章:MC9S12UF32的嵌入式文件系统数据存储模块