《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于FLASH的嵌入式存儲系統設計
基于FLASH的嵌入式存儲系統設計
電子發燒友
摘要: 1 引言 FLASH(閃速存儲器)作為一種安全、快速的存儲體,具有體積小、容量大、成本低、掉電數據不丟失等一系列優點,已成為嵌入式系統中數據和程序最主要的載體。由于FLASH在結構和操作方式上與硬盤、E2ROM等其他存儲介質有較大區別,使用FLASH時必須根據其自身特性,對存儲系統進行特殊設計,以保證系統的性能達到最優。 2 FLASH的特點FLASH是一種非易失性存儲器NVM(Non-Volatile Memory),根據結構的不同可以將其分成NOR FLASH和NAND FLASH兩種。但不管哪一種都具有如下特點: (1)區塊結構FLASH在物理結構上分成若干個區塊,區塊之間相互獨立。比如NOR FLASH把整個Memory分成若干個Sector,而NAND FLASH把整個Memory分成若干個Block; (2)先擦后寫由于FLASH的寫操作只能將數據位從1寫成0,不能從0寫成1,所以在對存儲器進行寫入之前必須先執行擦操作,將預寫入的數據位初始化為1。擦操作的最小單位是一個區塊,而不是單個字節。 (3)操作指令除了NOR FLASH的讀,FLASH的其它操作不能像RAM那樣,直接對目標地址進行總線操
Abstract:
Key words :

1 引言

FLASH(閃速存儲器)作為一種安全、快速的存儲體,具有體積小、容量大、成本低、掉電數據不丟失等一系列優點,已成為嵌入式系統中數據和程序最主要的載體。由于FLASH在結構和操作方式上與硬盤、E2ROM等其他存儲介質有較大區別,使用FLASH時必須根據其自身特性,對存儲系統進行特殊設計,以保證系統的性能達到最優。

2 FLASH的特點

FLASH是一種非易失性存儲器NVM(Non-Volatile Memory),根據結構的不同可以將其分成NOR FLASH和NAND FLASH兩種。但不管哪一種都具有如下特點:

(1)區塊結構FLASH在物理結構上分成若干個區塊,區塊之間相互獨立。比如NOR FLASH把整個Memory分成若干個Sector,而NAND FLASH把整個Memory分成若干個Block;

(2)先擦后寫由于FLASH的寫操作只能將數據位從1寫成0,不能從0寫成1,所以在對存儲器進行寫入之前必須先執行擦操作,將預寫入的數據位初始化為1。擦操作的最小單位是一個區塊,而不是單個字節。

(3)操作指令除了NOR FLASH的讀,FLASH的其它操作不能像RAM那樣,直接對目標地址進行總線操 作。比如執行一次寫操作,它必須輸入一串特殊的指令(NOR FLASH),或者完成一段時序(NAND FLASH)才能將數據寫入到FLASH中。

(4)位反轉由于FLASH固有的電器特性,在讀寫數據過程中,偶然會產生一位或幾位數據錯誤。這就是位反轉。位反轉無法避免,只能通過其他手段對結果進行事后處理。

(5)壞塊FLASH在使用過程中,可能導致某些區塊的損壞。區塊一旦損壞,將無法進行修復。如果對已損壞的區塊進行操作,可能會帶來不可預測的錯誤。尤其是NAND FLASH在出廠時就可能存在這樣的壞塊(已經被標識出)。

3 關鍵設計

3.1 FLASH通用設計

對于一個嵌入式系統,設備的兼容性越好,系統可行性就越好,產品也就越有競爭力。所以,為了兼容不同類型的FLASH設備,對FLASH進行通用設計至關重要。

對于NOR FLASH,數據的讀操作可以通過獨立的數據總線和地址總線快速完成,然而NOR FLASH的其他操作需要通過特殊的指令來完成,更糟糕的是不同廠商生產的芯片這些指令互不相同。這就導致了設備的不兼容。

對于NAND FLASH,也存在這樣的問題。NAND FLASH可以根據相同的指令讀取芯片的廠商號和設備號,從而通過識別設備號調用對應的時序流程實現操作。但是,系統中太多的判斷,會使得程序的結構變得非常復雜。所以,在一定的條件下,NAND FLASH設備還是不兼容的。

為了解決這一問題,一個較好的方法是將FLASH的各個操作指令以及結構特性按照統一的格式存放到FLASH中固定位置。系統初始化時,將這個結構讀入系統,通過分析這個結構,可以獲得關于芯片所有相關信息,包括操作指令,區塊分布等等。這樣,系統可以輕松實現對不同型號FLASH的所有操作,極大地提高了設備的擴展性。

3.2 雙模式文件系統設計

嵌入式系統中文件數據的存放一般有兩種結構,一種是索引格式的線性結構,一種是非線性的鏈表式結構。這兩種結構各有優缺點。比如對于系統配置、點陣字庫等一些具有固定結構的系統數據,索引結構比鏈表式結構更有效率。但對于經常更新的用戶數據,鏈表式結構要比索引結構更靈活。如果系統能將兩種結構集成,勢必能將性能發揮到最優。

實現這種集成的方法是將設備定義成若干個分區,每個分區相互獨立,不同分區可以使用不同的文件模式。這樣,不同類型的數據就可以根據自己的屬性選擇存放的分區。比如系統數據存放在使用索引線性結構的分區,用戶數據存放在使用鏈式非線性結構的分區。

3.3 壞塊處理

FLASH中的壞塊處理是一件很棘手的問題,如果沒有有效的管理,對系統的穩定性會造成嚴重影響。一個可行的解決方法是生成一張壞塊表,壞塊表中記錄所有壞塊的塊號,并且按塊號從小到大排序,壞塊表在讀寫過程中動態更新。當讀寫數據時,遍歷壞塊表中的塊號,將文件的邏輯地址轉換成對應FLASH 物理地址,以保證所用的FLASH地址空間不存在壞塊。

4 系統實現

4.1 結構定義

系統的存儲結構如圖1所示,在FLASH的Block0位置存放整個系統最重要的數據——系統記錄SR(System Record)。選擇Block0的原因是一般FLASH出廠時,都能保證Block0是完好的,因此可以避免壞塊問題帶來的不便。SR其實就是一個定義好的數據結構,它包括媒質信息和文件系統信息兩部分。媒質信息包括FLASH存儲器的類型、容量、塊類型的大小和數量(BlockInfo)、FLASH 操作命令( CommandInfo )等。文件系統信息包括版本信息、各邏輯分區的起始地址(物理地址)和結束地址。FLASH設備可以被分成一個或多個邏輯分區,每個邏輯分區采用的操作方式可以互不相同,如圖1中Device0分區采用的是線性文件系統,Device1分區采用的是鏈式文件系統。如果采用的是線性文件系統,在分區信息后面加入文件索引表INDEX起始地址、大小等信息;如果采用的是鏈式文件系統,則加入文件系統頁大小、文件分配表FAT和文件登記表FRT所在的位置等信息。
 


文件登記表FRT位于FAT后的頁中,存放著邏輯分區中文件的信息,如文件總數、每個文件的文件代號、位置、長度以及校驗模式。其中,校驗模式用來標識文件讀寫時采用差錯校驗的級別。不同類型的文件采用不同級別的校驗方式。0級不進行校驗,1級ECC校驗,2級逐個字節比較。

對于線性文件系統分區,所有文件順序存儲,讀取數據時,直接通過INDEX索引得到某個文件的邏輯起始地址,然后從這個地址開始順序搜索,獲取某個偏移位置下的n個連續Byte。鏈式文件系統是將地址空間分成若干個等分,即Sector,它是操作的最小單位;一個大文件可以分布在不連續的多個 Sector中,然后通過FAT表將它們連接起來;在FLASH介質上實現鏈式文件系統,Sector大小的選擇是一個關鍵,由于FLASH的寫操作,擦操作是以Page,Block為單位的,設小了使大塊結構的FLASH寫操作復雜,設多了又浪費空間,因此最好的選擇是將Sector大小設為擦操作的最小單位16K。

整個邏輯分區中,INDEX,FAT,FRT表中的內容非常重要,一旦因為異常產生錯誤,可能會影響到所有文件;所以,這三個文件都做了備份處理,備份存放于不同的Block中。同時,在對他們處理時,改寫表中的更新狀態。0xff表示開始更新,0x00表示更新結束。在文件系統初始化時,讀取它們的更新狀態,如果表中的更新狀態為0xff,說明該表存在操作異常,可用備份表更正。

4.2 層次接口

整個存儲系統分成三層,如圖2所示。
 


(1)操作系統層

在整個存儲系統中,操作系統扮演的是使用者的角色。當需要數據時,它通過調用文件系統層提供的接口函數獲取數據,它不關心數據的來源和正確性。

(2)文件系統層

文件系統層的任務是實現它和操作系統層的函數接口。在實現方式上,線性文件系統和鏈式文件系統有較大區別。比如文件讀取mfread,線性文件系統直接讀取所要的字節,而鏈式文件系統是每次先把對應的整個頁讀到文件緩沖區,然后再把所需數據拷貝到讀到指定內存。文件刪除mfdelete,線性文件系統需要重新整理,不然就會因為大量的數據空洞(由于空間太小,無法放入新文件的小塊區域)使得系統很快沒有可用空間。鏈式文件系統只需修改文件系統的 FAT和FRT,而不用做其他任何處理,當下次寫入操作用到該塊時,自動完成擦除。

(3)驅動層

驅動層的任務是完成與FLASH之間的通訊協議,實現它和文件系統層的函數接口。接口函數包括頁面讀mPageRead,頁面寫mPageWrite, 塊擦除mBlockErase, 隨機讀取mRnRead, 隨機寫入mRnWrite。mPageRead,mPageWrite,mBlockErase對整頁或塊進行操作,在鏈式文件系統中調用; mRnRead, mRnWrite對字節單位進行操作,在線性文件系統中調用。其中mRnWrite比較麻煩,以寫一個Byte為例,它的操作分三步,首先將目標塊中的所有數據讀到內存Buffer中,然后將要寫入的數據更新到Buffer,擦除目標塊,最后將已更新的Buffer寫回到目標塊,這里的Buffer大小是一個Block。由于嵌入式系統的內存資源比較緊張,系統采用了塊交換技術以降低成本,方法是在FLASH中搜索一個空閑塊,用它充當Buffer的角色。

5 結論

通過上面的設計,所實現的存儲系統具有以下的特點:

(1)使用通用模式設計,增強了系統對FLASH設備的兼容性;

(2)使用雙模式文件結構設計,使不同類型的數據處理效率同時達到最優;(3)使用地址映射表,屏蔽了壞塊帶來的隱患,增強了系統的健壯性;

(4)對重要數據采用備份保護,保證不會因為斷電等異常導致系統的崩潰,增強了系統穩定性;

(5)采用塊交換技術,節約系統成本;

(6)進行分級差錯校驗,提高了系統的執行效率。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产一区二区久久精品| 国产裸体写真av一区二区| 国产亚洲精品久久久久婷婷瑜伽| 亚洲欧美精品一区| 亚洲男女自偷自拍| 日韩午夜免费| 久久精品一区四区| 亚洲精品少妇| 狠狠综合久久| 亚洲第一成人在线| 国产一本一道久久香蕉| 蜜桃久久精品一区二区| 国产欧美精品xxxx另类| 黄色日韩精品| 亚洲电影在线| 免费永久网站黄欧美| 久久aⅴ国产欧美74aaa| 亚洲国产日韩欧美综合久久| 亚洲人成网站在线观看播放| 欧美精品www在线观看| 欧美日韩亚洲一区二区三区在线观看| 欧美日韩一区二区国产| 久久久综合视频| 国产精品人人爽人人做我的可爱| 国产亚洲一区二区在线观看| 99视频国产精品免费观看| 亚洲一区免费观看| 国产伦精品一区二区三区免费迷| 欧美亚洲视频一区二区| 欧美成人福利视频| 久久久久久穴| 欧美91精品| 国产精品在线看| 亚洲午夜激情网页| 欧美日本高清一区| 激情五月婷婷综合| 一区二区三区高清| 国产日韩欧美不卡在线| 欧美一区成人| 欧美日韩一区免费| 欧美成年人视频网站| 欧美成人免费在线| 久久精品视频免费| 国产啪精品视频| 欧美高清视频一二三区| 欧美mv日韩mv国产网站app| 久久综合一区二区三区| 性欧美大战久久久久久久免费观看| 一区二区三区四区五区视频| 免费不卡在线观看| 久久国产毛片| 国产日韩欧美成人| 国产精品一区一区| 国产一区二区三区免费观看| 一区二区三区精品| 在线中文字幕不卡| 国内精品国语自产拍在线观看| 欧美日韩 国产精品| 国产精品乱码| 亚洲性视频网站| 性欧美1819性猛交| 亚洲在线视频| 性做久久久久久免费观看欧美| 欧美日韩美女一区二区| 欧美精品成人| 欧美视频一区二区三区…| 欧美日韩一区二区免费在线观看| 久久免费视频一区| 亚洲国产精品视频一区| 欧美日韩精品福利| 午夜一区不卡| 国产欧美精品一区二区三区介绍| 亚洲第一黄色| 久久在线免费视频| 欧美人在线视频| 国产在线视频欧美| 一区二区三区在线观看欧美| 最新日韩欧美| 欧美激情一区二区| 国产精品av免费在线观看| 亚洲国产第一页| 日韩亚洲在线| 亚洲啪啪91| 六月丁香综合| 国产精品自在在线| 久久一区二区三区国产精品| 欧美手机在线视频| av成人毛片| 伊甸园精品99久久久久久| 欧美视频手机在线| 一区在线播放| 亚洲精品欧美专区| 国产亚洲欧美日韩日本| 在线观看视频日韩| 一区二区三区欧美日韩| 国产一区自拍视频| 在线观看日韩av电影| 免费欧美电影| 欧美高清视频在线播放| 亚洲美女91| 麻豆91精品| 国产精品久久久久毛片大屁完整版| 亚洲成人在线网站| 亚洲免费在线精品一区| 中文日韩欧美| 亚洲视频精选在线| 欧美三级不卡| 国产精品人人做人人爽人人添| 欧美精品18videos性欧美| 亚洲三级网站| 国产精品日本一区二区| 亚洲国产精品一区制服丝袜| 欧美日韩国产欧| 亚洲免费在线播放| 亚洲美女免费精品视频在线观看| 欧美美女视频| 国产精品国产三级国产aⅴ入口| 99国内精品| 国产一区二区高清视频| 亚洲精品久久7777| 欧美成人午夜激情在线| 国产亚洲一区在线播放| 亚洲日本va午夜在线电影| 国内精品免费在线观看| 欧美日韩亚洲视频一区| 最新国产乱人伦偷精品免费网站| 免费观看成人鲁鲁鲁鲁鲁视频| 国产农村妇女精品| 国产精品一区二区久久久| 久久黄色小说| 亚洲一区二区不卡免费| 亚洲综合清纯丝袜自拍| 国语自产精品视频在线看一大j8| 99视频超级精品| 亚洲欧美国产一区二区三区| 久久天堂成人| 亚洲欧美一区二区三区在线| 欧美一区二区| 亚洲精品视频免费在线观看| 国内精品亚洲| 亚洲一区二区三区免费视频| 亚洲国产一区二区精品专区| 亚洲黄色有码视频| 国产精品黄视频| 欧美视频亚洲视频| 极品中文字幕一区| 在线观看亚洲视频啊啊啊啊| 亚洲电影有码| 国产一区二区三区四区三区四| 免费观看日韩| 夜夜嗨av色综合久久久综合网| 国产欧美在线播放| 在线观看亚洲视频| 国产精品视频1区| 免费日韩av| 国产精品亚洲综合一区在线观看| 欧美电影美腿模特1979在线看| 亚洲自拍16p| 99热这里只有成人精品国产| 欧美性色视频在线| 欧美少妇一区| 久久综合网hezyo| 亚洲最新视频在线播放| 久久精品在线视频| 在线观看欧美精品| 国产精品你懂的在线| 国产日产欧美a一级在线| 欧美日一区二区三区在线观看国产免| 亚洲激情专区| 红桃视频国产精品| 99精品黄色片免费大全| 国产欧美日韩一区二区三区在线| 久久九九精品| 欧美gay视频| 亚洲免费福利视频| 亚洲美女区一区| 日韩亚洲欧美成人一区| 狠狠色狠狠色综合日日91app| 欧美日韩一区三区四区| 欧美精品日本| 久久天天躁狠狠躁夜夜爽蜜月| 国产日韩欧美一区二区三区在线观看| 香蕉成人啪国产精品视频综合网| 美女主播精品视频一二三四| 亚洲一级片在线看| 国产精品亚洲综合一区在线观看| 日韩亚洲国产精品| 欧美人与禽性xxxxx杂性| 亚洲小视频在线| 蜜臀a∨国产成人精品| 又紧又大又爽精品一区二区| 欧美日韩视频不卡| 一区二区三区国产在线观看| 亚洲狠狠丁香婷婷综合久久久| 久久久久一区| 国产日韩在线亚洲字幕中文| 亚洲精品视频中文字幕| 性久久久久久久久| 美女视频一区免费观看| 艳妇臀荡乳欲伦亚洲一区| 国产综合久久久久久| 久久久久久电影| 巨乳诱惑日韩免费av| 免播放器亚洲| 夜夜精品视频一区二区| 99精品热视频| 亚洲欧洲在线视频| 欧美亚洲视频| 欧美在线视频免费观看| 亚洲国产影院| 欧美成人三级在线| 欧美成人一区二免费视频软件| 欧美视频在线观看免费网址| 亚洲免费观看高清在线观看| 在线观看亚洲视频| 亚洲电影在线免费观看| 亚洲免费伊人电影在线观看av| 亚洲日韩欧美视频| 欧美在线免费观看视频| 亚洲欧洲一区二区三区久久| 亚洲三级观看| 久久国产精品99国产精| 国产精品日日做人人爱| 韩国一区二区三区美女美女秀| 影音先锋日韩有码| 欧美激情无毛| 亚洲国产精品黑人久久久| 99热这里只有成人精品国产| 在线观看视频一区二区| 欧美一级久久| 亚洲黄色在线| 国产精品一级在线| 欧美精品v日韩精品v韩国精品v| 国产精品初高中精品久久| 一区二区视频免费完整版观看| 欧美视频日韩视频在线观看| 麻豆久久久9性大片| 国产女主播在线一区二区| 欧美精品在线一区二区三区| 免费中文日韩| 亚洲一区免费看| 久久精品成人一区二区三区| 国产精品久久久久aaaa九色| 久久精品一区二区三区中文字幕| 国产伪娘ts一区| 国产一区二区精品在线观看| 久久aⅴ国产紧身牛仔裤| 中日韩美女免费视频网址在线观看| 久久狠狠久久综合桃花| 国产日韩综合| 亚洲精品久久久久久久久久久| 欧美亚洲第一区| 欧美成人激情视频| 欧美日韩在线播放三区四区| 亚洲精品欧美日韩专区| 欧美日韩国产精品成人| 一本久道久久综合婷婷鲸鱼| 亚洲第一毛片| 欧美日韩亚洲天堂| 毛片基地黄久久久久久天堂| 午夜一区二区三区在线观看| 国语自产在线不卡| 欧美r片在线| 国内不卡一区二区三区| 国产精品久久久久久久久久久久| 欧美亚洲视频在线看网址| 欧美午夜精品理论片a级按摩| 亚洲精品中文字幕女同| 亚洲国产乱码最新视频| 国产精品国产| 快射av在线播放一区| 宅男精品导航| 久久久国产一区二区三区| 香蕉成人久久| 久久久久久噜噜噜久久久精品| 性欧美xxxx大乳国产app| 国产精品一区二区男女羞羞无遮挡| 国内在线观看一区二区三区| 久久成人精品一区二区三区| 免费人成网站在线观看欧美高清| 美女图片一区二区| 亚洲视频一二区| 国产乱码精品一区二区三区五月婷| 欧美激情视频免费观看| 狠狠色噜噜狠狠色综合久| 亚洲国产成人在线播放| 国产精品久久久久av| 亚洲综合成人婷婷小说| 亚洲片在线观看| 亚洲电影免费在线观看| 欧美日韩视频一区二区| 欧美精品久久久久久| 久久福利电影| 国产日韩精品在线观看| 136国产福利精品导航网址应用| 欧美国产精品劲爆| 香蕉精品999视频一区二区| 国产精品日韩专区| 国产精品中文在线| 亚洲国产成人精品久久| 老巨人导航500精品| 亚洲视频一区二区在线观看| 黄色成人在线| 欧美日韩免费观看一区=区三区| 91久久极品少妇xxxxⅹ软件| 狂野欧美性猛交xxxx巴西| 日韩亚洲欧美精品| 裸体女人亚洲精品一区| 伊人蜜桃色噜噜激情综合| 午夜在线精品| 国产精品高精视频免费| 久久精品欧美日韩| 欧美日韩午夜剧场| 香蕉成人啪国产精品视频综合网| 亚洲影院色在线观看免费| 欧美精品一二三| 欧美成人精品在线观看| 欧美成人亚洲| 欧美伊人久久久久久久久影院| 一本久久精品一区二区| 欧美一区午夜精品| 在线免费观看日本一区| 免费成人av资源网| 亚洲一区三区电影在线观看| 亚洲福利视频一区二区| 欧美一区二区三区视频免费| 亚洲国产日韩一区| 亚洲精品少妇网址|