《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于SD卡的電能耗用記錄儀設(shè)計(jì)與實(shí)現(xiàn)
基于SD卡的電能耗用記錄儀設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2010年第10期
徐愛(ài)鈞
長(zhǎng)江大學(xué) 電信學(xué)院, 湖北 荊州 434023
摘要: 利用ARM處理器LPC2148與SD卡接口,設(shè)計(jì)了一種新穎的多參數(shù)電能耗用記錄儀,用于大容量耗電數(shù)據(jù)采集。該記錄儀采用FAT32文件系統(tǒng),可將現(xiàn)場(chǎng)各種電能耗用數(shù)據(jù)及時(shí)保存到SD卡之中。利用SD卡的良好移動(dòng)性,可方便地實(shí)現(xiàn)與計(jì)算機(jī)的數(shù)據(jù)交換,達(dá)到現(xiàn)場(chǎng)數(shù)據(jù)采集、室內(nèi)數(shù)據(jù)分析的目的。同時(shí)SD卡內(nèi)保存的數(shù)據(jù)也可以由記錄儀隨時(shí)讀取,在液晶顯示器上以文本或曲線方式進(jìn)行回放。
中圖分類(lèi)號(hào): TP274
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2010)10-0073-03
Design of power consumption recorder based on SD memory card
XU Ai Jun
Dept. of Electronic Information, Yangtze University, Jingzhou 434023, China
Abstract: A new type multi-parameter power consumption recorder was designed based on SD memory card interface with ARM processor LPC2148, it can be used for mass power consumption data collection. The recorder support FAT32 file system, mass local acquired data can be stored in SD memory card as soon as possible. Since data exchanging between SD memory card and computer is very simple, local data acquisition and office data analysis will be easily realized. On the other hand , the SD card data can also be read back for display on record LCD in text or curve format.
Key words : ARM processor; SD memory card; file system; power consumption

    SD卡[1]作為新型移動(dòng)存儲(chǔ)設(shè)備,以體積小、速度快、抗震動(dòng)、通用性強(qiáng)的特點(diǎn)備受青睞。以SD卡作為存儲(chǔ)介質(zhì)來(lái)保存企業(yè)的電能耗用參數(shù),可以有效提高數(shù)據(jù)保存的可靠性。采用SD卡結(jié)合ARM處理器LPC2148設(shè)計(jì)的多參數(shù)電能耗用記錄儀,將現(xiàn)場(chǎng)采集的各類(lèi)電能耗用數(shù)據(jù)按文件方式存儲(chǔ)到SD卡中,并且可以方便地與PC等上位機(jī)進(jìn)行數(shù)據(jù)交換,從而滿足現(xiàn)場(chǎng)數(shù)據(jù)采集、室內(nèi)進(jìn)行數(shù)據(jù)分析的要求,特別適合于長(zhǎng)時(shí)間、大容量數(shù)據(jù)采集的場(chǎng)合。
1 系統(tǒng)硬件設(shè)計(jì)
 電能耗用記錄儀硬件電路如圖1所示,ARM核處理器LPC2148是整個(gè)系統(tǒng)的核心,其工作頻率高達(dá)60 MHz,內(nèi)置512 KB的閃存和16 KB的SRAM,并且?guī)в蠸PI總線、兩路A/D轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘等多種片內(nèi)功能部件。電網(wǎng)中的電壓電流信號(hào)通過(guò)較高精度的互感器變換成1 V左右的交流信號(hào),同時(shí)使記錄儀與強(qiáng)電隔離,對(duì)隔離后的交流信號(hào)進(jìn)行整形、濾波之后送入LPC2148內(nèi)部?jī)陕稟/D轉(zhuǎn)換器,完成對(duì)電壓、電流、功率因數(shù)等參數(shù)的測(cè)量,LPC2148根據(jù)內(nèi)部實(shí)時(shí)時(shí)鐘提供的時(shí)間按高峰和低谷時(shí)段對(duì)耗電量進(jìn)行分時(shí)計(jì)度,計(jì)算出瞬時(shí)電量、整點(diǎn)電量、總需量等參數(shù)。記錄儀采用點(diǎn)陣圖形液晶顯示器作為本地顯示接口,既可以文本模式顯示所采集的數(shù)據(jù),也可以圖形方式顯示采集數(shù)據(jù)曲線。外擴(kuò)矩陣鍵盤(pán)用于設(shè)定數(shù)據(jù)采集間隔、采集時(shí)間等,系統(tǒng)根據(jù)用戶設(shè)定啟動(dòng)數(shù)據(jù)采集,并自動(dòng)將采集得到的數(shù)據(jù)存儲(chǔ)到SD卡存儲(chǔ)器中。

    SD卡可以采用SD和SPI兩種工作方式[2],在SPI方式下只需要4條信號(hào)線即可完成數(shù)據(jù)通信,操作簡(jiǎn)單方便,而且很容易與LPC2148的SPI總線進(jìn)行接口,接口引腳說(shuō)明如表1所列。作為SPI設(shè)備,SD卡的SPI通道由以下4個(gè)信號(hào)組成:CS(片選)、SCK(時(shí)鐘)、DateIn(主機(jī)到卡的數(shù)據(jù)信號(hào))和DateOut(卡到主機(jī)的數(shù)據(jù)信號(hào))。CS是SD卡的片選信號(hào)線,在整個(gè)SPI 操作過(guò)程中,必須保持低電平有效;SCK時(shí)鐘用于同步;DateIn不但傳輸數(shù)據(jù)還發(fā)送命令;DateOut除了傳輸數(shù)據(jù)外,還發(fā)送應(yīng)答信號(hào)。

2 SD卡在SPI方式下的讀寫(xiě)實(shí)現(xiàn)
 SPI是一種通用同步串行接口總線,字長(zhǎng)為8 bit。SPI協(xié)議是以主從方式工作的,通常有一個(gè)主設(shè)備和一個(gè)(或多個(gè))從設(shè)備。工作時(shí)主設(shè)備通過(guò)提供同步時(shí)鐘和從設(shè)備使能信號(hào)來(lái)控制數(shù)據(jù)傳輸。主設(shè)備每次開(kāi)始傳送數(shù)據(jù)時(shí),必須先將片選信號(hào)置低以激活SD卡,使其進(jìn)入工作狀態(tài)。SD卡在SPI方式下工作時(shí),被選中的卡總是對(duì)來(lái)自于主設(shè)備的命令有所響應(yīng),當(dāng)卡遇到錯(cuò)誤時(shí),將返回一個(gè)出錯(cuò)響應(yīng)來(lái)代替期望的數(shù)據(jù)。
2.1 SD卡初始化
 SD卡在讀寫(xiě)操作之前必須進(jìn)行初始化,這是確保SD卡能在SPI方式下進(jìn)行正常數(shù)據(jù)傳輸?shù)那疤?。由于大容量SD卡的出現(xiàn),SD1.x標(biāo)準(zhǔn)已經(jīng)升級(jí)為SD2.0,但也因此出現(xiàn)許多電子設(shè)備無(wú)法驅(qū)動(dòng)大容量SD卡的情況,如何識(shí)別SD1.x與SD2.0就顯得特別重要。SD卡上電后默認(rèn)進(jìn)入SD工作方式,應(yīng)等待至少74個(gè)時(shí)鐘周期后,將片選信號(hào)置低,發(fā)送復(fù)位命令CMD0,等SD卡復(fù)位完成后再向SD卡發(fā)送CMD8命令。如果收到的應(yīng)答信號(hào)為01H,則表示為SD2.0卡,否則為SD1.x卡。SD1.x與SD2.0最大不同之處在于命令地址的表示,SD1.x的地址單位是字節(jié),而SD2.0的地址單位是扇區(qū),因此在讀寫(xiě)操作時(shí)應(yīng)根據(jù)不同的卡對(duì)地址作相應(yīng)處理。圖2所示為SD卡在SPI方式下的初始化流程。

2.2 FAT32文件系統(tǒng)
 SD卡在能夠進(jìn)行數(shù)據(jù)保存之前必須先按某種文件系統(tǒng)[3]的規(guī)定進(jìn)行格式化,F(xiàn)AT32文件系統(tǒng)因具有高度兼容性而被廣泛應(yīng)用于移動(dòng)存儲(chǔ)設(shè)備中。FAT32文件系統(tǒng)結(jié)構(gòu)分為五個(gè)部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)、DATA區(qū)。
 MBR區(qū)又稱(chēng)為主引導(dǎo)記錄,其后為64 B的磁盤(pán)分區(qū)表DPT。
 DBR區(qū)即操作系統(tǒng)引導(dǎo)記錄區(qū),占用分區(qū)的第0扇區(qū),共512 B,由跳轉(zhuǎn)指令、結(jié)束標(biāo)志等幾部分組成。
 FAT區(qū)存放文件分配表,文件分配表與數(shù)據(jù)區(qū)簇號(hào)一一對(duì)應(yīng),反映了所有簇的使用情況。每個(gè)表項(xiàng)單元的大小決定了FAT的類(lèi)型,比如FAT32的表項(xiàng)單元為32 bit。FAT表一般都有一個(gè)備份。
 FDT區(qū)存放文件目錄表,位于備份FAT表之后。FDT由32 bit線性目錄項(xiàng)構(gòu)成,記錄著根目錄下每個(gè)文件(子目錄)的起始單元、屬性等。
 DATA區(qū)是真正意義上的數(shù)據(jù)存儲(chǔ)區(qū),位于FDT之后,占據(jù)SD卡上的大部分空間。
 當(dāng)SD卡格式化為FAT32分區(qū)時(shí),文件系統(tǒng)就將這個(gè)分區(qū)當(dāng)成整塊可分配的區(qū)域進(jìn)行規(guī)劃,以便于數(shù)據(jù)的存儲(chǔ)。通常將SD卡空間以一定數(shù)目的扇區(qū)為單位進(jìn)行劃分,這樣的單位稱(chēng)為簇,簇的大小為2n個(gè)扇區(qū)(n為整數(shù)),每個(gè)扇區(qū)512 B,每個(gè)簇的最大存儲(chǔ)空間為32 KB。
3 系統(tǒng)軟件設(shè)計(jì)
 系統(tǒng)軟件包括SD卡驅(qū)動(dòng)、液晶驅(qū)動(dòng)、A/D轉(zhuǎn)換驅(qū)動(dòng)、鍵盤(pán)驅(qū)動(dòng)以及各種數(shù)據(jù)處理程序等。限于篇幅,這里僅介紹SD卡的文件系統(tǒng)操作。整個(gè)文件系統(tǒng)采用模塊化層次結(jié)構(gòu),包括文件管理與目錄管理模塊、文件分配表管理模塊、SD卡緩存模塊等,這些模塊都建立在底層驅(qū)動(dòng)程序之上[4],底層驅(qū)動(dòng)程序則主要完成向SD卡某個(gè)扇區(qū)的讀寫(xiě)。文件系統(tǒng)的功能是在SD卡中進(jìn)行正確的文件數(shù)據(jù)操作,主要包括:在FDT中申請(qǐng)新目錄項(xiàng),創(chuàng)建文件;寫(xiě)入新文件時(shí),在FAT表中查找未使用的簇,并將該簇號(hào)寫(xiě)入文件對(duì)應(yīng)目錄數(shù)據(jù)結(jié)構(gòu)中的起始簇號(hào)位置,當(dāng)文件長(zhǎng)度大于一簇時(shí),還需在FAT表中對(duì)應(yīng)的起始簇號(hào)位置填入下一可用簇號(hào),直到文件的最后一簇;刪除文件時(shí),除了在FDT中將對(duì)應(yīng)的目錄項(xiàng)設(shè)置相應(yīng)標(biāo)志外,還要修改FAT表,將此文件使用的簇號(hào)位置清0,表示此簇當(dāng)前未被使用等。FAT32文件系統(tǒng)存儲(chǔ)文件時(shí)最小單元為簇,即使一個(gè)很小的文件也會(huì)占用一簇,為了節(jié)約存儲(chǔ)空間,創(chuàng)建文件時(shí)如果有同名文件存在,則只需要向原來(lái)的同名文件追加數(shù)據(jù)。文件系統(tǒng)設(shè)計(jì)時(shí)為用戶提供了各種API函數(shù),如創(chuàng)建文件函數(shù)Creat_File(),打開(kāi)文件函數(shù)Open_FIle(),寫(xiě)入文件函數(shù)Write_File(),刪除文件函數(shù)Delete_File()等,調(diào)用這些API函數(shù)即可完成用戶所需要的功能。圖3所示為在SD卡中創(chuàng)建文件并向其中寫(xiě)入文件數(shù)據(jù)的流程圖。

    采用SD卡作為移動(dòng)存儲(chǔ)器的多參數(shù)電能耗用記錄儀,可以對(duì)現(xiàn)場(chǎng)耗電數(shù)據(jù)進(jìn)行實(shí)時(shí)采集和高速保存。利用SD卡的良好移動(dòng)性,可方便地實(shí)現(xiàn)與計(jì)算機(jī)的數(shù)據(jù)交換,達(dá)到現(xiàn)場(chǎng)數(shù)據(jù)采集、室內(nèi)數(shù)據(jù)分析的目的。也可以通過(guò)記錄儀鍵盤(pán)命令隨時(shí)讀取SD卡中的數(shù)據(jù),從液晶顯示屏幕上以文本或曲線方式進(jìn)行實(shí)時(shí)顯示。隨著SD卡移動(dòng)存儲(chǔ)性能的不斷提高,容量越來(lái)越大,其價(jià)格越來(lái)越便宜,基于SD卡移動(dòng)存儲(chǔ)器的多參數(shù)電能耗用記錄儀將會(huì)得到廣泛的應(yīng)用。
參考文獻(xiàn)
[1] SanDisk Corporation SD memory card specifications part 1, Physical Layer Specification Version 1.0, 2002.
[2] 周煜, 付宇卓. 基于SPI協(xié)議的MMC卡讀寫(xiě)機(jī)制的實(shí)現(xiàn)[J]. 計(jì)算機(jī)仿真, 2005,22(1):97-99.
[3] 鄧劍, 楊曉非, 廖俊卿. FAT文件系統(tǒng)原理及實(shí)現(xiàn)[J]. 計(jì)算機(jī)與數(shù)字工程, 2005,33(9):105-108.
[4] 徐愛(ài)鈞. IAR EWARM V5嵌入式系統(tǒng)應(yīng)用編程與開(kāi)發(fā)[M]. 北京:北京航空航天大學(xué)出版社, 2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。