亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于flashrom的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法

文檔序號:6465562閱讀:271來源:國知局
專利名稱:基于flash rom的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)采集系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種基于FLASH ROM的 數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法。
背景技術(shù)
在數(shù)據(jù)采集系統(tǒng)中,常使用FLASH ROM進(jìn)行數(shù)據(jù)備份,并使用針對 FLASH ROM的成熟文件系統(tǒng)(如U盤文件系統(tǒng))實(shí)現(xiàn)備份操作,這種方法 的好處是功能豐富靈活,使用方便,而缺點(diǎn)是占用系統(tǒng)資源比較多,特別是 占用代碼空間比較多。在小型數(shù)據(jù)采集應(yīng)用中,由于代碼空間限制等原因, 針對FLASH ROM的成熟文件系統(tǒng)一般無法應(yīng)用,因此有必要提出一種基于 FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備 份方法,使用該方法備份數(shù)據(jù)占用系統(tǒng)資源少,占用代碼空間小。
一種基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中包括 如下步驟
a) 、進(jìn)入定時中斷初始化流程,同時,進(jìn)入串口中斷初始化流程、串口緩 沖初始化流程;
b) 、進(jìn)入數(shù)據(jù)備份變量初始化流程;
c) 、判斷是否收到數(shù)據(jù)采集消息信號,若是,接收數(shù)據(jù)采集器當(dāng)前采集到 的數(shù)據(jù),之后進(jìn)入步驟d);若否,直接進(jìn)入步驟d);
d) 、判斷是否收到數(shù)據(jù)備份消息信號,若是,備份接收到的當(dāng)前數(shù)據(jù),備
份動作完成后,進(jìn)入步驟e);若否,直接進(jìn)入步驟e);
8e) 、判斷是否收到建立數(shù)據(jù)索引消息信號,若是,建立備份數(shù)據(jù)塊索引, 之后進(jìn)入步驟f);若否,直接返回步驟f);
f) 、進(jìn)入系統(tǒng)命令處理流程;
g) 、返回步驟c)。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 數(shù)據(jù)備份變量初始化步驟a)中包括如下步驟
M)、建立有效扇區(qū)數(shù)為0、臨時流水變量為0、臨時扇區(qū)指針為0、臨時 頁面指針為0;
b2)、在數(shù)據(jù)采集系統(tǒng)處理器的內(nèi)存中建立第一數(shù)據(jù)緩沖;
b3)、讀取臨時扇區(qū)指針指向的FLASH ROM扇區(qū)索引到步驟b2)建立的
第一數(shù)據(jù)緩沖中;
b4)、從該第一數(shù)據(jù)緩沖中讀取當(dāng)前扇區(qū)數(shù)據(jù)標(biāo)志并判斷該扇區(qū)是否有效;
b5)、若當(dāng)前扇區(qū)有效,將有效扇區(qū)數(shù)+1,并從上述第一數(shù)據(jù)緩沖中讀取 當(dāng)前扇區(qū)流水號;若當(dāng)前扇區(qū)無效,進(jìn)入步驟b8);
b6)、判斷當(dāng)前扇區(qū)流水號是否大于臨時流水變量,若是,進(jìn)入步驟b7), 若否,進(jìn)入步驟b8);
b7)、將所述當(dāng)前扇區(qū)流水號寫入到臨時流水變量,當(dāng)前扇區(qū)指針指向臨 時扇區(qū)指針;
b8)、將臨時扇區(qū)指針+1;
b9)、判斷臨時扇區(qū)指針是否大于FLASHROM器件的扇區(qū)數(shù),若是,進(jìn) 入步驟b10),若否,返回步驟b3);
b10)、判斷有效扇區(qū)數(shù)是否為0,若是,進(jìn)入步驟bl8),若否,進(jìn)入步驟 bll);
bll)、讀取當(dāng)前扇區(qū)指針指向的扇區(qū)位圖到第一數(shù)據(jù)緩沖; b12)、從第一數(shù)據(jù)緩沖中讀取臨時頁面指針指向的位圖數(shù)據(jù);b13)、根據(jù)位圖數(shù)據(jù)判斷該位圖數(shù)據(jù)對應(yīng)的頁面是否為空,若是,將臨時
頁面指針+l后返回步驟bl2);若否,進(jìn)入步驟bl4); b14)、將當(dāng)前頁面指針指向臨時頁面指針;
b15)、判斷臨時頁面指針是否大于FLASH ROM器件的扇區(qū)數(shù),若是, 進(jìn)入步驟M6),若否,進(jìn)入步驟b21);
M6)、將當(dāng)前扇區(qū)指針+1;
M7)、進(jìn)行FLASH ROM器件邊界處理;
b18)、擦除當(dāng)前扇區(qū);
b19)、重新建立扇區(qū)索引;
b20)、將當(dāng)前頁面指針設(shè)為1;
b21)、建立數(shù)據(jù)塊索引;
b22)、建立頁面索引;
b23)、當(dāng)前偏移指針移動,跳過當(dāng)前頁面索引;
b24)、結(jié)束初始化。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 進(jìn)入定時中斷流程的步驟a)中包括如下步驟 al)、數(shù)據(jù)采集系統(tǒng)的計時器開始計時;
a2)、判斷數(shù)據(jù)采集定時周期是否到期,若是,發(fā)出數(shù)據(jù)采集消息信號, 之后進(jìn)入步驟a3),若否,直接進(jìn)入步驟a3);
a3)、判斷數(shù)據(jù)備份定時周期是否到期,若是,發(fā)出數(shù)據(jù)備份消息信號, 之后進(jìn)入步驟a4),若否,直接進(jìn)入步驟a4);
a4)、判斷數(shù)據(jù)索引定時周期是否到期,若是,發(fā)出數(shù)據(jù)索引消息信號, 之后進(jìn)入步驟a5),若否,直接進(jìn)入步驟a5);
a5)、定時中斷流程結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其步驟d)中的"備份接收到的當(dāng)前數(shù)據(jù)"包括下列步驟
dl)、建立FLASH ROM操作緩沖;
d2)、將當(dāng)前數(shù)據(jù)寫入該操作緩沖中;
d3)、將操作緩沖內(nèi)的數(shù)據(jù)寫入FLASH ROM;
d4)、當(dāng)前偏移指針移動所寫入FLASH ROM數(shù)據(jù)的長度;
d5)、進(jìn)入當(dāng)前頁面邊界檢査流程;
d6)、備份數(shù)據(jù)流程結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 步驟d5)中進(jìn)入當(dāng)前頁面邊界檢查的流程包括如下步驟
d5 1)、判斷是否到達(dá)當(dāng)前頁面的邊界,若是,進(jìn)入步驟d511),若否, 進(jìn)入步驟d5lV);
d511)、進(jìn)入更新當(dāng)前工作頁面的流程;
d5111)、頁面更新后,建立當(dāng)前頁面的索引;
d5lV)、頁面邊界檢查結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 步驟d5ll)中進(jìn)入更新當(dāng)前工作頁面的流程包括如下步驟
d511①)、判斷是否到達(dá)當(dāng)前扇區(qū)的邊界,若是,進(jìn)入步驟d511②),若 否,將當(dāng)前頁面指針加l后,進(jìn)入步驟d5ll⑥);
d511② d5 II③ d5 II d5 II⑤ d5 II⑥ d5 II⑦
d5 no
將當(dāng)前扇區(qū)流水號加h
搜索最小流水號的扇區(qū)作為當(dāng)前扇區(qū);
擦除當(dāng)前扇區(qū)內(nèi)的數(shù)據(jù);
建立當(dāng)前扇區(qū)的索引;
在扇區(qū)位圖中標(biāo)記當(dāng)前頁面;
建立頁面索引;
更新當(dāng)前頁面結(jié)束。據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其
步驟d5 II )中建立當(dāng)前扇區(qū)的索引的流程包括如下步驟
d5ll i)、在數(shù)據(jù)采集系統(tǒng)處理器的內(nèi)存中建立第二數(shù)據(jù)緩沖; d5ll⑤ii)、將有無數(shù)據(jù)的標(biāo)志、當(dāng)前扇區(qū)的流水號、當(dāng)前時間寫入該第
二數(shù)據(jù)緩沖中;
d5ll⑤iii)、將第二數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到FLASH ROM當(dāng)前扇區(qū)的首
頁;
d5ll⑤iv)、建立所寫入的數(shù)據(jù)塊的索引; d5ll⑤v)、建立扇區(qū)索引結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 步驟d5 IId)iv)中所述的建立所寫入數(shù)據(jù)塊索引的流程包括如下步驟 d5 II ◎ iv 1 .)在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第三數(shù)據(jù)緩沖; d5ll⑤iv 2.)將當(dāng)前時間、當(dāng)前工作頁面等寫入第三數(shù)據(jù)緩沖; d5 II(Div 3.)在FLASHROM當(dāng)前扇區(qū)首頁中搜索最小地址索引空間; d5 II(Div 4.)將該第三數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到該索引空間中; d5 11⑤iv 5.)建立數(shù)據(jù)塊索引結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中所 述步驟d5lll)中建立當(dāng)前頁面索引的流程包括如下步驟
d5111①)、在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第四數(shù)據(jù)緩沖; d5111②)、將當(dāng)前時間、當(dāng)前備份數(shù)據(jù)種類寫入第四數(shù)據(jù)緩沖; d5111③)、將第四數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到當(dāng)前頁面開始處; d5lll )、建立頁面索引結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 步驟a)中所述串口中斷處理流程包括如下步驟
al,)、判斷數(shù)據(jù)采集系統(tǒng)串口中斷處理命令是否到達(dá),若是,將該處理命令字節(jié)寫入處理器的命令緩沖中,之后進(jìn)入步驟a2,);若否,直接進(jìn)入步驟 a2,);
a2')、串口信號發(fā)送處理; a3')、串口中斷處理流程結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 步驟f)中進(jìn)入系統(tǒng)命令處理流程包括如下步驟
fl)、判斷命令格式是否有效,若是,進(jìn)入步驟f2),若否,進(jìn)入步驟f4);
f2)、判斷數(shù)據(jù)讀取命令是否匹配(該匹配指的是什么與什么匹配?如何 是匹配的?)若是,進(jìn)入步驟f3);若否,進(jìn)入步驟f5); f3)、進(jìn)行歷史數(shù)據(jù)讀取處理流程;
f4)、發(fā)送命令錯誤提示信號,并清除命令緩沖中的數(shù)據(jù); f5)、系統(tǒng)命令處理結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中其 歩驟f3)中所述歷史數(shù)據(jù)讀取處理流程包括如下步驟
f3 I )、在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第五數(shù)據(jù)緩沖;
f3H)、從處理器的命令緩沖中讀取歷史數(shù)據(jù)的存儲時間;
fiIII)、根據(jù)讀取到的歷史數(shù)據(jù)的存儲時間,進(jìn)入查詢數(shù)據(jù)流程;
f3IV)、判斷查詢是否命中,若是,進(jìn)入步驟f3V),若否,進(jìn)入步驟f3VlI);
f3V)、從FLASH ROM中讀取歷史數(shù)據(jù)到第五數(shù)據(jù)緩沖;
f3VI)、將第五數(shù)據(jù)緩沖中的數(shù)據(jù)通過串口發(fā)送到上位機(jī);
fivn)、發(fā)送査詢未命中提示信息;
f3Wl)、歷史數(shù)據(jù)讀取處理流程結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中步
驟GIII)中所述的査詢數(shù)據(jù)流程包括如下步驟 f3IIIl.)、搜索扇區(qū)計數(shù);f3III2.)、判斷搜索的扇區(qū)是否有效,若是,進(jìn)入步驟f31113.),若否,進(jìn) 入步驟f3III10.);
f31113.)、搜索數(shù)據(jù)塊索引計數(shù),搜索到后,進(jìn)入步驟f3III4.); f31114.)、判斷搜索到的數(shù)據(jù)塊索引日期是否與要求的歷史數(shù)據(jù)的時間匹 配,若是,進(jìn)入步驟fil115.),若否,進(jìn)入步驟f3III9.); f31115.)、搜索頁面計數(shù);
f3111 6.)、判斷搜索的頁面索引時間是否與要求的歷史數(shù)據(jù)的時間匹配, 若是,返回命中信號,結(jié)束查詢數(shù)據(jù)流程,若否,進(jìn)入步驟f3III7.);
f31117.)、判斷該扇區(qū)頁面是否搜索完,若是,進(jìn)入步驟f31118.),若否, 返回步驟f3111 3.);
f31118.)、判斷該扇區(qū)數(shù)據(jù)塊索引是否搜索完,若是,進(jìn)入步驟f31119.), 若否,返回步驟GIIIl.)、
f31119.)、判斷是否已將全部扇區(qū)搜索完,若是,進(jìn)入步驟f311110.),若否, 返回步驟f3IIU.);
f311110.)、返回未命中信號,結(jié)束查詢數(shù)據(jù)流程。
本發(fā)明采用上述技術(shù)方案將達(dá)到如下的技術(shù)效果
本發(fā)明提供的一種基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,是利用了小型數(shù)據(jù)備份時數(shù)據(jù)流量小、數(shù)據(jù)具有嚴(yán)格時間順序的特點(diǎn), 數(shù)據(jù)存儲時以扇區(qū)為操作單位,每個扇區(qū)都有相似的存儲結(jié)構(gòu),通過流水號 和索引鑒別前后順序;當(dāng)一個扇區(qū)存滿數(shù)據(jù)時,査找最早使用過的扇區(qū),清 除該扇區(qū),將之作為當(dāng)前工作扇區(qū),如此可實(shí)現(xiàn)均勻磨損。
每個扇區(qū)都由索引和數(shù)據(jù)區(qū)組成,索引包括扇區(qū)索引和頁索引。扇區(qū)索 引位于扇區(qū)首頁,包括扇區(qū)有效數(shù)據(jù)標(biāo)志、流水號、頁面使用情況位圖、數(shù) 據(jù)塊索引,其數(shù)據(jù)塊索引包括數(shù)據(jù)塊開始日期、時間和扇區(qū),其建立周期由 用戶根據(jù)數(shù)據(jù)流量、扇區(qū)大小和數(shù)據(jù)查詢時間等權(quán)衡建立;頁索引包括頁面數(shù)據(jù)開始的日期、時間、數(shù)據(jù)備份類型、數(shù)據(jù)備份周期等;頁索引后面的空
間就是數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)內(nèi)的數(shù)據(jù)格式由用戶根據(jù)應(yīng)用需求定義。
數(shù)據(jù)采集系統(tǒng)工作時,根據(jù)設(shè)定的周期和種類將數(shù)據(jù)備份存儲到FLASH ROM中,在存儲的過程中按照要求的格式建立扇區(qū)索引和頁面索引。
在査詢數(shù)據(jù)時,先搜索數(shù)據(jù)塊索引,當(dāng)日期命中后搜索對應(yīng)的頁索引, 這種兩級索弓I可以很快確定有無目標(biāo)數(shù)據(jù)。
綜上,本方法占用系統(tǒng)資源很少,只需要幾千字節(jié)的代碼即可實(shí)現(xiàn),且占 用變量內(nèi)存也很小,很適合小型數(shù)據(jù)備份應(yīng)用;從扇區(qū)使用過程可以看出, 本方法實(shí)現(xiàn)了均勻磨損;另外,兩級索引可以實(shí)現(xiàn)快速搜索。


圖1為數(shù)據(jù)采集系統(tǒng)工作流程圖2為數(shù)據(jù)備份變量初始化流程圖3為系統(tǒng)定時中斷流程圖4為備份數(shù)據(jù)流程圖5為當(dāng)前頁面邊界檢查流程圖6為更新當(dāng)前工作頁面流程圖7為建立扇區(qū)索引流程圖8為建立數(shù)據(jù)塊索引流程圖9為建立頁面索引流程圖IO為串口中斷處理流程圖11為系統(tǒng)命令處理流程圖12為歷史數(shù)據(jù)讀取處理流程圖13為査詢數(shù)據(jù)流程圖14為能見度儀數(shù)據(jù)采集裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
實(shí)施例
一種基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,應(yīng)用于能見 度儀的數(shù)據(jù)采集裝置結(jié)構(gòu)圖如圖14所示,該數(shù)據(jù)采集裝置包括采集信號并將 信號轉(zhuǎn)換成數(shù)據(jù)信號的傳感器、處理器CPU、 FLASH ROM和上位機(jī),處理 器CPU采用芯片AT89C51ED2,傳感器通過傳感器接口與處理器CPU連接, FLASH ROM采用型號為M24P16,是一個SPI接口的16Mbits器件,其通過 SPI接口與處理器CPU連接,處理器CPU還通過RS232接口與上位機(jī)(PC 機(jī))連接,處理器CPU采集傳感器信號,處理后將信號通過RS232 口發(fā)送到 PC機(jī),并按照要求的周期和格式將信號存儲到FLASH ROM中,實(shí)現(xiàn)數(shù)據(jù)備 份。當(dāng)PC機(jī)通過命令向處理器CPU發(fā)出備份數(shù)據(jù)讀取要求,處理器CPU經(jīng) 過査詢后,如果存在要求的數(shù)據(jù),就從FLASH ROM中讀出該數(shù)據(jù),并按規(guī) 定的格式發(fā)送到PC。
在方法實(shí)施前,首先需定義扇區(qū)索引、頁面索引格式,本實(shí)施例中定義 的扇區(qū)索引、頁面索引格式如下-
扇區(qū)索引格式
偏移量字節(jié)數(shù)定義 作用
0 1 數(shù)據(jù)有無標(biāo)識0x59有數(shù)據(jù)0xFF無數(shù)據(jù)其他
(如0x00 0x01 0xF0是非法的,即不符合本方法的錯誤)用于標(biāo)記數(shù)據(jù)有 無
11保留...
44流水號,從小到大用于判斷扇區(qū)間數(shù)據(jù)存儲順序
84保留...
123保留...
151保留...
1632bitmap for every page用于判斷頁面是否有數(shù)據(jù)
1648 4
52 3
55 1
56 4 60 3 63 1
頁面索引格式 偏移量字節(jié)數(shù) 0 4 4 3 7 1
數(shù)據(jù)采集系統(tǒng)的工作流程如圖1所示,其包括如下步驟
a) 、進(jìn)入定時中斷流程,同時進(jìn)入串口中斷處理流程;
b) 、進(jìn)入數(shù)據(jù)備份變量初始化流程;
c) 、判斷是否收到數(shù)據(jù)采集消息信號,若是,接收數(shù)據(jù)采集器當(dāng)前采集到 的數(shù)據(jù),之后進(jìn)入步驟d);若否,直接進(jìn)入步驟d);
d) 、判斷是否收到數(shù)據(jù)備份消息信號,若是,備份接收到的當(dāng)前數(shù)據(jù),備 份動作完成后,進(jìn)入步驟e);若否,直接進(jìn)入步驟e);
e) 、判斷是否收到建立數(shù)據(jù)索引消息信號,若是,建立備份數(shù)據(jù)塊索引, 之后進(jìn)入步驟f);若否,直接返回步驟f);
f) 、進(jìn)入系統(tǒng)命令處理流程,-
g) 、返回步驟c)。
其中,如圖2所示,所述步驟a)中的數(shù)據(jù)備份變量初始化流程包括如下
date日期 數(shù)據(jù)快l索引開始 time日寸間
page數(shù)據(jù)開始的頁
date日期 數(shù)據(jù)快2索引開始 time時間
page數(shù)據(jù)開始的頁
定義 作用
date日期 記錄本頁數(shù)據(jù)開始的日期
time時間 記錄本頁數(shù)據(jù)開始的時間
備份種類 記錄本頁數(shù)據(jù)的種類步驟
bl)、建立有效扇區(qū)數(shù)為0、臨時流水變量為0、臨時扇區(qū)指針為0、臨時 頁面指針為0;(有效扇區(qū)指的是存儲有采集到的信號數(shù)據(jù),并且該扇區(qū)內(nèi)索 引格式符合本實(shí)施例對其的上述定義,有效扇區(qū)數(shù)建立在CPU內(nèi)存中,是全
局變量;所述的幾個臨時變量都是局部變量,建立在CPU內(nèi)存中,臨時變量
只在初始化程序中起作用,是計算初始化變量的中間變量。)
b2)、在數(shù)據(jù)采集系統(tǒng)處理器的內(nèi)存中建立第一數(shù)據(jù)緩沖(這個第一數(shù)據(jù)
緩沖是臨時數(shù)據(jù)緩沖,初始化程序執(zhí)行完后該緩沖即被釋放,為描述清楚,
這里將其標(biāo)注為第一數(shù)據(jù)緩沖);
b3)、讀取臨時扇區(qū)指針指向的FLASH ROM扇區(qū)索引到步驟b2)建立的 第一數(shù)據(jù)緩沖中;
b4)、從該第一數(shù)據(jù)緩沖中讀取當(dāng)前扇區(qū)數(shù)據(jù)標(biāo)志(即數(shù)據(jù)有無標(biāo)識,詳 見扇區(qū)索引格式),并判斷該扇區(qū)是否有效(是否有效指的是是否符合本實(shí)施 例扇區(qū)索引格式中定義的標(biāo)識數(shù)據(jù)0x59);
b5)、若當(dāng)前扇區(qū)有效,將有效扇區(qū)數(shù)+1,并從上述第一數(shù)據(jù)緩沖中讀取 當(dāng)前扇區(qū)流水號(所述扇區(qū)流水號是扇區(qū)索引格式中規(guī)定的從小到大的4字 節(jié)整數(shù),用于判斷不同扇區(qū)中數(shù)據(jù)存儲的前后順序,它可以保證在系統(tǒng)時鐘 紊亂時,仍然能判斷出備份數(shù)據(jù)的順序);若當(dāng)前扇區(qū)無效,進(jìn)入步驟b8);
b6)、判斷當(dāng)前扇區(qū)流水號是否大于臨時流水變量,若是,進(jìn)入步驟b7), 若否,進(jìn)入步驟b8);
b7)、將所述當(dāng)前扇區(qū)流水號寫入到臨時流水變量,當(dāng)前扇區(qū)指針指向臨 時扇區(qū)指針;
b8)、將臨時扇區(qū)指針+1;
b9)、判斷臨時扇區(qū)指針是否大于FLASHROM器件的扇區(qū)數(shù),若是,進(jìn) 入步驟b10),若否,返回步驟b3);b10)、判斷有效扇區(qū)數(shù)是否為0,若是,進(jìn)入步驟bl8),若否,進(jìn)入步驟 bll);
bll)、讀取當(dāng)前扇區(qū)指針指向的扇區(qū)位圖到第一數(shù)據(jù)緩沖;(扇區(qū)位圖用 于標(biāo)記扇區(qū)內(nèi)頁面是否為空,以一個位代表一個頁面,本實(shí)施例中定義為0 表示該頁面已有數(shù)據(jù),l表示該頁面是空的;通過位圖可以迅速確定當(dāng)前頁面 中空余的頁面,也為搜索數(shù)據(jù)提供依據(jù))
b12)、從第一數(shù)據(jù)緩沖中讀取臨時頁面指針指向的位圖數(shù)據(jù);
b13)、判斷位圖數(shù)據(jù)是否為1,若是,將臨時頁面指針+1后返回步驟bl2); 若否,進(jìn)入步驟bl4);
b14)、將當(dāng)前頁面指針指向臨時頁面指針;(這就是初始化的目的,將幾 個關(guān)鍵變量如扇區(qū)指針、頁面指針、偏移指針賦予合適的值);
b15)、判斷臨時頁面指針是否大于FLASH ROM器件的扇區(qū)數(shù)(臨時頁
面指針是臨時變量,初始化結(jié)束和即被釋放,用來判斷相應(yīng)扇區(qū)的頁面情況), 若是,進(jìn)入步驟bl6),若否,進(jìn)入步驟b21);
b16)、將當(dāng)前扇區(qū)指針+1;
b17)、進(jìn)行FLASH ROM器件邊界處理;
b18)、擦除當(dāng)前扇區(qū);(這里的當(dāng)前扇區(qū)即步驟bl6)中進(jìn)行加l操作后的
扇區(qū))
b19)、重新建立扇區(qū)索引; b20)、將當(dāng)前頁面指針設(shè)為1;
b21)、建立數(shù)據(jù)塊索引;(因其是在初始化過程中建立的索引,所以也叫 初始索引,具體建立過程見圖8)
b22)、建立頁面索引;(頁面索引建立過程如圖9,建立后的頁面索引是 符合本實(shí)施例定義的頁面索引格式的一個8字節(jié)數(shù)據(jù)塊)
b23)、使當(dāng)前偏移指針=8,即使當(dāng)前偏移指針跳過頁面索引;(偏移指針與扇區(qū)指針、頁面指針一起指示當(dāng)前備份數(shù)據(jù)在FLASH ROM中的位置,使 偏移指針=8是為了跳過8字節(jié)的頁面索引。) b24)、結(jié)束初始化。
所述步驟a)進(jìn)入定時中斷流程,見圖3所示,包括如下步驟
al)、數(shù)據(jù)采集系統(tǒng)的計時器開始計時;(數(shù)據(jù)采集系統(tǒng)的計時器在本實(shí)施 例中是利用了 CPUAT89C51中的脈沖計數(shù)器)
a2)、判斷數(shù)據(jù)采集定時周期是否到期,若是,發(fā)出數(shù)據(jù)采集消息信號, 之后進(jìn)入步驟a3),若否,直接進(jìn)入步驟a3);
a3)、判斷數(shù)據(jù)備份定時周期是否到期,若是,發(fā)出數(shù)據(jù)備份消息信號, 之后進(jìn)入步驟a4),若否,直接進(jìn)入步驟a4);
a4)、判斷數(shù)據(jù)索引定時周期是否到期,若是,發(fā)出數(shù)據(jù)索引消息信號, 之后進(jìn)入步驟a5),若否,直接進(jìn)入步驟a5);
a5)、定時中斷流程結(jié)束。
所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其步驟d) 中的備份接收到的當(dāng)前數(shù)據(jù)的流程如圖4所示,包括下列步驟-dl)、建立FLASH ROM操作緩沖; d2)、將當(dāng)前數(shù)據(jù)寫入該操作緩沖中; d3)、將操作緩沖內(nèi)的數(shù)據(jù)寫入FLASH ROM;
d4)、當(dāng)前偏移指針移動所寫入FLASH ROM數(shù)據(jù)的長度;(移動后當(dāng)前 偏移指針是指向FLASH ROM當(dāng)前頁面中已建立的頁面索引和己存在的數(shù)據(jù) 的總長度的末尾)
d5)、進(jìn)入當(dāng)前頁面邊界檢查流程;
d6)、備份數(shù)據(jù)流程結(jié)束。
上述步驟d5)中進(jìn)入當(dāng)前頁面邊界檢查的流程,如圖5所示,包括如下步d5 1)、判斷是否到達(dá)當(dāng)前頁面的邊界,若是,進(jìn)入步驟d511),若否, 進(jìn)入步驟d5lV);
d511)、進(jìn)入更新當(dāng)前工作頁面的流程; d5111)、頁面更新后,建立當(dāng)前頁面的索引; d5lV)、頁面邊界檢査結(jié)束。
上述步驟d5ll)中進(jìn)入更新當(dāng)前工作頁面的流程,如圖6,包括如下步驟: d511①)、判斷是否到達(dá)當(dāng)前扇區(qū)的邊界,若是,進(jìn)入步驟d511②),若
否,將當(dāng)前頁面指針加l后,進(jìn)入步驟d5n⑥);
d5 II② d5 II③ d5 II d5 II⑤ d5 II (T d5 II⑦ d5歸
將當(dāng)前扇區(qū)流水號加1;
搜索最小流水號的扇區(qū)作為當(dāng)前扇區(qū);
擦除當(dāng)前扇區(qū)內(nèi)的數(shù)據(jù);
建立當(dāng)前扇區(qū)的索引;
在扇區(qū)位圖中標(biāo)記當(dāng)前頁面;
建立頁面索引;(建立頁面索引的流程也如圖9所示) 更新當(dāng)前頁面結(jié)束。
上述步驟d5ll⑤)中建立當(dāng)前扇區(qū)的索引的流程如圖7所示,包括如下步
驟:
d511⑤i)、在數(shù)據(jù)采集系統(tǒng)處理器的內(nèi)存中建立第二數(shù)據(jù)緩沖;(該第二 數(shù)據(jù)緩沖也是臨時數(shù)據(jù)緩沖,扇區(qū)索引建立完畢后即被釋放,為清楚描述, 這里將其表示為第二數(shù)據(jù)緩沖。)
d5ll⑤ii)、將有無數(shù)據(jù)的標(biāo)志、當(dāng)前扇區(qū)的流水號、當(dāng)前時間寫入該第 二數(shù)據(jù)緩沖中;
d5ll⑤iii)、將第二數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到FLASHROM當(dāng)前扇區(qū)的首
頁;
d5ll⑤iv)、建立所寫入的數(shù)據(jù)塊的索引;(這里的數(shù)據(jù)塊是指規(guī)定周期時段內(nèi)存儲的數(shù)據(jù)。)
d5ll⑤v)、建立扇區(qū)索引結(jié)束。
上述步驟d5 II⑤iv)中所述的建立所寫入數(shù)據(jù)塊索引的流程,如圖8所示,
包括如下步驟
d5 II⑤iv 1 .)在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第三數(shù)據(jù)緩沖;
d5ll⑤iv 2.)將當(dāng)前時間、當(dāng)前工作頁面等寫入第三數(shù)據(jù)緩沖;
d5 II (Div 3.)在FLASH ROM當(dāng)前扇區(qū)首頁中搜索最小地址索引空間;
d5 II⑤iv 4.)將該第三數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到該索引空間中;
d5 H⑤iv 5.)建立數(shù)據(jù)塊索引結(jié)束。
上述步驟d5lll)中建立當(dāng)前頁面索引的流程,如圖9所示,包括如下步驟: d5111①)、在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第四數(shù)據(jù)緩沖; d5111②)、將當(dāng)前時間、當(dāng)前備份數(shù)據(jù)種類寫入第四數(shù)據(jù)緩沖; d5111③)、將第四數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到當(dāng)前頁面開始處; d5111④)、建立頁面索引結(jié)束。
上述步驟d5ll⑦)中建立頁面索引的流程也如圖9所示,這里不再贅述。 所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其中,步
驟a)中所述的串口中斷處理流程,如圖10所示,包括如下步驟-
al,)、判斷數(shù)據(jù)采集系統(tǒng)串口中斷處理命令是否到達(dá),若是,將該處理命
令字節(jié)寫入處理器的命令緩沖中,之后進(jìn)入步驟a2');若否,直接進(jìn)入步驟
a2,);
a2,)、串口信號發(fā)送處理; a3')、串口中斷處理流程結(jié)束。
其步驟f)中進(jìn)入系統(tǒng)命令處理流程,如圖11所示,包括如下步驟
fl)、判斷命令格式是否有效,若是,進(jìn)入步驟f2),若否,進(jìn)入步驟f4);
f2)、判斷數(shù)據(jù)讀取命令字符串是否與規(guī)定的數(shù)據(jù)讀取命令字符串匹配,(命令字符串定義這里不再贅述)匹配,若是,進(jìn)入步驟fi);若否,進(jìn)入步 驟f5);
fi)、進(jìn)行歷史數(shù)據(jù)讀取處理流程;
f4)、發(fā)送命令錯誤提示信號,并清除命令緩沖中的數(shù)據(jù); f5)、系統(tǒng)命令處理結(jié)束。
上述步驟f3)中所述歷史數(shù)據(jù)讀取處理流程,如圖12所示,包括如下步

f3 I )、在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第五數(shù)據(jù)緩沖; fill)、從處理器的命令緩沖中讀取歷史數(shù)據(jù)被存儲時的時間;(本方法是 以時間作為索引依據(jù)。)
f3111)、根據(jù)讀取到的歷史數(shù)據(jù)被存儲時的時間,進(jìn)入查詢數(shù)據(jù)流程; fiIV)、判斷査詢是否命中,若是,進(jìn)入步驟f3V),若否,進(jìn)入步驟f3VE); f3V)、從FLASH ROM中讀取歷史數(shù)據(jù)到第五數(shù)據(jù)緩沖; f3VI)、將第五數(shù)據(jù)緩沖中的數(shù)據(jù)通過串口發(fā)送到上位機(jī); f3VH)、發(fā)送査詢未命中提示信息;
fivni)、歷史數(shù)據(jù)讀取處理流程結(jié)束。
上述步驟Gin)中所述的查詢數(shù)據(jù)流程如圖13所示,包括如下步驟-
fiini.)、搜索扇區(qū)計數(shù);(該扇區(qū)計數(shù)是一個臨時變量,用于計算搜索過
的扇區(qū)數(shù),并以之判斷是否所有扇區(qū)都搜索完)
GIII2.)、判斷搜索的扇區(qū)是否有效,若是,進(jìn)入步驟f31113.),若否,進(jìn)
入步驟GIII10.);
f31113.)、搜索數(shù)據(jù)塊索引計數(shù)(數(shù)據(jù)塊索引計數(shù)也是一個臨時變量,用
于計算搜索過的數(shù)據(jù)塊索引的數(shù)量,并以之判斷是否所有數(shù)據(jù)塊索引都搜索
完),搜索到后,進(jìn)入步驟f3III4.);
f31114.)、判斷搜索到的數(shù)據(jù)塊索引日期是否與要求的歷史數(shù)據(jù)的時間匹配,若是,進(jìn)入步驟f31115.),若否,進(jìn)入步驟f3III9.); f31115.)、搜索頁面計數(shù);
f3111 6.)、判斷搜索的頁面索引時間是否與要求的歷史數(shù)據(jù)的時間匹配, 若是,返回命中信號,結(jié)束查詢數(shù)據(jù)流程,若否,進(jìn)入步驟f3in7.》
f31117.)、判斷該扇區(qū)頁面是否搜索完,若是,進(jìn)入步驟f31118.),若否, 返回步驟Bill 3.);
f3III8.)、判斷該扇區(qū)數(shù)據(jù)塊索引是否搜索完,若是,進(jìn)入步驟f31119.), 若否,返回步驟f31111.)、
f31119.)、判斷是否己將全部扇區(qū)搜索完,若是,進(jìn)入步驟f311110.),若否, 返回步驟GIII l.);
f3IIIia)、返回未命中信號,結(jié)束査詢數(shù)據(jù)流程。
權(quán)利要求
1、一種基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于包括如下步驟a)、進(jìn)入定時中斷初始化流程,同時,進(jìn)入串口中斷初始化流程、串口緩沖初始化流程;b)、進(jìn)入數(shù)據(jù)備份變量初始化流程;c)、判斷是否收到數(shù)據(jù)采集消息信號,若是,接收數(shù)據(jù)采集器當(dāng)前采集到的數(shù)據(jù),之后進(jìn)入步驟d);若否,直接進(jìn)入步驟d);d)、判斷是否收到數(shù)據(jù)備份消息信號,若是,備份接收到的當(dāng)前數(shù)據(jù),備份動作完成后,進(jìn)入步驟e);若否,直接進(jìn)入步驟e);e)、判斷是否收到建立數(shù)據(jù)索引消息信號,若是,建立備份數(shù)據(jù)塊索引,之后進(jìn)入步驟f);若否,直接返回步驟f);f)、進(jìn)入系統(tǒng)命令處理流程;g)、返回步驟c)。
2、 如權(quán)利要求1所述的基于FLASHROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于其數(shù)據(jù)備份變量初始化步驟a)中包括如下步驟bl)、建立有效扇區(qū)數(shù)為0、臨時流水變量為0、臨時扇區(qū)指針為0、臨時頁面指針為0;b2)、在數(shù)據(jù)采集系統(tǒng)處理器的內(nèi)存中建立第一數(shù)據(jù)緩沖;b3)、讀取臨時扇區(qū)指針指向的FLASH ROM扇區(qū)索引到步驟b2)建立的第一數(shù)據(jù)緩沖中;b4)、從該第一數(shù)據(jù)緩沖中讀取當(dāng)前扇區(qū)數(shù)據(jù)標(biāo)志并判斷該扇區(qū)是否有效; b5)、若當(dāng)前扇區(qū)有效,將有效扇區(qū)數(shù)+1,并從上述第一數(shù)據(jù)緩沖中讀取當(dāng) 前扇區(qū)流水號;若當(dāng)前扇區(qū)無效,進(jìn)入步驟b8);b6)、判斷當(dāng)前扇區(qū)流水號是否大于臨時流水變量,若是,進(jìn)入步驟b7),若否,進(jìn)入步驟b8);b7)、將所述當(dāng)前扇區(qū)流水號寫入到臨時流水變量,當(dāng)前扇區(qū)指針指向臨時 扇區(qū)指針;b8)、將臨時扇區(qū)指針+l;b9)、判斷臨時扇區(qū)指針是否大于FLASHROM器件的扇區(qū)數(shù),若是,進(jìn)入步驟M0 b10 bll b12 b13面指針+ b14 M5,若否,返回步驟b3);、判斷有效扇區(qū)數(shù)是否為0,若是,進(jìn)入步驟M8),若否,進(jìn)入步驟bll);、讀取當(dāng)前扇區(qū)指針指向的扇區(qū)位圖到第一數(shù)據(jù)緩沖;、從第一數(shù)據(jù)緩沖中讀取臨時頁面指針指向的位圖數(shù)據(jù);、根據(jù)位圖數(shù)據(jù)判斷該位圖數(shù)據(jù)對應(yīng)的頁面是否為空,若是,將臨時頁后返回步驟bl2);若否,進(jìn)入步驟M4);、將當(dāng)前頁面指針指向臨時頁面指針;、判斷臨時頁面指針是否大于FLASH ROM器件的扇區(qū)數(shù),若是,進(jìn)入步驟M6),若否,進(jìn)入步驟b21); b16)、將當(dāng)前扇區(qū)指針+1; b17)、進(jìn)行FLASH ROM器件邊界處理; b18)、擦除當(dāng)前扇區(qū); b19)、重新建立扇區(qū)索引; b20)、將當(dāng)前頁面指針設(shè)為1; b21)、建立數(shù)據(jù)塊索引; b22)、建立頁面索引;b23)、當(dāng)前偏移指針移動,跳過當(dāng)前頁面索引; b24)、結(jié)束初始化。
3、如權(quán)利要求1所述的基于FLASHROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,其特征在于其進(jìn)入定時中斷流程的步驟a)中包括如下步驟al)、數(shù)據(jù)采集系統(tǒng)的計時器開始計時;a2)、判斷數(shù)據(jù)采集定時周期是否到期,若是,發(fā)出數(shù)據(jù)采集消息信號,之 后進(jìn)入步驟a3),若否,直接進(jìn)入步驟a3);a3)、判斷數(shù)據(jù)備份定時周期是否到期,若是,發(fā)出數(shù)據(jù)備份消息信號,之 后進(jìn)入步驟a4),若否,直接進(jìn)入步驟a4);a4)、判斷數(shù)據(jù)索引定時周期是否到期,若是,發(fā)出數(shù)據(jù)索引消息信號,之 后進(jìn)入步驟a5),若否,直接進(jìn)入步驟a5);a5)、定時中斷流程結(jié)束。
4、 如權(quán)利要求1所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,其特征在于其步驟d)中的"備份接收到的當(dāng)前數(shù)據(jù)"包括下列步驟dl)、建立FLASH ROM操作緩沖;d2)、將當(dāng)前數(shù)據(jù)寫入該操作緩沖中;d3)、將操作緩沖內(nèi)的數(shù)據(jù)寫入FLASH ROM;d4)、當(dāng)前偏移指針移動所寫入FLASH ROM數(shù)據(jù)的長度;d5)、進(jìn)入當(dāng)前頁面邊界檢查流程;d6)、備份數(shù)據(jù)流程結(jié)束。
5、 如權(quán)利要求4所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,其特征在于其步驟d5)中進(jìn)入當(dāng)前頁面邊界檢查的流程包括如下步驟d5 1)、判斷是否到達(dá)當(dāng)前頁面的邊界,若是,進(jìn)入步驟d511),若否,進(jìn)入 步驟d5W);d511)、進(jìn)入更新當(dāng)前工作頁面的流程; d5lH)、頁面更新后,建立當(dāng)前頁面的索引; d5lV)、頁面邊界檢査結(jié)束。
6、 如權(quán)利要求5所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,其特征在于其步驟d5ll)中進(jìn)入更新當(dāng)前工作頁面的流程包括如下步驟d511①)、判斷是否到達(dá)當(dāng)前扇區(qū)的邊界,若是,進(jìn)入步驟d511②),若否, 將當(dāng)前頁面指針加l后,進(jìn)入步驟d5ll⑥);d511②)、將當(dāng)前扇區(qū)流水號加l;d511③)、搜索最小流水號的扇區(qū)作為當(dāng)前扇區(qū);d5ll@)、擦除當(dāng)前扇區(qū)內(nèi)的數(shù)據(jù);d5lI(D)、建立當(dāng)前扇區(qū)的索引;d5lI(D)、在扇區(qū)位圖中標(biāo)記當(dāng)前頁面;d511⑦)、建立頁面索引;d511⑧)、更新當(dāng)前頁面結(jié)束。
7、 如權(quán)利要求6所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,其特征在于其步驟d5ll⑤)中建立當(dāng)前扇區(qū)的索引的流程包括如下步驟d511⑤i )、在數(shù)據(jù)采集系統(tǒng)處理器的內(nèi)存中建立第二數(shù)據(jù)緩沖;d5ll⑤ii)、將有無數(shù)據(jù)的標(biāo)志、當(dāng)前扇區(qū)的流水號、當(dāng)前時間寫入該第二 數(shù)據(jù)緩沖中;d5 II⑤iii)、將第二數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到FLASH ROM當(dāng)前扇區(qū)的首頁; d5ll⑤iv)、建立所寫入的數(shù)據(jù)塊的索引; d5ll⑤v)、建立扇區(qū)索引結(jié)束。
8、 如權(quán)利要求7所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方 法,其特征在于其步驟d5ll⑤iv)中所述的建立所寫入數(shù)據(jù)塊索引的流程包括如下步驟d5 II⑤iv 1 .)在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第三數(shù)據(jù)緩沖; d5ll⑤iv 2.)將當(dāng)前時間、當(dāng)前工作頁面等寫入第三數(shù)據(jù)緩沖; d5 11(Div 3.)在FLASHROM當(dāng)前扇區(qū)首頁中搜索最小地址索引空間; d5ll⑤iv 4.)將該第三數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到該索引空間中; d5ll⑤iv 5.)建立數(shù)據(jù)塊索引結(jié)束。
9、 如權(quán)利要求5所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于所述步驟d5lll)中建立當(dāng)前頁面索引的流程包括如下步驟d5111①)、在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第四數(shù)據(jù)緩沖;d5111②)、將當(dāng)前時間、當(dāng)前備份數(shù)據(jù)種類寫入第四數(shù)據(jù)緩沖;d5in③)、將第四數(shù)據(jù)緩沖中的數(shù)據(jù)寫入到當(dāng)前頁面開始處;d5in④)、建立頁面索引結(jié)束。
10、 如權(quán)利要求1所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于其步驟a)中所述串口中斷處理流程包括如下步驟al,)、判斷數(shù)據(jù)采集系統(tǒng)串口中斷處理命令是否到達(dá),若是,將該處理命令字節(jié)寫入處理器的命令緩沖中,之后進(jìn)入步驟a2');若否,直接進(jìn)入步驟a2');a2,)、串口信號發(fā)送處理;a3')、串口中斷處理流程結(jié)束。
11、 如權(quán)利要求1所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于其步驟f)中進(jìn)入系統(tǒng)命令處理流程包括如下步驟-fl)、判斷命令格式是否有效,若是,進(jìn)入步驟f2),若否,進(jìn)入步驟f4);G)、判斷數(shù)據(jù)讀取命令是否匹配(該匹配指的是什么與什么匹配?如何是匹配的?)若是,進(jìn)入步驟f3);若否,進(jìn)入步驟f5);f3)、進(jìn)行歷史數(shù)據(jù)讀取處理流程;f4)、發(fā)送命令錯誤提示信號,并清除命令緩沖中的數(shù)據(jù);f5)、系統(tǒng)命令處理結(jié)束。
12、 如權(quán)利要求11所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于其步驟G)中所述歷史數(shù)據(jù)讀取處理流程包括如下步驟-f3 I )、在數(shù)據(jù)采集系統(tǒng)處理器內(nèi)存中建立第五數(shù)據(jù)緩沖;f311)、從處理器的命令緩沖中讀取歷史數(shù)據(jù)的存儲時間;GIII)、根據(jù)讀取到的歷史數(shù)據(jù)的存儲時間,進(jìn)入査詢數(shù)據(jù)流程;fiIV)、判斷査詢是否命中,若是,進(jìn)入步驟f3V),若否,進(jìn)入步驟f3VII);f3V)、從FLASH ROM中讀取歷史數(shù)據(jù)到第五數(shù)據(jù)緩沖;f3VI)、將第五數(shù)據(jù)緩沖中的數(shù)據(jù)通過串口發(fā)送到上位機(jī);f3W)、發(fā)送查詢未命中提示信息;fiWl)、歷史數(shù)據(jù)讀取處理流程結(jié)束。
13、如權(quán)利要求12所述的基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,其特征在于步驟f3lll)中所述的查詢數(shù)據(jù)流程包括如下步驟f3111 l.)、搜索扇區(qū)計數(shù);f31112.)、判斷搜索的扇區(qū)是否有效,若是,進(jìn)入步驟f31113.),若否,進(jìn)入步驟f3III10.);fil113.)、搜索數(shù)據(jù)塊索引計數(shù),搜索到后,進(jìn)入步驟f3111 4.);4.)、判斷搜索到的數(shù)據(jù)塊索引日期是否與要求的歷史數(shù)據(jù)的時間匹配,若是,進(jìn)入步驟f31115.),若否,進(jìn)入步驟f3111 9.);f31115.)、搜索頁面計數(shù);f31116.)、判斷搜索的頁面索引時間是否與要求的歷史數(shù)據(jù)的時間匹配,若是,返回命中信號,結(jié)束查詢數(shù)據(jù)流程,若否,進(jìn)入步驟f3III7.);f31117.)、判斷該扇區(qū)頁面是否搜索完,若是,進(jìn)入步驟f31118.),若否,返回步驟f3111 3.);f31118.)、判斷該扇區(qū)數(shù)據(jù)塊索引是否搜索完,若是,進(jìn)入步驟f31119.),若否,返回步驟fillll.)、f31119.)、判斷是否已將全部扇區(qū)搜索完,若是,進(jìn)入步驟fiinio.),若否,返回步驟f3111 l.);f311110.)、返回未命中信號,結(jié)束查詢數(shù)據(jù)流程。
全文摘要
一種基于FLASH ROM的數(shù)據(jù)采集系統(tǒng)小型數(shù)據(jù)備份方法,以扇區(qū)為單位、以流水號和索引鑒別前后順序;當(dāng)一扇區(qū)數(shù)據(jù)存滿時,查找最早使用過的扇區(qū),清除并作為當(dāng)前工作扇區(qū);扇區(qū)由索引和數(shù)據(jù)區(qū)組成,索引包括扇區(qū)索引和頁索引,頁索引后面的空間是數(shù)據(jù)區(qū),數(shù)據(jù)采集系統(tǒng)工作時,根據(jù)設(shè)定的周期和種類將數(shù)據(jù)存儲到各扇區(qū)中,在存儲過程中按照要求的格式建立扇區(qū)索引和頁索引;查詢數(shù)據(jù)時,先搜索數(shù)據(jù)塊索引,當(dāng)時間匹配后搜索對應(yīng)的頁索引。綜上,本方法占用系統(tǒng)資源很少,只需幾千字節(jié)的代碼即可實(shí)現(xiàn),占用變量內(nèi)存小,適合小型數(shù)據(jù)備份應(yīng)用;本方法還實(shí)現(xiàn)了扇區(qū)使用均勻磨損,另外,兩級索引可以實(shí)現(xiàn)快速命中。
文檔編號G06F11/14GK101499026SQ20081013098
公開日2009年8月5日 申請日期2008年8月22日 優(yōu)先權(quán)日2008年2月1日
發(fā)明者張德林, 軍 滕 申請人:凱邁(洛陽)測控有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1