刘海蓉
( 黄冈职业技术学院,湖北 黄冈 438002 )
科技与应用
构建基于竞赛平台的实验室
——以单片机模块程序开发为例
刘海蓉
( 黄冈职业技术学院,湖北 黄冈438002 )
摘要:设计了一种应用于高校室内游泳池的温度管理的TF卡存储方案。方案中采用STC12LE5A60S2作为主控制器,并与8051单片机完全兼容。方案中采用了NTFS文件系统,并将泳池温度数据存储在TF卡中。论述了TF卡与STC12LE5A60S2芯片SPI总线通信接口原理,介绍了配套的参数设置、软件和硬件设计, 数据的TF卡读写,完成了室内泳池测温仪只能显示实时温度不能存储历史温度数据的相关问题。
关键词:单片机; TF卡;SPI总线; NTFS文件系统
概要
控制与测量水温是室内泳池的重要技术环节。有效保持水温对室内泳池性能有直接影响,温度制度就是温度与时间的关系表示。在控制泳池水温的过程中,直接影响室内泳池的水温质量的因素包括升温速度、保温时间及冷却速度。解决室内泳池温度管理制度的重要硬件设施就是新型测温仪。要实现优质的室内泳池的水温调节与管理,必须全程实现室内泳池温度的监测与数据记录,从而为室内泳池的温度控制和规范管理提供严格的科学依据。长期以来,在泳池的测温管理过程当中,均使用了小型化的测温仪完成常规的温度显示工作,无法实现室内泳池的历史温度数据的查询和分析管理,温度监控管理均采用落后的手工操作方法,纸质记录温度存档。室内泳池开放周期长,有些高档场所实行24小时服务,与之相适应的温度监测和管理时间延长,全天记录泳池温度的变化常态化。这就导致了温度采集信息量直线上升,需要改良当前的室内泳池温度管理设备,设计出经济实用的测温仪,使之符合现实的要求和市场的需要。由此,设计了一种基于TF卡和NTFS文件系统的新型室内泳池温度管理方案来实现高校室内泳池的科学管理。
1 硬件电路设计
1.1 测温仪设计要求
(1) 室内泳池温度实时存储,存储数据与TF卡高度同步,温度存储的时间间隔保持在30分钟,全部数据量保持在1个月左右。
(2) 文件系统采用NTFS的方式,记录的温度数据自动存储在TF卡的根目录下,TF卡中数据可以在PC机上随时调用和查看。
(3) 测温范围控制在0~50℃,误差控制为±1℃。
(4) 四位七段数码显示水温是室内泳池水温数字化管理的方式,数字精确到个位数。
1.2 系统组成
根据泳池的实际情况,温度仪的设计要求包括若干核心要素,采用STC12LE5A60S2作为主控制器是其中重要的关键点[1],它必须与8051单片机完全兼容。另外一个关键点就是温度仪必须使用14位的模数转换器件MAX31855 ,通过此转换器来实现数据的日常采集。所有的泳池温度数据都采用NTFS文件系统实现TF卡的存储[3],并使用数码管实时显示泳池温度,具体的系统组成如图1所示。
图1 系统组成图
1.3TF卡接口与测温单片机
图2是TF卡的引脚排列和结构示意图,其中TF卡的工作电压保持在2.7~3.6 V的范围内。TF卡当采用TF模式时,TF卡完成标准的数据读写,在此模式条件下,实行TF卡的控制接口单片机。在一些特定条件下,在SPI模式TF卡进行配置功能,通过借助特定的TF卡控制单元,实施主控制器与TF卡的通信工作。TF卡各引脚的功能如表1所示。
表1 SPI模式下TF卡引脚定义
图2 TF卡结构示意图
图3 STC单片机与TF卡的连接电路
单时钟/机器周期(1T)是单片机的典型特点,它有明显的抗干扰性的特点,此外还有低功耗的优点,STC12LE5A60S2单片机指令代码与8051单片机完全兼容,并提高速度6~12倍。此单片机拥有高速的串行通信SPI接口,控制电压工作范围为2.2~3.6 V,另外还集成1280字节的RAM和60K的存储空间,完全可满足系统的功能需求。方案当中采用了TF卡的SPI通信方式,其中详细的TF卡与单片机的硬件连接电路如图3所示。
1.4整机电路
整个电路的控制中心就是STC单片机,DS3231具有集成的晶体和温补晶振,实现高精度控制,其中精度值为±5ppm(±0.432秒/天),因此,DS3231实现了高精度I2C实时时钟。单片机在完成计时的过程当中,可实现电池实时备份,保证连续计时顺利进行。热电偶至数字输出转换器采用MAX31855,元件可实现冷端补偿修正和检测,此元件还内置了14位模/数转换器,可实现温度电压值的科学转换,通常转换成14位数字信号,通过热电偶的方式实现电压值的转换。室内泳池测量精度控制在±6℃的范围内。
室内泳池温度值获取后有两路去向,其中一路关键数据值实现实时显示,它借助单片机的P0口输出到数码管来完成此项功能;另一路数据至TF卡中,也就是通过P1口的低四位数据存储至TF当中。在设计当中,存在三个调整按键,进入对时状态只需短按“功能”键,可以校对时间。若要显示数码管后四位,则需长按“功能”键,同时泳池的温度也以NTFS文件形式存储在TF卡中。正常情况下,设备通电后不做任何操作,数码管当中只会显示当前时、分、秒数据。
详细的室内泳池测温记录仪电路如图4所示。
图4 室内泳池测温记录仪电路
2 软件设计
2.1 NTFS文件系统设计
通过采集设备完成数据搜集,搜集后的数据需要转化为数字信息并为计算机软件识别,为实现TF 卡文件系统的配套一致,需要存储在 TF 卡中的数据必须是二进制数据。考虑数据的安全性,设计选用了 NTFS 作为数据存储方式,并将数据最终以TF 卡的方式完成保存。由于室内泳池开放时间长,所需要的数据存储空间巨大,NTFS 最大支持单个文件 64 GB 容量,为了高效保持数据的存储,所以选用NTFS的文件系统,它远远大于Fat32文件的4GB容量,因此,NTFS格式可以充分满足室内泳池测温记录仪的实际要求。
NTFS是微软公司 Windows NT 的操作环境,它的目标就是保持数据的安全、可靠性,通过事件跟踪热定位的容错特征来实现相应的功能,它可极大地消除 FAT 和 HPFS 文件系统中的各类限制。 NTFS 可支持大硬盘的数据存储。NTFS文件系统可以实现微处理器的嵌入,它占用微处理器的RAM的字节数不能超出单片机的承载数量。由于NTFS文件系统的代码开放,使其具有较强的代码移植功能,有利于系统的二次开发。
2.2 NTFS移植与TF卡驱动
在表2文件系统结构当中,NTFS文件系统的结构及函数功能主要从三个方面进行分解说明,也就是文件、说明、功能。其中文件项包括mytype.h、deviceio.c、config.h等九个文件。功能分类主要包括主体、移植、相关、主体、文件等其他内容, NTFS文件系统的详细说明如表2所示。
表2 NTFS文件系统的结构及函数功能
采用C语言编写功能模块,其中TF卡驱动程序是用来实现TF卡驱动功能,具体的TF卡驱动程序功能函数如表3所示。
表3 TF卡驱动程序的函数及功能
Ntfs在实施数据移植的过程中, mytype.h程序模块保持不变,与之相适应的数据类型定义也没有发生变化;其中config.h程序模块实现ntfs 的函数的调整,可实施数据的删除,可完成各类文件的常规创建等功能 ;deviceio.c程序模块改动见表4。具体的程序段如下所示:
#definentfs_CRE_D //创建新目录
#definentfs_DEL_D //删除旧目录
#definentfs_MK_FS //格式化文件系统
#definentfs_FLU_FS //文件系统刷新处理
#definentfs_CRE_FILE /文件建立
#definentfs_WRITE DATA //数据新增写入
#definentfs_DEL_FILE /文件/删除
#definentfs_READA //读取数据文件程序操作
#definentfs_READAX //读取+重定数据文件的程序操作
#define USE_LFN // Ntfs的长文件名相关功能打开操作
#define USE_OEM_CH //判断长名当的中文字符
//#definentfs_DUMP_DA //截断数据文件的程序操作
//#definentfs_SEEK //定位数据文件的程序操作
#define MAX_LFN_LEN (25) //长名长度的限定程序操作
#definentfs_OP _FI //已往文件的程序开启
#definentfs_CLO_FI //已开文件结束退出
做好以上移植相关设置和TF卡驱动编写。主函数程序流程图5。
图5 主程序流程图
修改位置原函数中语句TF卡驱动函数与NTFS接口接驳后语句第5行#include"../device0.h"#include"../TFx.h"第32行res=Device0_Init();res=TF_Ready_Go();第67行while(Device0_Read_Sector(addr,buffer));while(TF_Read_Sector(addr,buffer));第176行while(Device0_Write_Sector(addr+i,buffer));while(TF_Write_Sector(addr+i,buffer));第194行while(Device0_Write_nSector(nsec,addr,buffer));while(TF_Write_nSector(nsec,addr,buffer));
结束语
室内泳池的温度数据采集的存储方案使用了NTFS文件系统的数据存储方式,数据存储的载体借助于TF卡,所有数据可以迁移显示,可方便调用和查看。泳池温度数据采集和管理完全实现了数字化,全部使用TF卡自动记录和保存,极大地提高了工作效率,此外单片机有较强的运行效率、海量数据存储等优点,十分有利于泳池管理,具有广阔的推广和应用前景。
参考文献:
[1]林倩,严桂林. 基于STC12C5A60S2单片机的TF卡读写[J]. 电子元器件应用,2010(04):25-31.
[2]张弛,张成俊,吴晓光. 单片机访问TF卡精简方法的设计与实现[J]. 机电工程,2011(04):71-73.
[3]方洁,陈伟. 基于DS3231的高精度时钟接口设计[J].电子设计工程,2010(02) :42-43.
Construction of the Laboratory Based on Competition Platform:Taking MCU Module Program Development as an Example
LIU Hairong
( Huanggang Polytechnic College,Huanggang,Hubei 438002,China )
Abstract:A new kind of TF Card storage scheme is designed to collect the temperature data of a swimming pool. We choose as the main control STC12LE5A60S2, a high-performance single-chip microcomputer that is completely compatible to 8051 single-chip microcomputer. The temperature data of a swimming pool can be stored in TF Card by means of NTFS File System. We introduce the principles of SPI trunk communication interface of TF Card and STC12LE5A60S2 chip, and we discuss the relevant set, hardware connection and software design, through which we are able to read and write on TF Card and simultaneously we solve the problem that the thermoscope of swimming pool can show the actual temperature but cannot store the historic temperature data.
Key words:single-chip microcomputer; TF Card; SPI bus; NTFS File System
中图分类号:TP274.2;TN929.5
文献标识码:A
文章编号:1671-4385(2016)01-0119-05
作者简介:刘海蓉(1977-),女,湖北黄冈人,讲师,主要从事计算机应用研究。
收稿日期:2015-12-20