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