摘 要: 系統基于高集成度、低功耗的MSP430F1611單片機,利用SPI總線與SD卡通信。在單片機RAM較小的情況下,平衡SD卡存儲速度、所需RAM以及系統功耗,設計優化的FAT16文件系統,實現對SD卡的數據寫入。將該設計應用于便攜式心電監護儀上,完全滿足48 h 256 Hz心電采樣時間和頻率的要求,實現了對心電數據的實時保存。
關鍵詞: 低功耗;SD卡;文件系統;MSP430F1611;心電
?
心電監護儀是診斷心血管疾病的重要儀器之一。通常的心電監護儀多為對短程心電信號的分析,但許多心血管疾病都是偶發的,所以隨著監護時間的延長,疾病的發現率將大大提高[1]。該監護儀使用MSP430F1611單片機和SD卡建立文件系統來存儲心電信號,可以方便地實現大容量的心電信號存儲和讀取。
圖1是便攜式心電監護儀的原理框圖,儀器需要滿足以下要求:(1)使用2節5號電池,總容量不大于2000mAh;(2)待機電流小于0.4mA,待機時間大于4000h;(3)連續工作電流小于60 mA,連續工作48h以上。
?
由于心電采集和顯示要求較高的處理能力和運行性能,占據了大量的RAM和功耗,因而在單片機RAM較小的情況下,為了滿足以上要求,必須研究SD卡存儲速度、所需RAM以及功耗的關系。
1 SD卡存儲模塊的功耗分析
通常,在完成一個任務時,儀器所需的能量E可以表示為:
Vk、Ik分別為電池在第k個時間段內的電壓和輸出電流,可以得到電路在一定時間 T內的平均電流消耗(假設 V不變):
圖2是監護儀進行數據存儲時的電流消耗簡圖,系統在t1段進入待機狀態,等待采集數據滿,進行一次記錄,I1主要由微處理器(MPU)待機模式的功耗所決定;t2段為MPU在SD卡的FAT表中查找下一操作簇和下一操作扇區;在t3段,MPU把數據通過SPI總線發送到SD卡進行存儲,并查詢SD卡是否存儲完畢, t3相對來說是固定的。t2、I2與文件系統設計有關,同時,t2的改變也會影響到t1。
對于SD卡來說,完成一定量的數據操作所需功耗一定,但在SD卡工作的同時,DC-DC和MPU也在工作,t2越長,這些器件所消耗的能量也越多,SD卡存儲速度與功耗之間不會是簡單的線性關系。因此,設計最優化的文件系統、縮小FAT尋址時間,可以在完成任務的基礎上,使功耗達到最優。
2 SD卡模塊的硬件組成
SD卡數據存儲系統主要由電源、微處理器和SD卡接口電路組成。
(1)電源模塊。系統采用了兩套供電模式: MSP430采用電池直接供電,而接口電路則不需要一直工作。因此選用了TI公司的升/降壓DC-DC芯片TPS61070,將輸入電壓升高到一定電壓,再使用SIPEX公司的SPX3819-3.3把電壓穩定在3.3 V。它具有外接元件簡單,轉換效率高,帶關斷功能等特點,原理圖見圖3。
(2)微處理器。可用于低功耗系統的微處理器有多種,表1中對比了3款典型低功耗微處理器的功能和性能。可見,MSP430F1611具有較好的低功耗性能,可以在1.8~3.6 V電壓下工作,能更好地適應電池直接供電的電壓范圍。MSP430F1611有活動模式(AM)和5種低功耗模式(LPM0、LPM1、LPM2、LPM3和LPM4),實現低功耗操作的靈活性;集成12位DAC。因此,以MSP430為核心設計的采集控制電路,可以滿足高性能和低功耗要求[2]。
(3)接口電路。SD卡有9個引腳,支持兩種串行數據傳輸協議,即SD(Multimedia Card)模式和SPI(Serial Peripheral Interface)模式[3]。在SPI模式中,通過4條信號線完成數據的傳輸。這4條信號線分別是時鐘SDCLK、數據輸入SDDI、數據輸出SDDO和片選SDCS。MSP430通過P5.4口輸出SDEN控制三極管的關斷,在儀器待機時切斷接口電路的供電,降低系統功耗。MSP430與SD卡的接口電路如圖4所示。
3 FAT16文件系統的設計
文件系統是應用程序和存儲介質之間的一種協議,其主要功能是對文件進行管理。FAT16文件系統的結構包含分區引導扇區(DBR)、 文件分配表(FAT)、 文件目錄表(FDT)以及數據區(DATA)四個部分[4],如圖5所示。
引導扇區位于物理結構的第一扇區,大小為512 B,包括一個引導程序和BPB(BIOS Parameter Block)參數塊。BPB參數塊記錄本分區的起始扇區、結束扇區、文件存儲格式、介質描述符、根目錄項數、FAT個數、保留扇區數、分配單元的大小等重要參數。根據保留扇區的數目可知FAT表的位置(分區起始扇區數+保留扇區數)。根據FAT的個數以及每個FAT表占用的扇區數,即可算出FDT的位置(FAT表位置+FAT表個數×FAT表所占扇區數)。FDT中保存著目錄項,目錄項中的文件首簇號就是讀寫文件的入口[5]。
根據以上分析,針對實時數據采集系統可以簡化文件系統的設計,僅實現對文件的寫操作,而把文件創建、文件刪除等其他操作交給上位機完成。
每采集到一個扇區大小(512 B)的數據,便進行一次寫操作。寫操作的具體流程如圖6。
從圖6可以看出,在未操作到簇尾時,對扇區的操作是不進行FAT尋址操作的,這與普通的FAT16每次尋址相比,大大簡化了操作流程,加快了操作速度。在操作到簇尾時,設計使用一定大小的RAM來預讀取一個扇區或幾個扇區的FAT表,從而可以直接從RAM中尋找下一操作簇號。這樣設計的優點為:如果文件在物理上是連續存儲的,則它的FAT表也是連續的,這樣大多數情況下主機便可直接從RAM中獲取下次操作簇號,從而極大地減少了主機與SD卡通信的次數(一個扇區的FAT表便可記錄下256個簇號),加快了每次操作的速度,也減少了不必要的功耗。
4 速度及功耗測試
設定系統待機狀態時,MSP430工作于LPM3(RTC服務開啟,主頻:32 kHz),系統任務處理狀態時工作于活動模式(主頻:8 MHz)。
表2為按照設計流程(即每簇尋址)、在使用不同大小RAM的情況下系統功耗的實際測試結果。測試條件為:電源電壓VBAT=2.787 V,溫度25 ℃,測試記錄20 M心電數據(三通道心電信號采集,采樣率256 Hz)。通過測試20次求平均值,計算得出最終數據。
?
平均電流隨RAM大小變化的情況如圖7。從圖中可以看出,隨著RAM的增大,平均電流逐漸減小,功耗隨之降低。而且從圖中不難發現:不使用RAM(0B)和使用RAM的平均電流相差很大,但RAM大小從512 B增加到2 KB的過程中,平均電流并未顯著減小。又由于單片機的RAM都較小(MSP430F1611的RAM只有10KB),在整個系統中,心電采集處理模塊對RAM的使用量較大。綜合以上分析,最終選擇使用RAM的大小為512B。
????? 表3列出了在使用512 B RAM的情況下,不同尋址方式對功耗的影響。測試條件為:電源電壓VBAT=2.787 V,溫度25 ℃,測試記錄20 M心電數據(三通道心電信號采集,采樣率256 Hz)。通過測試20次求平均值,計算得出最終數據。從表3中可以看出每簇尋址的平均電流遠小于其他兩種尋址方式,可以極大地降低存儲模塊的功耗。
????? 在設計中,主要采取了兩種方式實現低功耗:(1)采用高集成度、低功耗的MSP430F1611為核心微處理器,該器件具有多種低功耗的休眠模式;(2)FAT文件系統的設計優化,具體設計中針對不同RAM大小和不同的尋址方式,經過測試、計算和對比,選擇了合適的軟硬件組合,得出最優結果。這將數據存儲模塊的功耗大大降低,簡化了便攜式心電監護儀其他部分的功耗設計。
參考文獻
[1] 段勇.基于MSP430單片機的SD卡讀寫[J].生物醫學工程研究,2007,26(4):347-350.
[2] 周樂川.基于MSP430F1611的自容式葉綠素儀的采集控制電路的低功耗設計[J].電子器件,2008,31(3):864-867.
[3] 聶虹.SPI模式下MMC卡的讀寫機制[J].單片機與嵌入式系統應用,2007(7):45-47.
[4] 李宏佳.基于ARM和SD卡的嵌入式文件系統研究與設計[J].電子設計應用,2007(7):101-103.
[5] 海深.嵌入式文件系統的實現及性能改進.合肥工業大學學報(自然科學版)[J],2008,30(3):265-267.