張巖等
摘 要: 廣泛使用MSP430為主控單元的穿戴式健康監(jiān)護設備功能不斷發(fā)展,促使在該平臺下的數(shù)據(jù)實時存儲和功能評測的需求日益增強。在此介紹基于MSP430的FatFs文件系統(tǒng)的移植以及Micro SD卡讀/寫功能的實現(xiàn)方法,提出了Micro SD卡讀/寫功能的評測方案,并測試了不同條件下的讀/寫速率。結(jié)果表明,F(xiàn)atFs文件系統(tǒng)能被靈活地移植到MSP430系統(tǒng)中,并能適應不同內(nèi)存環(huán)境的應用需求,Micro SD卡的讀/寫速率與緩沖區(qū)大小直接相關。
關鍵詞: FatFs; MSP430; Micro SD; 數(shù)據(jù)存儲
中圖分類號: TN911?34; TP274.2 文獻標識碼: A 文章編號: 1004?373X(2015)12?0129?03
0 引 言
近年來,出現(xiàn)了腕表型的血氧監(jiān)測儀、睡眠生理監(jiān)護儀等各式各樣的可穿戴健康監(jiān)護設備[1]。使用者通過這類穿戴式設備可方便有效地對自身日常健康、亞健康狀態(tài)進行監(jiān)護,從而達到預防疾病、治未病的目的。為了便于長時間觀測記錄,對健康狀態(tài)變化趨勢進行定期的分析,需要對日常監(jiān)護數(shù)據(jù)進行長期、快速、低功耗的存儲,這已成為此類醫(yī)療設備的必備功能。以低功耗為主要特點的MSP430微處理器是此類穿戴式設備應用較為廣泛的開發(fā)平臺。由于已有的其他平臺上集成的工具包通常針對大數(shù)據(jù)量,高數(shù)據(jù)存儲率的數(shù)據(jù)存儲[2?3],設計過程中對功耗的考慮較少,往往難以滿足低功耗的要求。因此針對MSP430開發(fā)平臺,對日常監(jiān)護過程中長期的、存儲量相對較小的數(shù)據(jù)存儲,實現(xiàn)功耗與速度的平衡,是目前穿戴式設備開發(fā)過程中亟待解決的問題。
本文以具有超低功耗的MSP430單片機為主控制單元,討論在MSP430控制下如何實現(xiàn)Micro SD卡的讀/寫功能,并提出了在MSP430平臺下Micro SD卡讀/寫功能的測試方案,對不同條件下的讀/寫速率進行了評估,本文結(jié)果為基于MSP430的數(shù)據(jù)存儲方案的設計提供了實際參考。
1 硬件設計
主控芯片選用MSP430系列中MSP430F5438,因其RAM容量達16 KB,具有處理數(shù)據(jù)量較大任務的能力。MSP430的工作電壓為3.3 V與Micro SD卡的工作電壓一致,可以避免使用額外的電壓轉(zhuǎn)換模塊,降低了功耗和成本。由于日常監(jiān)護是長期的、存儲量相對較小的過程,使得單片機更多是處于低功耗運行的狀態(tài),與AVR、STM等單片機相比,MSP430的多時鐘系統(tǒng)使功耗管理更為靈活[4?5]。
數(shù)據(jù)存儲選用2 GB容量的Micro SD卡,Micro SD卡支持SDIO(Secure Digital Input and Output)訪問和SPI(Serial Peripheral Interface)訪問[6],考慮到MSP430
F5438內(nèi)部已集成了SPI端口,故Micro SD卡與單片機的連接配置為SPI模式??ú叟cMSP430F5438的連接如圖1所示。
2 軟件設計
本系統(tǒng)利用雙緩沖區(qū)的設計來保證在將一個緩沖區(qū)的數(shù)據(jù)寫入Micro SD卡的同時順利接收數(shù)據(jù)采集模塊上傳的新數(shù)據(jù),并將新數(shù)據(jù)寫入另一個緩沖區(qū)以等待被寫入Micro SD卡,調(diào)整緩沖區(qū)大小即可改變讀/寫速度。為了保證寫入Micro SD卡與數(shù)據(jù)具有一定的可讀性,需要在Micro SD卡與電腦間建立一座溝通的橋梁,F(xiàn)at(File Allocation Table)文件系統(tǒng)即是這種能方便電腦讀出卡內(nèi)數(shù)據(jù)的數(shù)據(jù)組織方式。因此軟件部分主要包括有FatFs模塊和Micro SD卡操作模塊,并在對Micro SD卡操作前配置好單片機的SPI工作方式。
2.1 FatFs的移植
FatFs是一種已經(jīng)被廣泛使用的、開源的文件系統(tǒng)模塊,通過接口函數(shù)可以被方便地移植到不同的微控制器平臺中[7]。由于本系統(tǒng)只涉及Micro SD卡的讀取和寫入,因此在配置時裁剪掉一些無關函數(shù)以進一步縮小代碼和工作區(qū)所占空間。圖2為讀/寫文件時的一般流程。
2.2 Micro SD卡操作
圖3所示為Micro SD卡初始化過程。Micro SD卡初始化過程主要包括復位、識別2個過程。復位過程包括Micro SD卡上電延時并保持至少74個時鐘周期;拉低卡片選線CS;發(fā)送CMD0使卡進入空閑狀態(tài)。識別過程包括判斷支持的SD協(xié)議版本;區(qū)分SD卡和MMC卡;若是SD卡還需進一步識別標準容量卡(SDSC)或者高容量卡(SDHC);獲取卡工作電壓范圍。由于本系統(tǒng)采用Micro SD卡槽,并且單片機資源有限,因此簡化MMC卡識別和獲取工作電壓范圍的步驟,只識別協(xié)議版本和卡容量。在初始化的最后,將數(shù)據(jù)塊長度設置為512 B。
3 系統(tǒng)測試
在完成以上移植后,利用單片機計數(shù)器計時對移植后的讀/寫速度進行了一系列測試,分別測試了不同緩沖區(qū)大小,F(xiàn)atFs不同配置對讀/寫速度的影響。測試環(huán)境:選用Kingston的2 GB容量Micro SD卡為測試對象;以10 MB大小的文件作測試文件;SPI時鐘設定為12 MHz;IAR v5.5軟件平臺;ITECH的IT6302型穩(wěn)壓電源。圖5所示為測試程序流程圖。
3.1 全功能FatFs配置測試
表1為FatFs全功能配置時讀/寫速度的測試結(jié)果。向卡內(nèi)讀出/寫入10 MB大小數(shù)據(jù)后,從定時器中獲得一次讀/寫用時,并如此重復執(zhí)行50次后,取每次讀/寫平均用時,以及在編譯器map文件中觀察到的程序占用空間大小。
流的差值。
3.2 TINY_FatFs配置測試
TINY模式通常被用在內(nèi)存較小的設備上,以犧牲讀/寫速度和一些API函數(shù)來降低內(nèi)存占用。在ffconf.h中修改配置選項:
#define _FS_TINY 1
開啟TINY模式,并重復3.1中測試步驟,表2為TINY模式下的測試結(jié)果。
從以上2個實驗可知,讀/寫速度的快慢與緩沖區(qū)大小直接相關。表1中出現(xiàn)緩沖區(qū)512 B時速度快于1 024 B,可能是因為Micro SD卡在讀/寫數(shù)據(jù)時是以數(shù)據(jù)塊為單位的,每次讀取兩個數(shù)據(jù)塊內(nèi)容時的執(zhí)行效率并沒有單塊讀取時高。當緩沖區(qū)大于1 024 B后,多塊讀的效率才能真正體現(xiàn)出來。所以,在內(nèi)存較大的設備上,可以選擇較大的緩沖區(qū)以獲得較高的讀/寫速度;而在內(nèi)存較小的設備上,則需考慮緩沖區(qū)對內(nèi)存的影響。從電流消耗方面看,在進行讀/寫操作時的電流消耗差別不大,要進一步降低功耗有必要從縮短讀/寫時間、減少讀/寫次數(shù)兩個方面考慮,從側(cè)面印證了緩存區(qū)越大讀/寫效率越高。
流的差值。
4 結(jié) 語
實現(xiàn)基于MSP430單片機的Micro SD卡存儲功能可以使穿戴式健康監(jiān)測設備以更低的功耗、更小的體積實時記錄更大量的數(shù)據(jù)。讀/寫速度測試結(jié)果表明FatFs文件系統(tǒng)能被靈活地移植到各型號MSP430單片機上,適應不同數(shù)據(jù)量的應用,應當注意的是Micro SD卡的讀/寫速率受到緩沖區(qū)大小的影響,在大數(shù)據(jù)存儲時應選擇較大的緩沖區(qū)以獲得較高的讀/寫速度。讀/寫Micro SD卡本身是能耗較高的執(zhí)行動作,要實現(xiàn)系統(tǒng)低功耗運行還依賴于更高效的程序設計。本文的測試結(jié)果也適用于其他數(shù)據(jù)采集和存儲的應用領域。
參考文獻
[1] 騰曉菲,張元亭.移動醫(yī)療:穿戴式醫(yī)療儀器的發(fā)展趨勢[J].中國醫(yī)療器械雜志,2006,30(5):330?340.
[2] 田茂,鮮于李可,潘永才.SPI模式下SD卡驅(qū)動的設計與實現(xiàn)[J].現(xiàn)代電子技術,2009,32(14):195?199.
[3] 張恒.基于AT89S52和FAT16的SD卡讀寫系統(tǒng)設計[J].單片機與嵌入式系統(tǒng)應用,2009(8):53?58.
[4] 焦冰,葉松,溫雅婷.MSP430低功耗原理及其在海溫測量中的應用[J].現(xiàn)代電子技術,2011,34(10):189?192.
[5] 沈曉昱,王曉娜,李文軍.基于MSP430的低功耗溫度采集報警系統(tǒng)的實現(xiàn)[J].工業(yè)儀表與自動化裝置,2009(3):31?33.
[6] SD Association. SD specifications part 1: physical layer simplified specification version 2.00 [EB/OL]. [2009?06?10]. https://www. blog.163.com.
[7] CHA N. FatFs?generic FAT file system module [EB/OL]. [ 2015?03?18]. http://elm?chan.org/fsw/ff/00index_e.html.