




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、AT24C512中數(shù)據(jù)的文件系統(tǒng)化管理摘要為方便單片機(jī)對24512中的數(shù)據(jù)進(jìn)行系統(tǒng)化管理,在介紹24512基本結(jié)構(gòu)和工作原理的基礎(chǔ)上,按照機(jī)文件管理的思想實現(xiàn)24512的文件系統(tǒng),提高數(shù)據(jù)管理的效率。關(guān)鍵詞24512單片機(jī)文件系統(tǒng)數(shù)據(jù)管理在由單片機(jī)構(gòu)成的數(shù)據(jù)采集系統(tǒng)及智能儀器儀表當(dāng)中,往往有大量數(shù)據(jù)要保存。隨著測控系統(tǒng)數(shù)字化的發(fā)展,人們對數(shù)據(jù)存儲提出了更高的要求,因而用于存儲數(shù)據(jù)的存儲器容量也越來越大。但是,在增大數(shù)據(jù)存儲量的同時,人們也希望能更便捷高效地操作其中的數(shù)據(jù)包括瀏覽、添加和刪除等,即像機(jī)上管理數(shù)據(jù)一樣簡單易行。然而,單片機(jī)以及用于保存數(shù)據(jù)的芯片本身并沒有提供這種功能,為此,需要開發(fā)
2、一種用于管理單片機(jī)數(shù)據(jù)的有效方法。本文在吸取機(jī)文件管理思想的基礎(chǔ)上,以24512為例,構(gòu)造了一種類似于文件系統(tǒng)的用于管理單片機(jī)數(shù)據(jù)的方法,大大提高了數(shù)據(jù)操作的效率。124512介紹24512是公司生產(chǎn)的64串行電可擦的可編程存儲器,內(nèi)部有512頁,每一頁為128字節(jié),任一單元白地址為16位,地址范圍為00000它采用8引腳封裝,具有結(jié)構(gòu)緊湊、存儲容量大等特點,可以在2線總線上并接4片芯片,特別適用于具有大容量數(shù)據(jù)存儲要求的數(shù)據(jù)采集系統(tǒng),因此在測控系統(tǒng)中被大量采用。24512的封裝如圖1所示,各引腳的功能如下0、1地址選擇輸入端。在串行總線結(jié)構(gòu)中,如需連接4個24512芯片,則可用0、1來區(qū)分各
3、芯片。0、1懸空時為0雙向串行數(shù)據(jù)輸入輸出口。用于存儲器與單片機(jī)之間的數(shù)據(jù)交換。串行時鐘輸入。通常在其上升沿將上的數(shù)據(jù)寫入存儲器,而在下降沿從存儲器讀出數(shù)據(jù)并送往寫保護(hù)輸入。此引腳與地相連時,允許寫操作;與相連時,所有的寫存儲器操作被禁止。如果不連,該腳將在芯片內(nèi)部下拉到地。電源。接地。懸空。1 與單片機(jī)接口由于24512沿襲了24系列的接口特性,因此與單片機(jī)的連接也可沿襲傳統(tǒng)方法。一般0、1、接或,、接地單片機(jī)的1口,即可實現(xiàn)單片機(jī)對24512的操作。2 設(shè)備選址在對24512開始操作前,需要先發(fā)一個8位的地址字來選擇芯片以進(jìn)行讀寫。設(shè)備地址字格式如圖2所示。其中10100為固定的5位二進(jìn)制
4、;0、1用于對多個24512加以區(qū)分;為讀寫操作位,為1時表示讀操作,為0時表示寫操作。3 寫操作24512的寫操作有寫字節(jié)和寫頁兩種方式。寫字節(jié)時通常在向24512發(fā)送設(shè)備地址字并接到應(yīng)答信號后,還需要發(fā)送2個8位地址來選擇要寫數(shù)據(jù)的地址。24512接收到這個地址后會應(yīng)答一個零信號,然后接收8位數(shù)據(jù)進(jìn)來,并再返回一個零應(yīng)答信號。在寫頁方式時,24512可以一次性寫入一頁128字節(jié)。其初始化過程與寫字節(jié)的方法基本相同。不同的是當(dāng)寫入一個數(shù)據(jù)字節(jié)后,單片機(jī)不發(fā)停止?fàn)顟B(tài),而是在應(yīng)答信號后接著輸入127個字節(jié);每一個字節(jié)接收完畢后,24512則照樣輸出一個零應(yīng)答信號。4 讀操作讀操作有當(dāng)前地址讀、隨
5、機(jī)讀、讀串三種方式。其初始化過程基本與寫操作相同,只是在設(shè)備選擇字中的最低位要改成讀而已。在當(dāng)前地址讀操作方式時,內(nèi)部數(shù)據(jù)的地址將保持在最后的讀寫操作地址加1上,直到讀到最后字節(jié)后又回到最開始的位置。而隨機(jī)讀操作之前先要向24512寫入一個字節(jié)地址,然后才能讀。讀串操作既可以是當(dāng)前地址讀,也可以是隨機(jī)地址讀。當(dāng)單片機(jī)接收到一個數(shù)據(jù)字后,會回應(yīng)一個應(yīng)答信號。24512在接收到應(yīng)答信號后會將地址加1,接著輸出下一個字節(jié)。當(dāng)單片機(jī)接收到數(shù)據(jù)但不送應(yīng)答信號時,讀過程結(jié)束。5 文件系統(tǒng)構(gòu)成為了有效地管理24512中的數(shù)據(jù),筆者仿效機(jī)中的文件管理機(jī)制,為24512構(gòu)造了一個簡單的文件系統(tǒng)。考慮到測控系統(tǒng)的
6、實時性要求和硬件資源的有限性,采用了二級樹形目錄組織。為了管理數(shù)據(jù)方便,把24512的物理空間劃分為1024個邏輯頁,每頁64字節(jié)。按照文件系統(tǒng)的需要,把24512的全部空間劃分為三部分?jǐn)?shù)據(jù)區(qū),占用最后的960頁;頁面分配區(qū),占用中間的30頁;目錄區(qū),占用前面的24頁。1 數(shù)據(jù)區(qū)24512最后面的960頁作為數(shù)據(jù)區(qū),其序號從0開始編號。該區(qū)作為文件數(shù)據(jù)的存儲區(qū)域,在存放文件數(shù)據(jù)時,從該區(qū)內(nèi)分配若干頁,每次存儲一頁。2 頁面分配區(qū)頁面分配區(qū)記錄了數(shù)據(jù)區(qū)每一頁的分配情況。該區(qū)中每2字節(jié)組成一個記錄項,共有960個記錄項30X642記錄項從0開始編號,每一個記錄項對應(yīng)著數(shù)據(jù)區(qū)相應(yīng)頁的使用情況。在實際
7、應(yīng)用中,一個文件的數(shù)據(jù)往往大于64字節(jié),這樣一個文件的數(shù)據(jù)區(qū)中需占用多個頁。但隨著文件的增刪,數(shù)據(jù)區(qū)的空閑空間出現(xiàn)不連續(xù)的狀況,因而數(shù)據(jù)區(qū)的分配并不能保證連續(xù),而是根據(jù)當(dāng)前數(shù)據(jù)區(qū)的使用情況來決定某一部分文件內(nèi)容應(yīng)該放在哪一頁上。為了把這些分散的數(shù)據(jù)有機(jī)連接起來,把記錄項按照鏈表的形式組織起來,每個文件對應(yīng)著一個鏈表,鏈表中每個結(jié)點為一個記錄項,記錄項的內(nèi)容為下一個記錄項的編號,最后一個記錄項的內(nèi)容為0,表示鏈表結(jié)束。把這些記錄項對應(yīng)的頁面連接起來就構(gòu)成了一個文件的完整數(shù)據(jù)。另外,如果記錄項的內(nèi)容為0,表示其對應(yīng)的數(shù)據(jù)頁未分配。3 目錄區(qū)目錄區(qū)用來存儲文件的主要信息。根據(jù)這些信息可以知道文件名、
8、文件生成的日期以及文件的數(shù)據(jù)在數(shù)據(jù)區(qū)中的存儲首地址。文件目錄項的結(jié)構(gòu)如下 文件名。文件名由4字節(jié)雙碼構(gòu)成,在生成該文件時由鍵盤輸入數(shù)字硬件上鍵盤只提供了數(shù)字鍵作為文件名,并由程序自動把它們轉(zhuǎn)換成雙碼。在需要顯示時,再把它們分解成8字節(jié)單碼供顯示。 文件生成日期。占用4字節(jié),按照雙碼的格式存儲,如20、04,03、20則表示2004年3月20日。日期可由鍵盤輸入或通過時鐘芯片獲取。文件首地址。指示在給該文件分配空間進(jìn),分配給它的第一個數(shù)據(jù)頁的序號,即它對應(yīng)的鏈表的第一個記錄項的編號。目錄區(qū)共占用24頁。由于每個文件信息只占用10字節(jié),則在此文件系統(tǒng)中,最多可存儲15324X6410文件。目錄區(qū)、
9、頁面分配區(qū)和數(shù)據(jù)區(qū)的邏輯關(guān)系如圖3所示。以圖3為例,說明該文件系統(tǒng)如何獲取文件數(shù)據(jù) 在目錄區(qū)中根據(jù)文件名找到包含該文件名的目錄項,從而獲取該文件的屬性及其首地址。如文件00000103的日期為2003年11月24日,其首地址為0005 根據(jù)文件的首地址,在頁面分配區(qū)中找到該記錄項0005在該記錄項中存儲的值為0007,可知該文件的下一記錄項為0007 同理,可得到文件的后續(xù)記錄項為0008、0009、000,直到從000記錄項中讀到0此時表示這是最后一項,不需再繼續(xù)找后繼項了。至此,可知文件00000103的數(shù)據(jù)分為5部分存儲在數(shù)據(jù)區(qū)中,分別存儲在0005、0007、0008、0009、000
10、頁中。只要按序到數(shù)據(jù)中讀取這些中的數(shù)據(jù),并連接起來,就形成了該文件的全部數(shù)據(jù)。同理,文件00000001在數(shù)據(jù)區(qū)中使用了0002和0003兩頁,文件00015671只使用了數(shù)據(jù)區(qū)第000頁。3系統(tǒng)程序設(shè)計按照上述的文件系統(tǒng)結(jié)構(gòu),系統(tǒng)可通過目錄區(qū)和頁面分配區(qū)對24512的全部數(shù)據(jù)實時文件化管理。在管理過程中,最主要的操作是添加文件和刪除文件。1添加文件添加文件的主要工作是為新文件尋找存儲空間,其尋找步驟如下 在目錄區(qū)中尋找空位置。若目錄區(qū)已經(jīng)存滿最多存153個文件,則向用戶報告并中止程序;否則,記錄該位置記為。 計算文件數(shù)據(jù)需占用的頁面數(shù),記為 在頁面分配區(qū)中尋找并統(tǒng)計標(biāo)志為空的記錄項,其內(nèi)容為
11、0若其數(shù)目小于,則向用戶報告,并中止程序。 在位置填寫文件名和日期,并把找到的第一個空記錄項的序號填入,作為該文件的首地址。 依次在找到的空記錄項內(nèi)填入下一空記錄項的序號,最后一個空記錄項填入0 從文件首地址開始,按照文件鏈表依次把數(shù)據(jù)寫入數(shù)據(jù)區(qū)相應(yīng)的頁。2 刪除文件刪除文件的主要工作是回收該文件所占用的空間,以便將來分配給其它文件。 在目錄區(qū)中尋找到該文件,提取出其首地址,記錄隨后,把該文件所占用的目錄區(qū)的首字節(jié)清為0,表示該目錄項空閑。 在頁面分配區(qū)中找到記錄項,撮出其內(nèi)容,記為隨后,把記錄項的內(nèi)容改寫為0=,重復(fù),直至=0圖3由添加文件可以看出,在搜索空間時,只對目錄區(qū)和頁面分配區(qū)操作,
12、因此,刪除文件時,只需要釋放目錄和頁面分配區(qū)即可,而不需要修改數(shù)據(jù)區(qū)。這大大提高了刪除的效率。3 系統(tǒng)格式化系統(tǒng)格式化的目的是把24512按照前面所述的格式進(jìn)行初始化,以正確反映目前的使用狀況。格式化的主要工作包括 把目錄區(qū)全部寫為0,以清空目錄區(qū)中所有數(shù)據(jù); 把頁面分配區(qū)的所有記錄項寫為0,標(biāo)志它們?nèi)课词褂?。注文件系統(tǒng)程序源代碼見網(wǎng)站在大多數(shù)系統(tǒng)中,24512中的數(shù)據(jù)存儲都是要用順序存儲法每次存儲數(shù)據(jù)時都是按照先后順序依次寫入數(shù)據(jù)空間。本文所述方法與順序存儲法相比,具有下列優(yōu)點 存儲時操作簡單。在順序存儲中,尋找空閑空間需要逐次讀出已經(jīng)存儲的數(shù)據(jù),直到找到空閑空間為止,數(shù)據(jù)操作量大。本文所述方法只需要讀取目錄區(qū)和頁面分配區(qū)即可,搜索空閑空間的效率高。 刪除數(shù)據(jù)簡單。在順序存儲中,為了定位到需要刪除的數(shù)據(jù),必須逐次讀出存儲的數(shù)據(jù),直到找到需要刪除物數(shù)據(jù),再把該空閑改寫為未用狀態(tài)。本文所述方法只需要修改目錄區(qū)和頁面分配區(qū)即可,不僅定位數(shù)據(jù)快,而且修改的工作量很小。 實現(xiàn)了數(shù)據(jù)空間的回收。順序存儲法中,在刪除的某次數(shù)據(jù)后,該數(shù)據(jù)所占用的空間可能無法回收使用。因為回收的空間會形成碎片該空間前后都存儲有數(shù)據(jù),但該空間的長度無法滿足一個更大長度的數(shù)據(jù)。本文所述方法利用鏈表分配存儲空間,允
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電商行業(yè)2025年售后服務(wù)品牌建設(shè)策略研究報告
- 咖啡連鎖品牌擴(kuò)張戰(zhàn)略布局報告:2025年市場拓展與品牌差異化競爭
- 北師大版初中九年級下冊數(shù)學(xué)2.4二次函數(shù)的應(yīng)用(1)課件
- 2023-2024學(xué)年貴州省畢節(jié)市威寧縣九年級上學(xué)期物理期末試題及答案
- 樹類型題目及答案
- 數(shù)據(jù)結(jié)構(gòu)期末考試試題及答案
- 數(shù)學(xué)化簡題目及答案
- 孫權(quán)勸學(xué) 題目及答案
- 陶淵明飲酒題目及答案
- 養(yǎng)狗管理辦法重慶
- 學(xué)校2025-2026學(xué)年度第一學(xué)期工作計劃
- 干貨 - 高中歷史全套思維導(dǎo)圖100張
- 屋面光伏工程施工組織設(shè)計
- 2025年永誠財產(chǎn)保險股份有限公司招聘筆試參考題庫含答案解析
- 組織架構(gòu)重構(gòu):數(shù)智生態(tài)賦能主流媒體系統(tǒng)性變革的關(guān)鍵維度
- 農(nóng)民金融知識培訓(xùn)課件
- 2025年中鐵水務(wù)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 基孔肯雅熱的健康宣教
- 云南省煙花爆竹經(jīng)營單位主要負(fù)責(zé)人考試練習(xí)題1(100題)附答案
- 夏季預(yù)防空調(diào)病宣傳
- 科技園區(qū)火災(zāi)應(yīng)急預(yù)案
評論
0/150
提交評論