新四季網

FLASH數據讀寫方法及系統與流程

2023-09-12 13:51:00


本發明涉及數據存儲領域,特別涉及一種flash數據讀寫方法及系統。
背景技術:
:針對嵌入式系統領域的相關設備,用戶要求實時保存設備運行的數據,連續記錄時間不少於5分鐘,每分鐘數據不少於60條記錄,且有足夠存儲空間,數據掉電不丟失,存儲器的使用壽命不小於20年。每條記錄長度20byte(8bit/byte),前面14byte存放的是設備的狀態及各種信息,後面6byte存放的是實時的年、月、日、時、分、秒。目前,保存數據的方法有:硬碟、電子盤、ram外加電池、flash快閃記憶體等。其中,硬碟、電子盤成本高、體積大;ram外加電池的方法由於使用了電池,電池壽命短,不能滿足要求;flash快閃記憶體由於其存儲空間大、價格低廉等優勢,被廣泛的應用到各類的嵌入式系統中。傳統的flash內部分為多個存儲單元頁(page),存儲單元頁是可擦除的最小單位,字節或字是寫入數據的最小單位。flash存儲器的寫操作和一般的存儲器不同,flash的寫操作必須先將存儲單元擦除,然後再寫入。由於flash擦寫次數有限,頻繁的對flash存儲器進行擦寫會影響其使用壽命,若不採取特殊處理,壽命不能滿足要求。技術實現要素:本發明主要解決的技術問題是提供一種嵌入式系統(或單片機內置)內置flash數據存儲、快速查找方法,該發明可以避免使用ram外加電池降低使用壽命,也可以避免使用硬碟、電子盤增加成本、增大體積,也不需要增加片外存儲器、減小產品單板面積和降低成本。既降低flash的擦寫次數,解決使用壽命問題,也解決上電能快速查找到上次關機時最後存儲記錄的位置。針對上述存在的問題,本發明提供了一種flash數據讀寫方法,其特徵在於:在flash中分配n頁為數據存儲區,用於存放數據記錄,其中一頁作為索引區,其餘n-1頁作為記錄區,所述方法包括:步驟s101:判斷所述目標頁nm是否寫滿,若未寫滿執行s102,若寫滿則轉到如下步驟s1a~s1c;步驟s102:將所述待寫入數據順序寫入所述記錄區的目標頁nm中;步驟s1a:擦除所述記錄區的頁nm+2的信息即將該頁內容全部置為0xff的標識信息;步驟s1b:將所述數據記錄區中所述待寫入數據的頁nm+1的頁碼號順序寫入所述索引區;步驟s1c:將所述待寫入數據順序寫入所述記錄區的頁nm+1中;所述步驟s1b之前還包括如下步驟:步驟s201:判斷所述索引區是否寫滿,若寫滿則執行步驟s202;若未寫滿執行步驟s1b;步驟s202:擦除所述索引區所有存儲單元信息即將該頁內容全部置為0xff的標識信息;步驟s203:頁nm+1的頁碼號寫入所述索引區第一個存儲單元;所述記錄區的n-1頁為一個循環隊列的存儲區。進一步地,所述方法還包括如下步驟,在所述flash啟動時,在所述步驟s101之前還執行如下步驟:步驟s301:從所述索引區的最後存儲單元開始逆向查找,查找有無存儲單元中的信息是否等於0xff的標識信息,若不是,則執行步驟s302;步驟s302:讀取所述索引區存儲的頁碼信息nm,nm即為最後存入的數據記錄所在頁碼;步驟s303:從所述記錄區第nm頁中的最後存儲單元開始逆向查找,查找存儲單元中的信息是否等於0xff的標識信息,若不是,該字節所處的地址w是最後存入數據記錄的存儲位置;步驟s304:判斷是寫數據還是讀數據,若是寫數據,則轉到步驟s305;若是讀數據則轉到讀數據子程序p1,所述子程序p1為從m頁w地址開始逆嚮往前讀取記錄,根據給定的參數計算讀取數據的長度,進而讀取數據相應flash的數據直到讀取結束;步驟s305:將所述待寫入數據寫入所述的nm頁的地址w之後的存儲單元。進一步地,所述步驟s305之前還包括:步驟s401:判斷地址w是否在頁nm的最後位置,如是即表示頁nm已存滿數據,則轉至步驟s1a,若不是,則執行步驟s305。進一步地,步驟s301之後進一步包括:步驟s501:若所述索引區及記錄區為0xff的標識信息,則執行步驟s502,若不是,則轉到步驟s302;步驟s502:所述索引區第一個單元寫入所述待寫入數據的目標頁的頁碼信息;步驟s503:按步驟s102執行。進一步地,所述索引區為所述數據存儲區的第一頁或最後一頁。另外一方面本發明還公開了一種flash數據讀寫系統,其特徵在於:該系統包括:存儲區劃分模塊,用於在flash中分配n頁為數據存儲區用於存放數據記錄,且每頁含有相同存儲單元,其中用一頁作為索引區,其餘n-1頁作為記錄區,所述系統還包括:數據寫入模塊:含索引區寫入模塊和記錄區寫入模塊,索引區寫入模塊將數據記錄區待寫入數據的目標頁nm的頁碼號寫入索引區存儲單元;記錄區寫入模塊:將數據順序寫入記錄區的目標頁nm中;第一判斷模塊:判斷數據記錄區的目標頁nm是否寫滿,寫滿後到待寫目標頁由nm頁變為nm+1頁;第一擦除模塊:擦除記錄區的目標頁nm後第二頁nm+2的信息即將該頁內容全部置為為特定標識信息。進一步地,該系統還包括:第二判斷模塊:判斷所述索引區的是否寫滿,寫滿後則轉至第二擦除模塊;第二擦除模塊:擦除所述索引區的信息,即將該頁內容全部置為所述特定標識信息;進一步地,該系統還包括:記錄查詢模塊:在系統掉電重啟後查詢掉電前記錄所在的位置,先查詢所述索引區記錄所在的頁碼,然後到相應頁碼中找到記錄的具體位置。本發明還公開了一種flash數據讀寫系統,其特徵在於,所述系統包括:存儲單元陣列、控制位線以及處理器,其中所述處理器執行如權利要求1-5中任意一項所述的權利要求的步驟完成數據讀寫。進一步地,所述索引區和所述記錄區每頁含有相同存儲單元。按照本發明實現的flash數據讀寫方法和系統,其索引號不是固定在一個存儲單元,而是在一個頁內順序存儲,指引記錄區已存入數據記錄的頁碼號,存儲滿後擦除再存儲;而數據記錄存儲在多個頁內,數據記錄每存儲滿一頁後,即擦除存滿數據的頁的下下頁的數據,即只是擦除一頁數據,故連續記錄時間長,大大降低了flash的擦寫次數,提高了flash的壽命。既解決flash的擦寫使用壽命問題,也解決了上電能快速查找到上次關機時最後存儲記錄的位置。附圖說明:圖1為本發明的flash數據讀寫方法主程序流程圖;圖2為本發明的flash數據讀寫方法掉電後重啟的程序流程圖一;圖3為本發明的flash數據讀寫方法掉電後重啟的程序流程圖二;圖4為本發明的嵌入式系統flash數據讀寫系統結構框圖一;圖5為本發明的嵌入式系統flash數據讀寫系統結構框圖二;圖6為本發明的嵌入式系統flash數據讀寫系統結構框圖三。具體實施方式下面結合實施例,對本發明進一步說明,下述實施例是說明性的,不是限定性的,不能經下述實施例限定本發明的保護範圍。以armcortex-m3核微控制器的內置flash為例,詳細說明本發明的技術方案的實現。armcortex-m3核微控制器內置flash存儲結構分配如表1。第0—10頁為程序存儲區,第11頁至第126頁即共116頁為數據存放區,其中第11頁為數據存放區的數據索引區,也可第126頁設為數據索引區,其餘115頁為數據記錄區;第127頁為參數配置存放區。表1armcortex-m3核微控制器內置flash存儲結構分配在下載程序代碼時,將數據存放區第11~第126頁的信息擦除,即存儲器單元內容全部置為標識信息0xff。設備投入使用後,根據要求定時保存記錄。記錄按要求保存在數據存放區的目標頁,先將該目標頁的頁碼號寫入索引區,然後將需要記錄的數據按先後順序寫入該目標頁中。如圖1所示,為按照本發明實現的flash數據讀寫方法的主要程序流程示意圖,具體為:步驟s101:判斷所述目標頁nm是否寫滿,若未寫滿執行s102,若寫滿則轉到如下步驟s1a~s1c;步驟s102:產品投入首次上電後,記錄區第一頁即第12頁的頁碼號寫入索引區即數據存放區第11頁的第一個存儲單元,步驟s103:需要記錄的數據按先後順序寫入記錄區的第一頁即第12頁中;步驟s104:第一頁即第12頁寫滿時,採用如下步驟:步驟s1a:擦除記錄區的第三頁即第14頁的信息即為0xff的標識信息;步驟s1b:將記錄區第二頁即第13頁的頁碼號按順序寫入索引區第二個存儲單元;步驟s1c:需要記錄的數據順序寫入記錄區的第二頁即頁13中;記錄區的n-1頁即第12與第126頁之間為一個列隊循環的存儲區,頁碼號順序存儲在索引區。flash只能從偶數地址開始存儲信息,所以索引區有1k字節的存儲量,而記錄區每一個循環的頁碼量是115,故循近9次索引區才能被寫滿。步驟s1b之前還包括:步驟s202:預先判斷索引區存儲單元是否寫滿,若寫滿則執行步驟202;若未寫滿執行步驟s1b;步驟s202:擦除索引區所有存儲單元信息即將該頁內容全部置為0xff的標識信息;步驟s203:頁nm+1的頁碼號寫入索引區第一個存儲單元。本發明的技術方案在設備使用中掉電後重新啟動時,首先查找上次關機時最後寫入記錄的存儲位置。然後根據上述方法繼續在上次存放記錄的後面順序存放記錄或根據設定讀取記錄。如圖示2所示,具體如下:步驟s301:從頁11索引區的最後存儲單元開始往回查找,查找某字節不為0xff示意如表2,其中0x**、nm-2、nm-1、nm(m取值範圍在12~126之間)表示該數據不是0xff,步驟s302:讀取索引區該存儲單元中的存儲的頁碼信息nm,nm即為最後存入的數據記錄所在頁碼,即表示掉電前最後記錄存放在第nm頁中。步驟s303:從第nm頁中的最後存儲單元開始往回查找,找到w單元的數據內容不是0xff,即查找上次關機時最後存入的記錄的存儲位置。示意如表3。步驟s304:新採集數據信息按步驟s102寫入所述的nm頁的地址w之後的存儲單元;或從地址w的存儲單元開始,任意讀取前面的n條記錄,即執行p1操作。表1索引區第11頁中的頁碼存放示意圖(2k存儲器)0x**0x**0x**0x**0x**0x**0x**0x**…………………………nm-2nm-1nm0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff……………………0xff0xff0xff0xff0xff0xff0xff0xff表2記錄區第12頁~第126頁數據存放示意圖步驟s304:存放新的數據時,在上次關機時最後存儲位置即nm頁的地址w之後順序存儲記錄,待nm頁存滿則按步驟s103執行;讀取數據時從最後存儲記錄的位置開始,可以任意讀取前面n條記錄(n<11673)。作為本發明的一個實施例,若索引區頁11所有單元是0xff,則按如圖3所示流程執行。如本發明按照用戶要求,每秒存儲一條記錄,每條記錄20byte,可以連續記錄196分鐘的數據,遠大於連續記錄5分鐘的要求。經計算數據存儲區使用壽命為37.34年(其中記錄區使用壽命為37.34年,索引區使用壽命為332.5年),滿足20年的使用要求。與上述方法對應的,本發明提供一種嵌入式系統flash數據讀寫系統,其結構框圖如圖4、圖5、圖6所示,圖5、圖6所示的讀寫系統分別是對圖4所示系統的改進。具體為一種嵌入式系統(或單片機內置)flash數據讀寫系統,該系統包括n頁相同的存儲單元,其中用一頁作為索引區,其餘n-1頁作為記錄區,該系統還包括:數據寫入模塊:包括索引區寫入單元和記錄區寫入單元,索引區寫入單元用於將數據記錄區待寫入的數據的目標頁nm的頁碼號寫入索引區存儲單元;記錄區寫入模塊:將數據順序寫入記錄區存儲單元的目標頁nm中;第一判斷模塊:用於判斷數據記錄區存儲單元中的目標頁nm是否寫滿,寫滿後將待寫目標頁由nm變為nm+1;第一擦除模塊:擦除記錄區存儲單元中的目標頁nm後第二頁nm+2的信息的內容全部置為0xff的標識信息;如圖5所示,按照本發明的另外一種實施方式,第二判斷模塊:用於判斷索引區存儲單元是否寫滿,寫滿後則轉至第二擦除模塊;第二擦除模塊:擦除記索引區存儲單元的信息即將該頁內容全部置為特定標識信息;其中該特定標識信息可以為0xff。如圖6所示,更進一步的,本發明中的系統還包括如下部分:在本系統中,在發生掉電的情況下,調用記錄查詢模塊,用於在系統掉電重啟後查詢掉電前記錄所在的位置,其中查找掉電前記錄所在的位置的方式為,先查詢索引區記錄所在的頁碼,然後到對應頁碼中找到記錄信息的具體位置,其中具體為:從第nm頁中的最後存儲單元開始逆向查找,查找存儲單元中的信息是否等於特定標識信息,若不是,該字節所處的地址w是最後存入數據記錄的存儲位置。當然,在具體的flash的實施系統中,具體上述flash系統包括存儲單元陣列、位線以及位線控制器等,並且在上述硬體實施的基礎上,按照如上述的控制方式來對系統中的flash的數據的讀寫進行控制。本領域的技術人員容易理解,以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。當前第1頁12

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀