新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 車載MP3中Flash文件系統(tǒng)的設計與應用

        車載MP3中Flash文件系統(tǒng)的設計與應用

        作者: 時間:2010-01-08 來源:網絡 收藏

        2.1 存儲管理系統(tǒng)

        存儲器的操作是以塊為單位的,而FAT則是建立在以扇區(qū)(sector)為單位的磁盤操作基礎上(通常為512字節(jié)/扇區(qū))。因此,本文設計了一個特殊的存儲管理系統(tǒng),來解決以塊為單位的Flash物理特性和以扇區(qū)為單位的接口之間的矛盾,以使得Flash的物理地址和FAT操作的邏輯地址之間能夠對應。同時,由于Flash的其它特點,Flash存儲管理系統(tǒng)還實現了各塊之間的擦寫次數均衡和壞塊管理等工作。

        (1)物理地址到邏輯地址的映射

        為了在Flash物理地址和FAT操作的邏輯地址之間建立一個好的映射關系,對Flash的存儲空間在邏輯上進行了重新定義。結合Flash特點,將每個存儲單元塊內部分成若干物理扇區(qū),每個物理扇區(qū)由512字節(jié)+16字節(jié)=528字節(jié)組成。其中Main Area的512字節(jié)為有效數據空間,而Spare Area的16字節(jié)用于存放其它信息。

        由上述定義便可以確定Flash物理扇區(qū)和絕對地址之間的對應關系:

        絕對地址=Flash基地址+物理扇區(qū)號×528

        在建立了物理地址和邏輯地址之間的映射關系之后,但可以很好地將系統(tǒng)對音頻文件的操作轉換成系統(tǒng)直接Flash的編程或者擦除操作。例如,在該系統(tǒng)中要進行ReadFile()操作,便可以根據其對應關系,通過執(zhí)行Flash存儲管理系統(tǒng)中的sectorread()操作來實現。

        (2)可靠性設計

        由于該系統(tǒng)采用汽車供電,因此當汽車處于不太平衡的環(huán)境中,可能會由于顛簸千萬播放系統(tǒng)的異常斷電,所以提高播放系統(tǒng)的可靠性非常重要。本文通過將Spare Area的16字節(jié)定義為邏輯扇區(qū)號、扇區(qū)當前狀態(tài)、壞塊信息等來提高播放系統(tǒng)的可靠性。其中Spare Area的具體定義如下:

        邏輯扇區(qū)號 扇區(qū)當前狀態(tài) 壞塊信息 保留字節(jié)

        第1~3字節(jié) 第4~5字節(jié) 第6字節(jié) 第7~16字節(jié)

        由以上定義可以看到,Spare Area的第4~5字節(jié)用于存儲扇區(qū)當前狀態(tài)。這樣在Flash寫操作過程中,如果突然斷電,便可以根據此狀態(tài)進行掉電數據恢復。該系統(tǒng)中設定扇區(qū)當前狀態(tài)有3種:扇區(qū)為空(0xfff)、扇區(qū)數據無用(0x0000)、扇區(qū)數據有效(0x00ff)。這樣定義以后,系統(tǒng)便可以在Flash寫操作異常終止時能夠對當時的狀態(tài)進行及時的保存,以便下次系統(tǒng)開啟后能夠判斷出上次系統(tǒng)中存在的問題并作出相應的處理。

        (3)壞塊管理

        由于Flash內部會有壞塊,因此Flash存儲管理系統(tǒng)需要對Flash進行壞塊管理。本文對壞塊的管理分以下兩種情況:

        ①初始壞塊處理。Flash存儲器在使用前可能會有壞塊,而且這些壞塊是隨機分布的。所以,Flash文件管理系統(tǒng)在系統(tǒng)執(zhí)行讀寫操作之前先建立一個壞塊表,然后對Flash存儲器進行初始化掃描以發(fā)現壞塊,并將壞塊標記為不可用,加入到壞塊表中。

        ②操作過程中壞塊處理。在擦除或者編程過程中發(fā)生錯誤時,Flash文件管理系統(tǒng)將該塊中其它頁的數據重新拷貝到一個新的空塊中,然后再將該塊標記為壞塊,加入到壞塊表中。在這個處理過程中,由于對Flash的擦除或者編程操作都會使得Flash存儲單元塊的內容改變,所以Flash文件管理系統(tǒng)一旦發(fā)現Flash存儲器的存儲單元塊成為壞塊后便不再對該塊進行擦除或編程操作,以免將壞塊標志位數據清除掉,而是將該塊標記為壞塊,并將其加入壞塊表中。

        Flash文件管理系統(tǒng)在進行上述壞塊管理后,壞塊單元對用戶應用是完全透明的。這大大方便了用戶的使用,也達到了車載播放系統(tǒng)的目的。

        (4)均衡擦寫次數

        由于Flash有一定的使用壽命,一般可擦除的次數為10~100萬次,所以隨著使用次數的增加,會有一些單元逐漸變得不穩(wěn)定或失敗。因此,要盡量避免頻繁地對同一塊地址操作,以免造成局部單元提前損壞;同時,由于擦除操作耗時較多,也應減少擦除操作,應該盡量達到擦寫次數均衡。為此,本文設計了Flash更新算法和磨損程度檢測算法。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 盐城市| 乌兰县| 隆昌县| 富锦市| 潮安县| 双江| 任丘市| 新沂市| 太湖县| 黄浦区| 大城县| 班玛县| 水富县| 建阳市| 集贤县| 荥经县| 林口县| 扶绥县| 农安县| 万州区| 双辽市| 陆丰市| 耿马| 土默特左旗| 登封市| 红桥区| 松滋市| 六盘水市| 霍城县| 闻喜县| 姜堰市| 北宁市| 泰顺县| 达拉特旗| 霍邱县| 涿鹿县| 昌宁县| 安阳市| 肇东市| 攀枝花市| 桂阳县|