国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>基于FLASH介質(zhì)嵌入式存儲(chǔ)方案的設(shè)計(jì)與實(shí)現(xiàn)

      直播推薦

      更多>

      企業(yè)動(dòng)態(tài)

      更多>

      推薦展會(huì)

      更多>

      基于FLASH介質(zhì)嵌入式存儲(chǔ)方案的設(shè)計(jì)與實(shí)現(xiàn)

      2009年03月24日 17:45:03人氣:1287來(lái)源:浙江啟揚(yáng)智能科技有限公司

      摘要:作為一種新型的存儲(chǔ)介質(zhì),flash以其優(yōu)良的特性,在嵌入式領(lǐng)域中得到了廣泛的應(yīng)用。本文通過(guò)分析flash介質(zhì)的自身特性,并結(jié)合嵌入式系統(tǒng)的特點(diǎn),設(shè)計(jì)實(shí)現(xiàn)于兼容性、可靠性以及開銷等方面都得到充分優(yōu)化的flash存儲(chǔ)系統(tǒng)。


      關(guān)鍵字嵌入式系統(tǒng)文件系統(tǒng)flash


      1引言


      flash(閃速存儲(chǔ)器)作為一種安全、快速的存儲(chǔ)體,具有體積小、容量大、成本低、掉電數(shù)據(jù)不丟失等一系列優(yōu)點(diǎn),已成為嵌入式系統(tǒng)中數(shù)據(jù)和程序zui主要的載體。由于flash在結(jié)構(gòu)和操作方式上與硬盤、e2rom等其他存儲(chǔ)介質(zhì)有較大區(qū)別,使用flash時(shí)必須根據(jù)其自身特性,對(duì)存儲(chǔ)系統(tǒng)進(jìn)行特殊設(shè)計(jì),以保證系統(tǒng)的性能達(dá)到*。


      2flash的特點(diǎn)


      flash是一種非易失性存儲(chǔ)器nvm(non-volatilememory),根據(jù)結(jié)構(gòu)的不同可以將其分成norflash和nandflash兩種。但不管哪一種都具有如下特點(diǎn):


      1.區(qū)塊結(jié)構(gòu)


      flash在物理結(jié)構(gòu)上分成若干個(gè)區(qū)塊,區(qū)塊之間相互獨(dú)立。比如norflash把整個(gè)memory分成若干個(gè)sector,而nandflash把整個(gè)memory分成若干個(gè)block;


      2.先擦后寫


      由于flash的寫操作只能將數(shù)據(jù)位從1寫成0,不能從0寫成1,所以在對(duì)存儲(chǔ)器進(jìn)行寫入之前必須先執(zhí)行擦操作,將預(yù)寫入的數(shù)據(jù)位初始化為1。擦操作的zui小單位是一個(gè)區(qū)塊,而不是單個(gè)字節(jié)。


      3.操作指令


      除了norflash的讀,flash的其它操作不能像ram那樣,直接對(duì)目標(biāo)地址進(jìn)行總線操作。比如執(zhí)行一次寫操作,它必須輸入一串特殊的指令(norflash),或者完成一段時(shí)序(nandflash)才能將數(shù)據(jù)寫入到flash中。


      4.位反轉(zhuǎn)


      由于flash固有的電器特性,在讀寫數(shù)據(jù)過(guò)程中,偶然會(huì)產(chǎn)生一位或幾位數(shù)據(jù)錯(cuò)誤。這就是位反轉(zhuǎn)。位反轉(zhuǎn)無(wú)法避免,只能通過(guò)其他手段對(duì)結(jié)果進(jìn)行事后處理。


      5.壞塊


      flash在使用過(guò)程中,可能導(dǎo)致某些區(qū)塊的損壞。區(qū)塊一旦損壞,將無(wú)法進(jìn)行修復(fù)。如果對(duì)已損壞的區(qū)塊進(jìn)行操作,可能會(huì)帶來(lái)不可預(yù)測(cè)的錯(cuò)誤。尤其是nandflash在出廠時(shí)就可能存在這樣的壞塊(已經(jīng)被標(biāo)識(shí)出)。


      3關(guān)鍵設(shè)計(jì)


      3.1flash通用設(shè)計(jì)


      對(duì)于一個(gè)嵌入式系統(tǒng),設(shè)備的兼容性越好,系統(tǒng)可行性就越好,產(chǎn)品也就越有競(jìng)爭(zhēng)力。所以,為了兼容不同類型的flash設(shè)備,對(duì)flash進(jìn)行通用設(shè)計(jì)至關(guān)重要。


      對(duì)于norflash,數(shù)據(jù)的讀操作可以通過(guò)獨(dú)立的數(shù)據(jù)總線和地址總線快速完成,然而norflash的其他操作需要通過(guò)特殊的指令來(lái)完成,更糟糕的是不同廠商生產(chǎn)的芯片這些指令互不相同。這就導(dǎo)致了設(shè)備的不兼容。


      對(duì)于nandflash,也存在這樣的問(wèn)題。nandflash可以根據(jù)相同的指令讀取芯片的廠商號(hào)和設(shè)備號(hào),從而通過(guò)識(shí)別設(shè)備號(hào)調(diào)用對(duì)應(yīng)的時(shí)序流程實(shí)現(xiàn)操作。但是,系統(tǒng)中太多的判斷,會(huì)使得程序的結(jié)構(gòu)變得非常復(fù)雜。所以,在一定的條件下,nandflash設(shè)備還是不兼容的。


      為了解決這一問(wèn)題,一個(gè)較好的方法是將flash的各個(gè)操作指令以及結(jié)構(gòu)特性按照統(tǒng)一的格式存放到flash中固定位置。系統(tǒng)初始化時(shí),將這個(gè)結(jié)構(gòu)讀入系統(tǒng),通過(guò)分析這個(gè)結(jié)構(gòu),可以獲得關(guān)于芯片所有相關(guān)信息,包括操作指令,區(qū)塊分布等等。這樣,系統(tǒng)可以輕松實(shí)現(xiàn)對(duì)不同型號(hào)flash的所有操作,極大地提高了設(shè)備的擴(kuò)展性。


      3.2雙模式文件系統(tǒng)設(shè)計(jì)


      嵌入式系統(tǒng)中文件數(shù)據(jù)的存放一般有兩種結(jié)構(gòu),一種是索引格式的線性結(jié)構(gòu),一種是非線性的鏈表式結(jié)構(gòu)。這兩種結(jié)構(gòu)各有優(yōu)缺點(diǎn)。比如對(duì)于系統(tǒng)配置、點(diǎn)陣字庫(kù)等一些具有固定結(jié)構(gòu)的系統(tǒng)數(shù)據(jù),索引結(jié)構(gòu)比鏈表式結(jié)構(gòu)更有效率。但對(duì)于經(jīng)常更新的用戶數(shù)據(jù),鏈表式結(jié)構(gòu)要比索引結(jié)構(gòu)更靈活。如果系統(tǒng)能將兩種結(jié)構(gòu)集成,勢(shì)必能將性能發(fā)揮到*。


      實(shí)現(xiàn)這種集成的方法是將設(shè)備定義成若干個(gè)分區(qū),每個(gè)分區(qū)相互獨(dú)立,不同分區(qū)可以使用不同的文件模式。這樣,不同類型的數(shù)據(jù)就可以根據(jù)自己的屬性選擇存放的分區(qū)。比如系統(tǒng)數(shù)據(jù)存放在使用索引線性結(jié)構(gòu)的分區(qū),用戶數(shù)據(jù)存放在使用鏈?zhǔn)椒蔷€性結(jié)構(gòu)的分區(qū)。


      3.3壞塊處理


      flash中的壞塊處理是一件很棘手的問(wèn)題,如果沒(méi)有有效的管理,對(duì)系統(tǒng)的穩(wěn)定性會(huì)造成嚴(yán)重影響。一個(gè)可行的解決方法是生成一張壞塊表,壞塊表中記錄所有壞塊的塊號(hào),并且按塊號(hào)從小到大排序,壞塊表在讀寫過(guò)程中動(dòng)態(tài)更新。當(dāng)讀寫數(shù)據(jù)時(shí),遍歷壞塊表中的塊號(hào),將文件的邏輯地址轉(zhuǎn)換成對(duì)應(yīng)flash物理地址,以保證所用的flash地址空間不存在壞塊。


      4系統(tǒng)實(shí)現(xiàn)


      4.1結(jié)構(gòu)定義



      圖1-存儲(chǔ)結(jié)構(gòu)


      系統(tǒng)的存儲(chǔ)結(jié)構(gòu)如圖1所示,在flash的block0位置存放整個(gè)系統(tǒng)zui重要的數(shù)據(jù)——系統(tǒng)記錄sr(systemrecord)。選擇block0的原因是一般flash出廠時(shí),都能保證block0是完好的,因此可以避免壞塊問(wèn)題帶來(lái)的不便。sr其實(shí)就是一個(gè)定義好的數(shù)據(jù)結(jié)構(gòu),它包括媒質(zhì)信息和文件系統(tǒng)信息兩部分。媒質(zhì)信息包括flash存儲(chǔ)器的類型、容量、塊類型的大小和數(shù)量(blockinfo)、flash操作命令(commandinfo)等。文件系統(tǒng)信息包括版本信息、各邏輯分區(qū)的起始地址(物理地址)和結(jié)束地址。flash設(shè)備可以被分成一個(gè)或多個(gè)邏輯分區(qū),每個(gè)邏輯分區(qū)采用的操作方式可以互不相同,如圖1中device0分區(qū)采用的是線性文件系統(tǒng),device1分區(qū)采用的是鏈?zhǔn)轿募到y(tǒng)。如果采用的是線性文件系統(tǒng),在分區(qū)信息后面加入文件索引表index起始地址、大小等信息;如果采用的是鏈?zhǔn)轿募到y(tǒng),則加入文件系統(tǒng)頁(yè)大小、文件分配表fat和文件登記表frt所在的位置等信息。


      文件登記表frt位于fat后的頁(yè)中,存放著邏輯分區(qū)中文件的信息,如文件總數(shù)、每個(gè)文件的文件代號(hào)、位置、長(zhǎng)度以及校驗(yàn)?zāi)J?。其中,校?yàn)?zāi)J接脕?lái)標(biāo)識(shí)文件讀寫時(shí)采用差錯(cuò)校驗(yàn)的級(jí)別。不同類型的文件采用不同級(jí)別的校驗(yàn)方式。0級(jí)不進(jìn)行校驗(yàn),1級(jí)ecc校驗(yàn),2級(jí)逐個(gè)字節(jié)比較。


      對(duì)于線性文件系統(tǒng)分區(qū),所有文件順序存儲(chǔ),讀取數(shù)據(jù)時(shí),直接通過(guò)index索引得到某個(gè)文件的邏輯起始地址,然后從這個(gè)地址開始順序搜索,獲取某個(gè)偏移位置下的n個(gè)連續(xù)byte。鏈?zhǔn)轿募到y(tǒng)是將地址空間分成若干個(gè)等分,即sector,它是操作的zui小單位;一個(gè)大文件可以分布在不連續(xù)的多個(gè)sector中,然后通過(guò)fat表將它們連接起來(lái);在flash介質(zhì)上實(shí)現(xiàn)鏈?zhǔn)轿募到y(tǒng),sector大小的選擇是一個(gè)關(guān)鍵,由于flash的寫操作,擦操作是以page,block為單位的,設(shè)小了使大塊結(jié)構(gòu)的flash寫操作復(fù)雜,設(shè)多了又浪費(fèi)空間,因此的選擇是將sector大小設(shè)為擦操作的zui小單位16k。


      整個(gè)邏輯分區(qū)中,index,fat,frt表中的內(nèi)容非常重要,一旦因?yàn)楫惓.a(chǎn)生錯(cuò)誤,可能會(huì)影響到所有文件;所以,這三個(gè)文件都做了備份處理,備份存放于不同的block中。同時(shí),在對(duì)他們處理時(shí),改寫表中的更新狀態(tài)。0xff表示開始更新,0x00表示更新結(jié)束。在文件系統(tǒng)初始化時(shí),讀取它們的更新狀態(tài),如果表中的更新狀態(tài)為0xff,說(shuō)明該表存在操作異常,可用備份表更正。


      4.2層次接口


      整個(gè)存儲(chǔ)系統(tǒng)分成三層,如圖2所示。



      圖2–層次結(jié)構(gòu)


      1.操作系統(tǒng)層


      在整個(gè)存儲(chǔ)系統(tǒng)中,操作系統(tǒng)扮演的是使用者的角色。當(dāng)需要數(shù)據(jù)時(shí),它通過(guò)調(diào)用文件系統(tǒng)層提供的接口函數(shù)獲取數(shù)據(jù),它不關(guān)心數(shù)據(jù)的來(lái)源和正確性。


      2.文件系統(tǒng)層


      文件系統(tǒng)層的任務(wù)是實(shí)現(xiàn)它和操作系統(tǒng)層的函數(shù)接口。在實(shí)現(xiàn)方式上,線性文件系統(tǒng)和鏈?zhǔn)轿募到y(tǒng)有較大區(qū)別。比如文件讀取mfread,線性文件系統(tǒng)直接讀取所要的字節(jié),而鏈?zhǔn)轿募到y(tǒng)是每次先把對(duì)應(yīng)的整個(gè)頁(yè)讀到文件緩沖區(qū),然后再把所需數(shù)據(jù)拷貝到讀到內(nèi)存。文件刪除mfde-lete,線性文件系統(tǒng)需要重新整理,不然就會(huì)因?yàn)榇罅康臄?shù)據(jù)空洞(由于空間太小,無(wú)法放入新文件的小塊區(qū)域)使得系統(tǒng)很快沒(méi)有可用空間。鏈?zhǔn)轿募到y(tǒng)只需修改文件系統(tǒng)的fat和frt,而不用做其他任何處理,當(dāng)下次寫入操作用到該塊時(shí),自動(dòng)完成擦除。


      3.驅(qū)動(dòng)層


      驅(qū)動(dòng)層的任務(wù)是完成與flash之間的通訊協(xié)議,實(shí)現(xiàn)它和文件系統(tǒng)層的函數(shù)接口。接口函數(shù)包括頁(yè)面讀mpageread,頁(yè)面寫mpagewrite,塊擦除mblockerase,隨機(jī)讀取mrnread,隨機(jī)寫入mrnwrite。mpageread,mpagewrite,mblockerase對(duì)整頁(yè)或塊進(jìn)行操作,在鏈?zhǔn)轿募到y(tǒng)中調(diào)用;mrnread,mrnwrite對(duì)字節(jié)單位進(jìn)行操作,在線性文件系統(tǒng)中調(diào)用。其中mrnwrite比較麻煩,以寫一個(gè)byte為例,它的操作分三步,首先將目標(biāo)塊中的所有數(shù)據(jù)讀到內(nèi)存buffer中,然后將要寫入的數(shù)據(jù)更新到buffer,擦除目標(biāo)塊,zui后將已更新的buffer寫回到目標(biāo)塊,這里的buffer大小是一個(gè)block。由于嵌入式系統(tǒng)的內(nèi)存資源比較緊張,系統(tǒng)采用了塊交換技術(shù)以降低成本,方法是在flash中搜索一個(gè)空閑塊,用它充當(dāng)buffer的角色。


      5結(jié)論


      通過(guò)上面的設(shè)計(jì),所實(shí)現(xiàn)的存儲(chǔ)系統(tǒng)具有以下的特點(diǎn):


      1.使用通用模式設(shè)計(jì),增強(qiáng)了系統(tǒng)對(duì)flash設(shè)備的兼容性;
      2.使用雙模式文件結(jié)構(gòu)設(shè)計(jì),使不同類型的數(shù)據(jù)處理效率同時(shí)達(dá)到*;
      3.使用地址映射表,屏蔽了壞塊帶來(lái)的隱患,增強(qiáng)了系統(tǒng)的健壯性;
      4.對(duì)重要數(shù)據(jù)采用備份保護(hù),保證不會(huì)因?yàn)閿嚯姷犬惓?dǎo)致系統(tǒng)的崩潰,增強(qiáng)了系統(tǒng)穩(wěn)定性;
      5.采用塊交換技術(shù),節(jié)約系統(tǒng)成本;
      6.進(jìn)行分級(jí)差錯(cuò)校驗(yàn),提高了系統(tǒng)的執(zhí)行效率;


      因此,本文所設(shè)計(jì)的flash存儲(chǔ)系統(tǒng),非常適合于嵌入式系統(tǒng)的應(yīng)用。


      參考文獻(xiàn)


      [1]mikeficco.《如何在嵌入式電子設(shè)備中建立多媒體文件系統(tǒng)》.電子工程專輯,2004.02
      [2]董明,劉加,劉潤(rùn)生.《適宜于嵌入式多媒體應(yīng)用的flash文件系統(tǒng)》.21ic,2003.3
      [3]賈東耀.《uclinux下norflash的jffs2文件系統(tǒng)構(gòu)建》.21ic,2004.12
      [4]吳雨俊.《嵌入式系統(tǒng)中的線性flash文件系統(tǒng)設(shè)計(jì)》.21ic,2004.12

      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來(lái)源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請(qǐng)必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來(lái)源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品來(lái)源,并自負(fù)版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉(cāng)儲(chǔ)物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請(qǐng)發(fā)送郵件至:(郵件標(biāo)題請(qǐng)備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)
      智能制造網(wǎng)APP

      功能豐富 實(shí)時(shí)交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號(hào)

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號(hào):gkzhan

      打開抖音 搜索頁(yè)掃一掃

      視頻號(hào)

      智能制造網(wǎng)

      公眾號(hào):智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號(hào)

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618