基于μC/OS操作系统的TF卡存储系统

2015-10-19 00:33蔡文郁温端强杭州电子科技大学电子信息学院浙江杭州310018
网络安全与数据管理 2015年6期
关键词:框图存储系统阻值

方 勋,蔡文郁,张 明,温端强(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

基于μC/OS操作系统的TF卡存储系统

方勋,蔡文郁,张明,温端强
(杭州电子科技大学 电子信息学院,浙江 杭州 310018)

针对Cortex-M3内核的STM32处理器平台,成功移植μC/OS操作系统,并引入FatFs开源软件,构建了FAT32通用文件系统。以温度采集与记录系统为实例,通过对μC/OS操作系统、FAT文件系统、TF卡等相关技术的分析,实现了面向TF卡存储媒介的大容量存储系统,将实时温度按时间关系存储至TF卡。

μC/OS-II;TF卡;FatFs文件系统模块

0 引言

随着嵌入式微处理器功能的不断增强,嵌入式系统广泛应用于音频、视频、故障记录、数据记录等大批量数据存储的场合,传统的由单片机构成的系统简单的对存储媒介按地址、按字节的读/写已然不能满足人们的实际需求。基于RTOS的存储系统在宕机、断电等异常发生时,可以保证数据的完整性以及能够快速地恢复正常工作。为了与现行PC平台共享数据,嵌入式系统迫切需要采用通用文件系统来实现大批量数据的管理[1]。因此,本文以基于μC/OS操作系统的TF卡存储系统的设计为研究对象,具有很好的实际意义。

本文基于μC/OS操作系统平台,设计并实现了以PT100铂电阻为温度传感器、以 STM32F107VCT6微处理器为核心的硬件平台,实现环境温度采集和实时时钟功能,并在PC上显示实时温度以及将温度数据按时间关系存储至TF卡文件中。系统实现框图如图1所示。

图1 系统实现框图

1 温度传感器

本文采用温度传感器 PT100测温。PT100是铂热电阻,当 PT100在 0℃时阻值为 100Ω,它的阻值会随着温度的增加呈规律性的变化。在-50℃~+600℃范围内,PT100具有其他任何温度传感器无法比拟的优势。PT100驱动电路如图2所示。

图2 PT100电桥臂驱动电路

在0≤t<65℃时,PT100铂热电阻阻值与输出电压V的关系为V=k×R+b。在第一次使用PT100时,需要校准PT100。校准过程如下:

(1)在PT100插件处插上100Ω电阻,获取AD值记为Vm。

(2)在PT100插件处插上125Ω电阻,获取AD值记为Vn。

(3)根据数据(100,Vm)和(125,Vn)求取k、b系数。

(4)软件实现将k、b系数值存储至EEPROM中。

在使用PT100测试温度时,根据转换的AD电压值与k、b系数获取PT100阻值R。然后利用式(1)求取温度值:

T=sqrt(4×Pt_B×(R/Pt_R0)+Pt_A×Pt_A-4×Pt_B)-Pt_A)/(2×Pt_B)(1)其中,Pt_A=0.003 908 3,Pt_B=-0.000 000 577 5,Pt_R0= 100,单位为℃。

2 μC/OS-II操作系统

μC/OS-II是以任务为核心的实时操作系统,μC/OS-II V2.52可以管理 64个任务,任务管理包括:创建任务、挂起任务、删除任务、唤醒任务、改变任务优先级和获取任务状态。每个任务都有唯一的优先级,优先级号越低,任务的优先级越高,任务越重要。在任一给定的时刻,任务的状态已知,且为以下5种状态中的一种,各任务状态切换如图3所示。

(1)睡眠状态:任务驻留在程序空间中,还没有交给μC/OS操作系统内核管理。

(2)就绪状态:任务一旦建立,就处于就绪状态,准备运行。若新建的任务优先级比正运行的任务优先级高,则内核提供任务切换服务,新任务运行。

(3)运行状态:已经建立的、就绪状态中优先级别最高的任务进入运行状态。任何时刻只能有一个任务处于运行状态。

(4)等待状态:正在运行的任务通过调用OSTimeDly()和OSTimeDlyHMSM()函数实现延时,等待延迟时间到;运行中的任务可能需要等待某一事件的发生,从而进入等待状态。

(5)中断服务状态:运行中的任务被中断,从而进入中断服务状态[2]。

图3 μC/OS-II任务状态切换图

有时,任务或中断与任务之间需要传递信息,这种信息传递称为任务间的通信。μC/OS-II支持 3种通信方式:信号量、消息邮箱、消息队列,它们统称为事件。每个事件由独立的事件控制块 ECB控制,ECB定义了事件类型,包含了当前正在等待事件发生的任务号等信息。μC/OS-II还具有时间管理与内存管理等功能。

3 TF卡与FatFs文件系统

当嵌入式产品需要扩展系统容量用来存储数据时,目前常用的有 U盘、Flash芯片、TF卡等,其中最适合单片机系统的莫过于TF卡了,它不仅支持最大容量32 GB,还支持 SPI接口,且能在 TF卡上实现文件系统[3]。

FatFs Module是一种完全免费开源的 FAT文件系统模块,专门为小型嵌入式系统设计。FatFs的编写遵循ANSIC,并且完全与磁盘I/O层分开,经简单的修改便可移植到多种嵌入式处理器上[4]。FatFs系统框图如图 4所示。

图4 FatFs系统框图

FatFs具有清晰的层次结构,应用层提供规范的API接口函数,用户可直接调用这些函数实现读文件(f_read)、写文件(f_write)、打开文件(f_open)和一些文件夹操作等,所以即使不理解FatFs Module的内部结构以及复杂的FatFs协议,用户也可以通过这些API完成对文件的所有操作。

FatFs Module层为中间层,为 FatFs核心内容,主要实现了FAT协议。在移植过程中,不需要修改此部分内容。

底层是应用层与磁盘介质的接口,在移植过程中需要修改此部分,包括存储媒介读写接口I/O驱动以及文件操作的时间RTC等。最少只需要编写3个底层驱动函数:

(1)文件系统初始化函数

DSTATUS disk_initialize(BYTEdrv)

(2)文件系统读驱动

DRESULT disk_read(BYTE drv,BYTE*buff,DWORD sector,BYTE count)

(3)文件系统写驱动

DRESULTdisk_write(BYTEdrv,const BYTE*buff,DWORD sector,BYTE count)

用户根据具体的硬件平台填充相关函数,即可完成移植。

4 调试与结果

将 SD卡中 2014-10-28日 15:0:0~15:10:0的数据绘制成折线图,如图5所示。

5 结论

本文基于μC/OS-II操作系统平台设计并实现了以PT100铂电阻为温度传感器、以 STM32F107VCT6微处理器为核心的硬件平台,实现了环境温度采集和实时时钟功能,并在PC上显示实时温度以及将温度数据按时间关系存储至TF卡文件中[5]。

Design of TF card storage system based onμC/OS operating system

F a n g X u n,Ca i We n yu,Z h a n g M i n g,W e n Du a n q i a n g
(School of Electronics&Information,Hangzhou Dianzi University,Hangzhou 310018,China)

The thesis aims at transplantingμC/OS operating system on STM32 processor platform that in Cortex-M3 core,bringing in FatFs which is open source software,and builing FAT32 universal file system.The article applys temperature acquisition and records systemfor instance,and through analysingμC/OS operating system,FATfile systemand TFcard technology,it achieves high-capacity storage system in TF card storage media and saves the real-time temperature in TF card by time.

μC/OS-II;TF card;FatFs module

TP316.8,TP333

A

1674-7720(2015)06-0079-02

猜你喜欢
框图存储系统阻值
四线制阻值检测电路实验研究
分布式存储系统在企业档案管理中的应用
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
励磁线圈对插入式电磁流量计的影响
天河超算存储系统在美创佳绩
低电阻碳膜板制作及其阻值的优化
对一道电学实验题的思考
电路图2017年凯迪拉克XT5
算法框图的补全
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统