劉海蓉
( 黃岡職業(yè)技術(shù)學(xué)院,湖北 黃岡 438002 )
?
科技與應(yīng)用
構(gòu)建基于競賽平臺(tái)的實(shí)驗(yàn)室
——以單片機(jī)模塊程序開發(fā)為例
劉海蓉
( 黃岡職業(yè)技術(shù)學(xué)院,湖北 黃岡438002 )
摘要:設(shè)計(jì)了一種應(yīng)用于高校室內(nèi)游泳池的溫度管理的TF卡存儲(chǔ)方案。方案中采用STC12LE5A60S2作為主控制器,并與8051單片機(jī)完全兼容。方案中采用了NTFS文件系統(tǒng),并將泳池溫度數(shù)據(jù)存儲(chǔ)在TF卡中。論述了TF卡與STC12LE5A60S2芯片SPI總線通信接口原理,介紹了配套的參數(shù)設(shè)置、軟件和硬件設(shè)計(jì), 數(shù)據(jù)的TF卡讀寫,完成了室內(nèi)泳池測溫儀只能顯示實(shí)時(shí)溫度不能存儲(chǔ)歷史溫度數(shù)據(jù)的相關(guān)問題。
關(guān)鍵詞:單片機(jī); TF卡;SPI總線; NTFS文件系統(tǒng)
概要
控制與測量水溫是室內(nèi)泳池的重要技術(shù)環(huán)節(jié)。有效保持水溫對室內(nèi)泳池性能有直接影響,溫度制度就是溫度與時(shí)間的關(guān)系表示。在控制泳池水溫的過程中,直接影響室內(nèi)泳池的水溫質(zhì)量的因素包括升溫速度、保溫時(shí)間及冷卻速度。解決室內(nèi)泳池溫度管理制度的重要硬件設(shè)施就是新型測溫儀。要實(shí)現(xiàn)優(yōu)質(zhì)的室內(nèi)泳池的水溫調(diào)節(jié)與管理,必須全程實(shí)現(xiàn)室內(nèi)泳池溫度的監(jiān)測與數(shù)據(jù)記錄,從而為室內(nèi)泳池的溫度控制和規(guī)范管理提供嚴(yán)格的科學(xué)依據(jù)。長期以來,在泳池的測溫管理過程當(dāng)中,均使用了小型化的測溫儀完成常規(guī)的溫度顯示工作,無法實(shí)現(xiàn)室內(nèi)泳池的歷史溫度數(shù)據(jù)的查詢和分析管理,溫度監(jiān)控管理均采用落后的手工操作方法,紙質(zhì)記錄溫度存檔。室內(nèi)泳池開放周期長,有些高檔場所實(shí)行24小時(shí)服務(wù),與之相適應(yīng)的溫度監(jiān)測和管理時(shí)間延長,全天記錄泳池溫度的變化常態(tài)化。這就導(dǎo)致了溫度采集信息量直線上升,需要改良當(dāng)前的室內(nèi)泳池溫度管理設(shè)備,設(shè)計(jì)出經(jīng)濟(jì)實(shí)用的測溫儀,使之符合現(xiàn)實(shí)的要求和市場的需要。由此,設(shè)計(jì)了一種基于TF卡和NTFS文件系統(tǒng)的新型室內(nèi)泳池溫度管理方案來實(shí)現(xiàn)高校室內(nèi)泳池的科學(xué)管理。
1 硬件電路設(shè)計(jì)
1.1 測溫儀設(shè)計(jì)要求
(1) 室內(nèi)泳池溫度實(shí)時(shí)存儲(chǔ),存儲(chǔ)數(shù)據(jù)與TF卡高度同步,溫度存儲(chǔ)的時(shí)間間隔保持在30分鐘,全部數(shù)據(jù)量保持在1個(gè)月左右。
(2) 文件系統(tǒng)采用NTFS的方式,記錄的溫度數(shù)據(jù)自動(dòng)存儲(chǔ)在TF卡的根目錄下,TF卡中數(shù)據(jù)可以在PC機(jī)上隨時(shí)調(diào)用和查看。
(3) 測溫范圍控制在0~50℃,誤差控制為±1℃。
(4) 四位七段數(shù)碼顯示水溫是室內(nèi)泳池水溫?cái)?shù)字化管理的方式,數(shù)字精確到個(gè)位數(shù)。
1.2 系統(tǒng)組成
根據(jù)泳池的實(shí)際情況,溫度儀的設(shè)計(jì)要求包括若干核心要素,采用STC12LE5A60S2作為主控制器是其中重要的關(guān)鍵點(diǎn)[1],它必須與8051單片機(jī)完全兼容。另外一個(gè)關(guān)鍵點(diǎn)就是溫度儀必須使用14位的模數(shù)轉(zhuǎn)換器件MAX31855 ,通過此轉(zhuǎn)換器來實(shí)現(xiàn)數(shù)據(jù)的日常采集。所有的泳池溫度數(shù)據(jù)都采用NTFS文件系統(tǒng)實(shí)現(xiàn)TF卡的存儲(chǔ)[3],并使用數(shù)碼管實(shí)時(shí)顯示泳池溫度,具體的系統(tǒng)組成如圖1所示。
圖1 系統(tǒng)組成圖
1.3TF卡接口與測溫單片機(jī)
圖2是TF卡的引腳排列和結(jié)構(gòu)示意圖,其中TF卡的工作電壓保持在2.7~3.6 V的范圍內(nèi)。TF卡當(dāng)采用TF模式時(shí),TF卡完成標(biāo)準(zhǔn)的數(shù)據(jù)讀寫,在此模式條件下,實(shí)行TF卡的控制接口單片機(jī)。在一些特定條件下,在SPI模式TF卡進(jìn)行配置功能,通過借助特定的TF卡控制單元,實(shí)施主控制器與TF卡的通信工作。TF卡各引腳的功能如表1所示。
表1 SPI模式下TF卡引腳定義
圖2 TF卡結(jié)構(gòu)示意圖
圖3 STC單片機(jī)與TF卡的連接電路
單時(shí)鐘/機(jī)器周期(1T)是單片機(jī)的典型特點(diǎn),它有明顯的抗干擾性的特點(diǎn),此外還有低功耗的優(yōu)點(diǎn),STC12LE5A60S2單片機(jī)指令代碼與8051單片機(jī)完全兼容,并提高速度6~12倍。此單片機(jī)擁有高速的串行通信SPI接口,控制電壓工作范圍為2.2~3.6 V,另外還集成1280字節(jié)的RAM和60K的存儲(chǔ)空間,完全可滿足系統(tǒng)的功能需求。方案當(dāng)中采用了TF卡的SPI通信方式,其中詳細(xì)的TF卡與單片機(jī)的硬件連接電路如圖3所示。
1.4整機(jī)電路
整個(gè)電路的控制中心就是STC單片機(jī),DS3231具有集成的晶體和溫補(bǔ)晶振,實(shí)現(xiàn)高精度控制,其中精度值為±5ppm(±0.432秒/天),因此,DS3231實(shí)現(xiàn)了高精度I2C實(shí)時(shí)時(shí)鐘。單片機(jī)在完成計(jì)時(shí)的過程當(dāng)中,可實(shí)現(xiàn)電池實(shí)時(shí)備份,保證連續(xù)計(jì)時(shí)順利進(jìn)行。熱電偶至數(shù)字輸出轉(zhuǎn)換器采用MAX31855,元件可實(shí)現(xiàn)冷端補(bǔ)償修正和檢測,此元件還內(nèi)置了14位模/數(shù)轉(zhuǎn)換器,可實(shí)現(xiàn)溫度電壓值的科學(xué)轉(zhuǎn)換,通常轉(zhuǎn)換成14位數(shù)字信號(hào),通過熱電偶的方式實(shí)現(xiàn)電壓值的轉(zhuǎn)換。室內(nèi)泳池測量精度控制在±6℃的范圍內(nèi)。
室內(nèi)泳池溫度值獲取后有兩路去向,其中一路關(guān)鍵數(shù)據(jù)值實(shí)現(xiàn)實(shí)時(shí)顯示,它借助單片機(jī)的P0口輸出到數(shù)碼管來完成此項(xiàng)功能;另一路數(shù)據(jù)至TF卡中,也就是通過P1口的低四位數(shù)據(jù)存儲(chǔ)至TF當(dāng)中。在設(shè)計(jì)當(dāng)中,存在三個(gè)調(diào)整按鍵,進(jìn)入對時(shí)狀態(tài)只需短按“功能”鍵,可以校對時(shí)間。若要顯示數(shù)碼管后四位,則需長按“功能”鍵,同時(shí)泳池的溫度也以NTFS文件形式存儲(chǔ)在TF卡中。正常情況下,設(shè)備通電后不做任何操作,數(shù)碼管當(dāng)中只會(huì)顯示當(dāng)前時(shí)、分、秒數(shù)據(jù)。
詳細(xì)的室內(nèi)泳池測溫記錄儀電路如圖4所示。
圖4 室內(nèi)泳池測溫記錄儀電路
2 軟件設(shè)計(jì)
2.1 NTFS文件系統(tǒng)設(shè)計(jì)
通過采集設(shè)備完成數(shù)據(jù)搜集,搜集后的數(shù)據(jù)需要轉(zhuǎn)化為數(shù)字信息并為計(jì)算機(jī)軟件識(shí)別,為實(shí)現(xiàn)TF 卡文件系統(tǒng)的配套一致,需要存儲(chǔ)在 TF 卡中的數(shù)據(jù)必須是二進(jìn)制數(shù)據(jù)??紤]數(shù)據(jù)的安全性,設(shè)計(jì)選用了 NTFS 作為數(shù)據(jù)存儲(chǔ)方式,并將數(shù)據(jù)最終以TF 卡的方式完成保存。由于室內(nèi)泳池開放時(shí)間長,所需要的數(shù)據(jù)存儲(chǔ)空間巨大,NTFS 最大支持單個(gè)文件 64 GB 容量,為了高效保持?jǐn)?shù)據(jù)的存儲(chǔ),所以選用NTFS的文件系統(tǒng),它遠(yuǎn)遠(yuǎn)大于Fat32文件的4GB容量,因此,NTFS格式可以充分滿足室內(nèi)泳池測溫記錄儀的實(shí)際要求。
NTFS是微軟公司 Windows NT 的操作環(huán)境,它的目標(biāo)就是保持?jǐn)?shù)據(jù)的安全、可靠性,通過事件跟蹤熱定位的容錯(cuò)特征來實(shí)現(xiàn)相應(yīng)的功能,它可極大地消除 FAT 和 HPFS 文件系統(tǒng)中的各類限制。 NTFS 可支持大硬盤的數(shù)據(jù)存儲(chǔ)。NTFS文件系統(tǒng)可以實(shí)現(xiàn)微處理器的嵌入,它占用微處理器的RAM的字節(jié)數(shù)不能超出單片機(jī)的承載數(shù)量。由于NTFS文件系統(tǒng)的代碼開放,使其具有較強(qiáng)的代碼移植功能,有利于系統(tǒng)的二次開發(fā)。
2.2 NTFS移植與TF卡驅(qū)動(dòng)
在表2文件系統(tǒng)結(jié)構(gòu)當(dāng)中,NTFS文件系統(tǒng)的結(jié)構(gòu)及函數(shù)功能主要從三個(gè)方面進(jìn)行分解說明,也就是文件、說明、功能。其中文件項(xiàng)包括mytype.h、deviceio.c、config.h等九個(gè)文件。功能分類主要包括主體、移植、相關(guān)、主體、文件等其他內(nèi)容, NTFS文件系統(tǒng)的詳細(xì)說明如表2所示。
表2 NTFS文件系統(tǒng)的結(jié)構(gòu)及函數(shù)功能
采用C語言編寫功能模塊,其中TF卡驅(qū)動(dòng)程序是用來實(shí)現(xiàn)TF卡驅(qū)動(dòng)功能,具體的TF卡驅(qū)動(dòng)程序功能函數(shù)如表3所示。
表3 TF卡驅(qū)動(dòng)程序的函數(shù)及功能
Ntfs在實(shí)施數(shù)據(jù)移植的過程中, mytype.h程序模塊保持不變,與之相適應(yīng)的數(shù)據(jù)類型定義也沒有發(fā)生變化;其中config.h程序模塊實(shí)現(xiàn)ntfs 的函數(shù)的調(diào)整,可實(shí)施數(shù)據(jù)的刪除,可完成各類文件的常規(guī)創(chuàng)建等功能 ;deviceio.c程序模塊改動(dòng)見表4。具體的程序段如下所示:
#definentfs_CRE_D //創(chuàng)建新目錄
#definentfs_DEL_D //刪除舊目錄
#definentfs_MK_FS //格式化文件系統(tǒng)
#definentfs_FLU_FS //文件系統(tǒng)刷新處理
#definentfs_CRE_FILE /文件建立
#definentfs_WRITE DATA //數(shù)據(jù)新增寫入
#definentfs_DEL_FILE /文件/刪除
#definentfs_READA //讀取數(shù)據(jù)文件程序操作
#definentfs_READAX //讀取+重定數(shù)據(jù)文件的程序操作
#define USE_LFN // Ntfs的長文件名相關(guān)功能打開操作
#define USE_OEM_CH //判斷長名當(dāng)?shù)闹形淖址?/p>
//#definentfs_DUMP_DA //截?cái)鄶?shù)據(jù)文件的程序操作
//#definentfs_SEEK //定位數(shù)據(jù)文件的程序操作
#define MAX_LFN_LEN (25) //長名長度的限定程序操作
#definentfs_OP _FI //已往文件的程序開啟
#definentfs_CLO_FI //已開文件結(jié)束退出
做好以上移植相關(guān)設(shè)置和TF卡驅(qū)動(dòng)編寫。主函數(shù)程序流程圖5。
圖5 主程序流程圖
修改位置原函數(shù)中語句TF卡驅(qū)動(dòng)函數(shù)與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));
結(jié)束語
室內(nèi)泳池的溫度數(shù)據(jù)采集的存儲(chǔ)方案使用了NTFS文件系統(tǒng)的數(shù)據(jù)存儲(chǔ)方式,數(shù)據(jù)存儲(chǔ)的載體借助于TF卡,所有數(shù)據(jù)可以遷移顯示,可方便調(diào)用和查看。泳池溫度數(shù)據(jù)采集和管理完全實(shí)現(xiàn)了數(shù)字化,全部使用TF卡自動(dòng)記錄和保存,極大地提高了工作效率,此外單片機(jī)有較強(qiáng)的運(yùn)行效率、海量數(shù)據(jù)存儲(chǔ)等優(yōu)點(diǎn),十分有利于泳池管理,具有廣闊的推廣和應(yīng)用前景。
參考文獻(xiàn):
[1]林倩,嚴(yán)桂林. 基于STC12C5A60S2單片機(jī)的TF卡讀寫[J]. 電子元器件應(yīng)用,2010(04):25-31.
[2]張弛,張成俊,吳曉光. 單片機(jī)訪問TF卡精簡方法的設(shè)計(jì)與實(shí)現(xiàn)[J]. 機(jī)電工程,2011(04):71-73.
[3]方潔,陳偉. 基于DS3231的高精度時(shí)鐘接口設(shè)計(jì)[J].電子設(shè)計(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
中圖分類號(hào):TP274.2;TN929.5
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1671-4385(2016)01-0119-05
作者簡介:劉海蓉(1977-),女,湖北黃岡人,講師,主要從事計(jì)算機(jī)應(yīng)用研究。
收稿日期:2015-12-20