專利名稱:一種基于flash的小型數(shù)據(jù)備份及查詢方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)存儲技術(shù)領(lǐng)域,尤其涉及一種基于FLASH的小型數(shù)據(jù)備份及查詢方法。
背景技術(shù):
數(shù)據(jù)備份在單片機系統(tǒng)下有重要的意義,數(shù)據(jù)備份的方式也有多種,有SD卡存儲的,有EEROM的,有FLASH存儲的。FLASH由于其功能靈活豐富,使用方便,而被單片機系統(tǒng)在數(shù)據(jù)備份時廣泛采用。Flash存儲芯片是通過SPI總線方式與單片機連接,具體的連接如圖I所示,單片機把采集到的最新數(shù)據(jù)按照算法規(guī)定的格式和順序,放在指定的緩存里面。新數(shù)據(jù)覆蓋上個周期的數(shù)據(jù),根據(jù)時序信號,把緩存里的數(shù)據(jù)通過SPI總線寫入flash。一般FLASH ROM由多個扇區(qū)組成,一個扇區(qū)包含多個頁面,頁面由若干字節(jié)構(gòu)成。由于制作エ藝的原因,F(xiàn)LASH ROM可以一次寫入一個或多個字節(jié),但擦除時必須要以扇區(qū)或頁面為操作 単位,或整個芯片同時擦除,且操作次數(shù)是有限的,所以應用時一般要實現(xiàn)均勻磨損,平均使用各個扇區(qū)以達到最大工作壽命。針對管理設備,處理器的需要處理其他的任務,如數(shù)據(jù)的采集、處理,因此,數(shù)據(jù)的備份的寫入要簡單,查找要方便,在小型數(shù)據(jù)備份應用中還要求代碼空間占用小,占用CPU資源比較少,現(xiàn)有的基于FLASH的小型數(shù)據(jù)備份方法,需使用多重循環(huán)在整個芯片范圍內(nèi)查找存儲位置和查詢點,使得數(shù)據(jù)存儲和查詢不夠簡潔快速,無法克服單片機資源有限,處理速度慢的瓶頸。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于FLASH的小型數(shù)據(jù)備份及查詢方法,該方法針對字符串長度和備份周期固定的小型數(shù)據(jù),能夠使得數(shù)據(jù)存儲和查詢都簡潔快速,有效克服了單片機資源有限,處理速度慢的瓶頸。本發(fā)明的技術(shù)方案是為實現(xiàn)上述目的,本發(fā)明提供一種基于FLASH的小型數(shù)據(jù)備份方法,該方法的步驟如下
(1).將單片機采集到的數(shù)據(jù)和與之相對應的時間放入其內(nèi)存中,在單片機數(shù)據(jù)區(qū)建立兩個FLASH緩存區(qū),ー個為數(shù)據(jù)的寫入讀取緩存區(qū),另ー個是時間和日期的寫入讀出緩存區(qū),把最新的數(shù)據(jù)和最新的時間放入緩存區(qū),新數(shù)據(jù)覆蓋上個周期的數(shù)據(jù);
(2).將FLASH芯片分為H個存儲扇區(qū),每個存儲扇區(qū)等分為F個存儲頁面;
(3).建立數(shù)據(jù)的備份時間和FLASH存儲區(qū)位置之間的映射關(guān)系,根據(jù)FLASH的扇區(qū)數(shù)H、每個扇區(qū)的頁面數(shù)F、每個頁面的字節(jié)數(shù)、單條備份數(shù)據(jù)固定的字節(jié)數(shù)和備份周期,計算出單個頁面的存儲數(shù)據(jù)條數(shù)、單個扇區(qū)存儲數(shù)據(jù)條數(shù)、單個頁面存儲時間、單個扇區(qū)存儲時間和整個FLASH芯片的存儲時間;
(4).把第一個備份的數(shù)據(jù)備份到FLASH芯片第一個存儲扇區(qū)的第一個存儲頁面的第ー個位置,并在該存儲頁面的最后位置寫入首次備份的時間標簽,隨著時間的推移,存儲芯片數(shù)據(jù)備份位置也依次向前推進,第一個存儲頁面達到其設定的存儲數(shù)據(jù)條數(shù)后自動轉(zhuǎn)換到下ー個存儲頁,依次類推,當?shù)谝粋€儲扇區(qū)存儲滿后,自動轉(zhuǎn)向第二個扇區(qū),待整個扇區(qū)存儲滿后,再從第一個扇區(qū)開始新的ー個周期的數(shù)據(jù)備份;
(5).把緩存區(qū)內(nèi)的數(shù)據(jù)寫入FLASH芯片,在備份數(shù)據(jù)的時刻,每個扇區(qū)在開始備份前需要做擦除操作,每開始ー個新的頁面,都要在該存儲頁面最后位置處寫入該頁面的首次備份時間標簽。所述的步驟(3)中計算單個頁面的存儲數(shù)據(jù)條數(shù)時需要留一到兩條數(shù)據(jù)空間做余量。所述的備份方法對于沒有運行的單片機系統(tǒng)的間斷運行時間段,F(xiàn)LASH芯片存儲區(qū)是空白的。為實現(xiàn)上述目的,本發(fā)明提供一種基于FLASH的小型數(shù)據(jù)查詢方法,該查詢方法是在上述備份方法的基礎上實現(xiàn)的,該查詢方法的步驟如下
(1).將單片機采集到的數(shù)據(jù)和與之相對應的時間放入其內(nèi)存中,在單片機數(shù)據(jù)區(qū)建立兩個FLASH緩存區(qū),ー個為數(shù)據(jù)的寫入讀取緩存區(qū),另ー個是時間和日期的寫入讀出緩存區(qū),把最新的數(shù)據(jù)和最新的時間放入緩存區(qū),新數(shù)據(jù)覆蓋上個周期的數(shù)據(jù);
(2).將FLASH芯片分為H個存儲扇區(qū),每個存儲扇區(qū)等分為F個存儲頁面;
(3).建立數(shù)據(jù)的備份時間和FLASH存儲區(qū)位置之間的映射關(guān)系,根據(jù)FLASH的扇區(qū)數(shù)H、每個扇區(qū)的頁面數(shù)F、每個頁面的字節(jié)數(shù)、單條備份數(shù)據(jù)固定的字節(jié)數(shù)和備份周期,計算出單個頁面的存儲數(shù)據(jù)條數(shù)、單個扇區(qū)存儲數(shù)據(jù)條數(shù)、單個頁面存儲時間、單個扇區(qū)存儲時間和整個FLASH芯片的存儲時間;
(4).把第一個備份的數(shù)據(jù)備份到FLASH芯片第一個存儲扇區(qū)的第一個存儲頁面的第ー個位置,并在該存儲頁面的最后位置寫入首次備份的時間標簽,隨著時間的推移,存儲芯片數(shù)據(jù)備份位置也依次向前推進,第一個存儲頁面達到其設定的存儲數(shù)據(jù)條數(shù)后自動轉(zhuǎn)換到下ー個存儲頁,依次類推,當?shù)谝粋€儲扇區(qū)存儲滿后,自動轉(zhuǎn)向第二個扇區(qū),待整個扇區(qū)存儲滿后,再從第一個扇區(qū)開始新的ー個周期的數(shù)據(jù)備份;
(5).把緩存區(qū)內(nèi)的數(shù)據(jù)寫入FLASH芯片,在備份數(shù)據(jù)的時刻,每個扇區(qū)在開始備份前需要做擦除操作,每開始ー個新的頁面,都要在該存儲頁面最后位置處寫入該頁面的首次備份時間標簽;
(6).在接收到歷史數(shù)據(jù)命令查詢時,在單片機數(shù)據(jù)區(qū)建立歷史數(shù)據(jù)讀取緩存,將查詢的歷史數(shù)據(jù)時間和歷史數(shù)據(jù)數(shù)量放入歷史數(shù)據(jù)讀取緩存中;
(7).判斷該查詢的歷史數(shù)據(jù)時間是否在整個FLASH芯片備份數(shù)據(jù)的存儲數(shù)間內(nèi),如果超過最長時間,直接返回查詢時間超出查詢范圍,如果沒有超出,計算出查詢的歷史數(shù)據(jù)時間的開始位置,讀出該位置所處存儲頁的時間標簽;
(8).判斷該時間標簽與查詢的歷史數(shù)據(jù)時間是否相同,如果相同,開始讀取數(shù)據(jù)到輸出緩存中,如果不同,按照數(shù)據(jù)存儲位置與時間的映射關(guān)系,找到該查詢時間所對應的存儲位置,讀取該存儲位置的數(shù)據(jù)到輸出緩存中,把輸出緩存中的數(shù)據(jù)帶上時間標簽后輸出;
(9).讀出一條數(shù)據(jù)后,檢查數(shù)據(jù)指針是否到達頁面結(jié)束位置,如果到達就轉(zhuǎn)向下ー個頁面,更換新的頁面時還要判斷是否達到扇區(qū)結(jié)束位置,如果達到就轉(zhuǎn)向下ー個扇區(qū),直至數(shù)據(jù)讀取結(jié)束。所述的步驟(3)中計算單個頁面的存儲數(shù)據(jù)條數(shù)時需要留一到兩條數(shù)據(jù)空間做余量。所述的查詢方法對于沒有運行的單片機系統(tǒng)的間斷運行時間段,F(xiàn)LASH芯片存儲區(qū)是空白的,對于數(shù)據(jù)備份的中斷時間段內(nèi),F(xiàn)LASH是空白的,數(shù)據(jù)的輸出以XX代替。本發(fā)明的有益效果是通過利用存儲數(shù)據(jù)的時間點和存儲位置的影射關(guān)系,在每個數(shù)據(jù)存儲頁開始寫數(shù)之前,寫入ー個時間標簽。數(shù)據(jù)存儲時以扇區(qū)為操作単位,每個扇區(qū)都有相似的存儲結(jié)構(gòu),通過扇區(qū)號和頁面時間標簽鑒別前后順序。當一個扇區(qū)存滿數(shù)據(jù)時,查找最早使用過的扇區(qū),清除該扇區(qū),將之作為當前工作扇區(qū),如此可實現(xiàn)均勻磨損,使得數(shù)據(jù)存儲和查詢都簡潔快速,有效克服了單片機資源有限,處理速度慢的瓶頸。
圖I是數(shù)據(jù)備份硬件結(jié)構(gòu)框圖
圖2是時間點與存儲位置映射關(guān)系 圖3是數(shù)據(jù)備份的流程 圖4是歷史數(shù)據(jù)讀取流程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
做進ー步說明。本發(fā)明的一種基于FLASH的小型數(shù)據(jù)備份方法的實施例
一種基于FLASH的小型數(shù)據(jù)備份方法,該方法實現(xiàn)的的硬件結(jié)構(gòu)框圖如圖I所示,包括單片機和FLASH存儲芯片,F(xiàn)LASH存儲芯片是通過SPI總線方式與單片機連接。在某綜合氣象數(shù)據(jù)采集器中,氣象數(shù)據(jù)的備份頻率為一分鐘ー組,一組數(shù)據(jù)的內(nèi)容有38個字節(jié),單片機采用C8051F020,數(shù)據(jù)備份的芯片采用M25P16,F(xiàn)LASH存儲結(jié)構(gòu),2M存儲空間,32個扇區(qū),ー個扇區(qū)有256個存儲頁,一個頁面可以存儲256字節(jié)。該氣象數(shù)據(jù)基于FLASH芯片的備份方法步驟如下
1.將單片機C8051F020采集到的氣象數(shù)據(jù)和與之相對應的時間放入單片機內(nèi)存中,在單片機C8051F020數(shù)據(jù)區(qū)建立兩個FLASH緩存區(qū),ー個為數(shù)據(jù)的寫入讀取緩存區(qū),另ー個是時間和日期的寫入讀出緩存區(qū),把最新的數(shù)據(jù)和最新的時間放入緩存區(qū),新數(shù)據(jù)覆蓋上個周期的數(shù)據(jù);
2.將FLASH芯片M25P16分為32個存儲扇區(qū),每個存儲扇區(qū)等分為256個存儲頁面;
3.建立數(shù)據(jù)的備份時間和FLASH芯片M25P16存儲區(qū)位置之間的映射關(guān)系,根據(jù)FLASH的扇區(qū)數(shù)32、每個扇區(qū)的頁面數(shù)256、每個頁面的字節(jié)數(shù)256、單條備份數(shù)據(jù)固定的字節(jié)數(shù)38和備份周期I分鐘,單個頁面可以備份6分鐘數(shù)據(jù),一個扇區(qū)可備份一天的數(shù)據(jù),保留部分余量,整個芯片可備份ー個月的完整數(shù)據(jù),時間日期和芯片存儲區(qū)位置的映射關(guān)系,扇區(qū)(sector)=日(day) -1,存儲頁(page)=小時(hour) *10+ 分鐘(min) /6,偏移量(offset)=姆組數(shù)據(jù)字節(jié)38*分鐘(min) %6 ;
4.把第一個備份的數(shù)據(jù)備份到FLASH芯片第一個存儲扇區(qū)的第一個存儲頁面的第一個位置,在該存儲頁面的最后10個字節(jié)處寫入首次備份的時間,隨著時間的推移,存儲芯片數(shù)據(jù)備份位置也依次向前推進,第一個存儲頁面?zhèn)浞?分鐘的存儲數(shù)據(jù)后自動轉(zhuǎn)換到下ー個存儲頁,依次類推,當?shù)谝粋€儲扇區(qū)存滿I天的數(shù)據(jù)后,自動轉(zhuǎn)向第二個扇區(qū),待整個扇區(qū)存儲滿后,再從第一個扇區(qū)開始新的ー個周期的數(shù)據(jù)備份;
5.把緩存區(qū)內(nèi)的數(shù)據(jù)寫入FLASH芯片,在備份數(shù)據(jù)的時刻,每個扇區(qū)在開始備份前需要做擦除操作,首先判斷該扇區(qū)是否為新的扇區(qū),每開始ー個新的頁面,首先要在該存儲頁面最后10字節(jié)位置處寫入該頁面的首次備份時間標簽;
對于沒有運行的單片機系統(tǒng)的間斷運行時間段,F(xiàn)LASH芯片存儲區(qū)是空白的。該備份方法中FLASH芯片也可以采用整個頁面的擦除方式,此時需要每個頁面在開始備份前做擦除操作,采用這種方式可以使FLASH芯片內(nèi)備份的數(shù)據(jù)保存的時間更長。本發(fā)明的一種基于FLASH的小型數(shù)據(jù)查詢方法的實施例
其硬件結(jié)構(gòu)框圖如圖I所示,包括單片機和FLASH存儲芯片,F(xiàn)LASH存儲芯片是通過SPI總線方式與單片機連接。在某綜合氣象數(shù)據(jù)采集器中,氣象數(shù)據(jù)的備份頻率為一分鐘ー組,一組數(shù)據(jù)的內(nèi)容有38個字節(jié),單片機采用C8051F020,數(shù)據(jù)備份的芯片采用M25P16, FLASH存儲結(jié)構(gòu),2M存儲空間,32個扇區(qū),ー個扇區(qū)有256個存儲頁,一個頁面可以存儲256字節(jié)。首先將氣象數(shù)據(jù)按照上述實施例中的備份方法備份到FLASH芯片中,其具體的流程如圖3所示,在這里就不再重復描述,下面對以此備份方法為基礎的查詢方法進行說明,該查詢方法包括如下步驟
1.當系統(tǒng)接收到歷史數(shù)據(jù)查詢命令時,在單片機數(shù)據(jù)區(qū)建立歷史數(shù)據(jù)讀取緩存,將查詢的歷史數(shù)據(jù)時間和歷史數(shù)據(jù)數(shù)量放入歷史數(shù)據(jù)讀取緩存中;
2.判斷該查詢的歷史數(shù)據(jù)時間是否在最近一個月之內(nèi)的時間,如果不是,直接返回查詢時間超出查詢范圍,如果沒有超出,計算出查詢的歷史數(shù)據(jù)時間的開始位置,讀出該位置所處存儲頁的時間標簽;
3.判斷該時間標簽與查詢的歷史數(shù)據(jù)時間是否相同,如果相同,開始讀取數(shù)據(jù)到輸出緩存中,如果不同,按照數(shù)據(jù)存儲位置與時間的映射關(guān)系,找到該查詢時間所對應的存儲位置,讀取該存儲位置的數(shù)據(jù)到輸出緩存中,把輸出緩存中的數(shù)據(jù)帶上時間標簽后輸出;
4.讀出一條數(shù)據(jù)后,檢查數(shù)據(jù)指針是否到達頁面結(jié)束位置,如果到達就轉(zhuǎn)向下ー個頁面,更換新的頁面時還要判斷是否達到扇區(qū)結(jié)束位置,如果達到就轉(zhuǎn)向下ー個扇區(qū),直至數(shù)據(jù)讀取結(jié)束。所述的查詢方法對于沒有運行的單片機系統(tǒng)的間斷運行時間段,F(xiàn)LASH芯片存儲區(qū)是空白的,對于數(shù)據(jù)備份的中斷時間段內(nèi),F(xiàn)LASH是空白的,數(shù)據(jù)的輸出以XX代替。該基于FLASH的小型數(shù)據(jù)備份及查詢方法在某綜合氣象數(shù)據(jù)采集器中得到了成功使用,從近百臺采集器連續(xù)運兩年的情形來看,數(shù)據(jù)的存儲效果良好,數(shù)據(jù)的讀取和存儲方便有效。此外,最近把該算法成功移植到某能見度儀嵌入式軟件中,備份能見度數(shù)據(jù),數(shù)據(jù)分為三塊,第一、采樣數(shù)據(jù)及其相關(guān)信號值,存儲頻率為15秒一次;第二、瞬時能見度值及其相關(guān)信號,存儲頻率為一分鐘一次;第三、整點能見度值及整點內(nèi)的極值,存儲頻率為ー小時一次,從目前的運行效果來看,運行正常。
權(quán)利要求
1.一種基于FLASH的小型數(shù)據(jù)備份方法,其特征在于該方法的步驟如下 (1).將單片機采集到的數(shù)據(jù)和與之相對應的時間放入其內(nèi)存中,在單片機數(shù)據(jù)區(qū)建立兩個FLASH緩存區(qū),一個為數(shù)據(jù)的寫入讀取緩存區(qū),另一個是時間和日期的寫入讀出緩存區(qū),把最新的數(shù)據(jù)和最新的時間放入緩存區(qū),新數(shù)據(jù)覆蓋上個周期的數(shù)據(jù); (2).將FLASH芯片分為H個存儲扇區(qū),每個存儲扇區(qū)等分為F個存儲頁面; (3).建立數(shù)據(jù)的備份時間和FLASH存儲區(qū)位置之間的映射關(guān)系,根據(jù)FLASH的扇區(qū)數(shù)H、每個扇區(qū)的頁面數(shù)F、每個頁面的字節(jié)數(shù)、單條備份數(shù)據(jù)固定的字節(jié)數(shù)和備份周期,計算出單個頁面的存儲數(shù)據(jù)條數(shù)、單個扇區(qū)存儲數(shù)據(jù)條數(shù)、單個頁面存儲時間、單個扇區(qū)存儲時間和整個FLASH芯片的存儲時間; (4).把第一個備份的數(shù)據(jù)備份到FLASH芯片第一個存儲扇區(qū)的第一個存儲頁面的第一個位置,并在該存儲頁面的最后位置寫入首次備份的時間標簽,隨著時間的推移,存儲芯片數(shù)據(jù)備份位置也依次向前推進,第一個存儲頁面達到其設定的存儲數(shù)據(jù)條數(shù)后自動轉(zhuǎn)換到下一個存儲頁,依次類推,當?shù)谝粋€儲扇區(qū)存儲滿后,自動轉(zhuǎn)向第二個扇區(qū),待整個扇區(qū)存儲滿后,再從第一個扇區(qū)開始新的一個周期的數(shù)據(jù)備份; (5).把緩存區(qū)內(nèi)的數(shù)據(jù)寫入FLASH芯片,在備份數(shù)據(jù)的時刻,每個扇區(qū)在開始備份前需要做擦除操作,每開始一個新的頁面,都要在該存儲頁面最后位置處寫入該頁面的首次備份時間標簽。
2.根據(jù)權(quán)利要求I所述的備份方法,其特征在于所述的步驟(3)中計算單個頁面的存儲數(shù)據(jù)條數(shù)時需要留一到兩條數(shù)據(jù)空間做余量。
3.根據(jù)權(quán)利要求I或2所述的備份方法,其特征在于所述的備份方法對于沒有運行的單片機系統(tǒng)的間斷運行時間段,F(xiàn)LASH芯片存儲區(qū)是空白的。
4.一種基于FLASH的小型數(shù)據(jù)查詢方法,其特征在于所該查詢方法的步驟如下 (1).將單片機采集到的數(shù)據(jù)和與之相對應的時間放入其內(nèi)存中,在單片機數(shù)據(jù)區(qū)建立兩個FLASH緩存區(qū),一個為數(shù)據(jù)的寫入讀取緩存區(qū),另一個是時間和日期的寫入讀出緩存區(qū),把最新的數(shù)據(jù)和最新的時間放入緩存區(qū),新數(shù)據(jù)覆蓋上個周期的數(shù)據(jù); (2).將FLASH芯片分為H個存儲扇區(qū),每個存儲扇區(qū)等分為F個存儲頁面; (3).建立數(shù)據(jù)的備份時間和FLASH存儲區(qū)位置之間的映射關(guān)系,根據(jù)FLASH的扇區(qū)數(shù)H、每個扇區(qū)的頁面數(shù)F、每個頁面的字節(jié)數(shù)、單條備份數(shù)據(jù)固定的字節(jié)數(shù)和備份周期,計算出單個頁面的存儲數(shù)據(jù)條數(shù)、單個扇區(qū)存儲數(shù)據(jù)條數(shù)、單個頁面存儲時間、單個扇區(qū)存儲時間和整個FLASH芯片的存儲時間; (4).把第一個備份的數(shù)據(jù)備份到FLASH芯片第一個存儲扇區(qū)的第一個存儲頁面的第一個位置,并在該存儲頁面的最后位置寫入首次備份的時間標簽,隨著時間的推移,存儲芯片數(shù)據(jù)備份位置也依次向前推進,第一個存儲頁面達到其設定的存儲數(shù)據(jù)條數(shù)后自動轉(zhuǎn)換到下一個存儲頁,依次類推,當?shù)谝粋€儲扇區(qū)存儲滿后,自動轉(zhuǎn)向第二個扇區(qū),待整個扇區(qū)存儲滿后,再從第一個扇區(qū)開始新的一個周期的數(shù)據(jù)備份; (5).把緩存區(qū)內(nèi)的數(shù)據(jù)寫入FLASH芯片,在備份數(shù)據(jù)的時刻,每個扇區(qū)在開始備份前需要做擦除操作,每開始一個新的頁面,都要在該存儲頁面最后位置處寫入該頁面的首次備份時間標簽; (6).在接收到歷史數(shù)據(jù)命令查詢時,在單片機數(shù)據(jù)區(qū)建立歷史數(shù)據(jù)讀取緩存,將查詢的歷史數(shù)據(jù)時間和歷史數(shù)據(jù)數(shù)量放入歷史數(shù)據(jù)讀取緩存中; (7).判斷該查詢的歷史數(shù)據(jù)時間是否在整個FLASH芯片備份數(shù)據(jù)的存儲數(shù)間內(nèi),如果超過最長時間,直接返回查詢時間超出查詢范圍,如果沒有超出,計算出查詢的歷史數(shù)據(jù)時間的開始位置,讀出該位置所處存儲頁的時間標簽; (8).判斷該時間標簽與查詢的歷史數(shù)據(jù)時間是否相同,如果相同,開始讀取數(shù)據(jù)到輸出緩存中,如果不同,按照數(shù)據(jù)存儲位置與時間的映射關(guān)系,找到該查詢時間所對應的存儲位置,讀取該存儲位置的數(shù)據(jù)到輸出緩存中,把輸出緩存中的數(shù)據(jù)帶上時間標簽后輸出; (9).讀出一條數(shù)據(jù)后,檢查數(shù)據(jù)指針是否到達頁面結(jié)束位置,如果到達就轉(zhuǎn)向下一個頁面,更換新的頁面時還要判斷是否達到扇區(qū)結(jié)束位置,如果達到就轉(zhuǎn)向下一個扇區(qū),直至數(shù)據(jù)讀取結(jié)束。
5.根據(jù)權(quán)利要求4所述的基于FLASH的小型數(shù)據(jù)查詢方法,其特征在于所述的步驟(3)中計算單個頁面的存儲數(shù)據(jù)條數(shù)時需要留一到兩條數(shù)據(jù)空間做余量。
6.根據(jù)權(quán)利要求4或5所述的基于FLASH的小型數(shù)據(jù)查詢方法,其特征在于所述的查詢方法對于沒有運行的單片機系統(tǒng)的間斷運行時間段,F(xiàn)LASH芯片存儲區(qū)是空白的,對于數(shù)據(jù)備份的中斷時間段內(nèi),F(xiàn)LASH是空白的,數(shù)據(jù)的輸出以XX代替。
全文摘要
本發(fā)明涉及一種基于FLASH的小型數(shù)據(jù)的備份及查詢方法,該方法針對字符串長度和備份周期固定的小型數(shù)據(jù),通過建立備份數(shù)據(jù)的時間日期和FLASH芯片存儲區(qū)位置的影射關(guān)系,不需使用多重循環(huán)在整個芯片范圍內(nèi)查找存儲位置和查詢點,只需在每個數(shù)據(jù)存儲頁開始寫數(shù)之前,寫入一個時間標簽。數(shù)據(jù)存儲時以扇區(qū)為操作單位,通過扇區(qū)號和頁面時間標簽鑒別前后順序。當一個扇區(qū)存滿數(shù)據(jù)時,查找最早使用過的扇區(qū),清除該扇區(qū),將之作為當前工作扇區(qū),如此可實現(xiàn)均勻磨損。使得數(shù)據(jù)存儲和查詢都簡潔快速,有效克服了單片機資源有限,處理速度慢的瓶頸。
文檔編號G06F17/30GK102819468SQ20121002741
公開日2012年12月12日 申請日期2012年2月8日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者周鋒, 魏國栓, 王國新 申請人:凱邁(洛陽)環(huán)測有限公司