基于SD卡的電能耗用記錄儀設計與實(shí)現
FAT區存放文件分配表,文件分配表與數據區簇號——對應,反映了所有簇的使用情況。每個(gè)表項單元的大小決定了FAT的類(lèi)型,比如FAT32的表項單元為32 bit。FAT表一般都有一個(gè)各份。
EDT區存放文件目錄表,位于各份FAT表之后。EDT由32 bit線(xiàn)性目錄項構成,記錄著(zhù)根目錄下每個(gè)文件(子目錄)的起始單元、屬性等。
DATA區是真正意義上的數據存儲區,位于EDT之后,占據SD卡上的大部分空間。
當SD卡格式化為FAT32分區時(shí),文件系統就將這個(gè)分區當成整塊可分配的區域進(jìn)行規劃,以便于數據的存儲。通常將SD卡空間以一定數目的扇區為單位進(jìn)行劃分,這樣的單位稱(chēng)為簇,簇的大小為2n個(gè)扇區(乃為整數),每個(gè)扇區512 B,每個(gè)簇的最大存儲空間為32 KB。
3、系統軟件設計
系統軟件包括SD卡驅動(dòng)、液晶驅動(dòng)、A/D轉換驅動(dòng)、鍵盤(pán)驅動(dòng)以及各種數據處理程序等。限于篇幅,這里僅介紹SD卡的文件系統操作。整個(gè)文件系統采用模塊化層次結構,包括文件管理與目錄管理模塊、文件分配表管理模塊、SD卜緩存模塊等,這些模塊都建立在底層驅動(dòng)程序之上,底層驅動(dòng)程序則主要完成向SD卡某個(gè)扇區的讀寫(xiě)。文件系統的功能是在SD卡中進(jìn)行正確的文件數據操作,主要包括:在EDT中申請新目錄項,創(chuàng )建文件;寫(xiě)人新文件時(shí),在FAT表中查找未使用的簇,并將該簇號寫(xiě)人文件對應目錄數據結構中的起始簇號位置,當文件長(cháng)度大于一簇時(shí),還需在FAT表中對應的起始簇號位置填人下一可用簇號,直到文件的最后一簇;刪除文件時(shí),除F在EDT中將對應的目錄項設置相應標志外,還要修改FAT表,將此文件使用的簇號位置清0,表示此簇當前未被使用等。FAT32文件系統存儲文件時(shí)最小單元為簇,即使一個(gè)很小的文件也會(huì )占用一簇,為了節約存儲空間,創(chuàng )建文件時(shí)如果有同名文件存在,則只需要向原來(lái)的同名文件追加數據。文件系統設計時(shí)為用戶(hù)提供了各種API函數,如創(chuàng )建文件函數Lre-at_Fie O,打開(kāi)文件函數Open_FIle O,寫(xiě)人文件函數Write File(),刪除文件函數Delete File()等,調用這些API函數即可完成用戶(hù)所需要的功能。圖3所示為在SD卡中創(chuàng )建文件并向其中寫(xiě)人文件數據的流程圖。
圖3在SD卡中創(chuàng )建文件并向其中寫(xiě)人數據的流程圖
采用SD卡作為移動(dòng)存儲器的多參數電能耗用記錄,可以對現場(chǎng)耗電數據進(jìn)行實(shí)時(shí)采集和高速保存。利SD卡的良好移動(dòng)性,可方便地實(shí)現與計算機的數據換,達到現場(chǎng)數據采集、室內數據分析的目的。也可以過(guò)記錄儀鍵盤(pán)命令隨時(shí)讀取SD卡中的數據,從液晶示屏幕上以文本或曲線(xiàn)方式進(jìn)行實(shí)時(shí)顯示。隨著(zhù)SD移動(dòng)存儲性能的不斷提高,容量越來(lái)越大,其價(jià)格越越便宜,基于SD卡移動(dòng)存儲器的多參數電能耗用記錄儀將會(huì )得到廣泛的應用。
評論