999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

E2PROM數(shù)據(jù)遍歷輪循的存儲(chǔ)策略研究

2012-09-25 02:59:56范劍
關(guān)鍵詞:單片機(jī)區(qū)域策略

范劍

(浙江臺(tái)州學(xué)院 機(jī)械工程學(xué)院,臺(tái)州 310018)

引 言

E2PROM是具有電可擦除特性的存儲(chǔ)器。其優(yōu)點(diǎn)是無(wú)需外加電源即可永久保存數(shù)據(jù)?;谶@種優(yōu)良特性,該器件廣泛應(yīng)用于對(duì)數(shù)據(jù)存儲(chǔ)安全性及可靠性要求較高的應(yīng)用場(chǎng)合。而且,越來(lái)越多的微控制器(MCU)生產(chǎn)廠家陸續(xù)推出了集成獨(dú)立E2PROM數(shù)據(jù)存儲(chǔ)器的產(chǎn)品,使其在結(jié)構(gòu)、性能和功能等方面都有明顯的提高。但是,E2PROM的缺點(diǎn)是數(shù)據(jù)的寫(xiě)入次數(shù)有限(指某一位由1寫(xiě)為0的次數(shù)),當(dāng)前的工藝技術(shù)已經(jīng)能做到不低于100萬(wàn)次。這雖然能夠滿足多數(shù)用戶的要求,但對(duì)于E2PROM內(nèi)的數(shù)據(jù)在系統(tǒng)運(yùn)行過(guò)程中有頻繁擦寫(xiě)的要求而言,當(dāng)存放這些數(shù)據(jù)的片內(nèi)存儲(chǔ)單元擦寫(xiě)次數(shù)達(dá)到上限時(shí),這個(gè)存儲(chǔ)單元就不能再使用了,從而需要另辟蹊徑,盡量提高E2PROM的寫(xiě)入壽命。姜金、李波等人利用空閑E2PROM空間,提出了一種存儲(chǔ)失效檢測(cè)和更新存儲(chǔ)空間的動(dòng)態(tài)E2PROM數(shù)據(jù)存儲(chǔ)策略[1];李維平、張濤等人提出了在E2PROM空間做N次遍歷存儲(chǔ)的方法[2]。本文首先綜合上述兩種方案的優(yōu)點(diǎn),針對(duì)不同更新頻率的變量,進(jìn)一步提出分區(qū)域遍歷輪循的數(shù)據(jù)動(dòng)態(tài)存儲(chǔ)策略,能有效延長(zhǎng)E2PROM的寫(xiě)入壽命。本文最后針對(duì)設(shè)計(jì)一種增量型計(jì)數(shù)器,提出了另一種“寫(xiě)零計(jì)數(shù)”的E2PROM數(shù)據(jù)遍歷輪循存儲(chǔ)策略。

1 E2PROM分區(qū)域遍歷輪循的數(shù)據(jù)存儲(chǔ)策略分析

一般情況下,系統(tǒng)的設(shè)計(jì)者會(huì)把數(shù)據(jù)存儲(chǔ)方式設(shè)定為靜態(tài),即為固定的地址存儲(chǔ)指定的變量值。但是,考慮到單片機(jī)內(nèi)部的E2PROM空間相對(duì)于有待保存的數(shù)據(jù)量來(lái)說(shuō)是有很大富余的[1],從而可以用軟件的方法,最大程度地利用E2PROM存儲(chǔ)空間資源,以整體存儲(chǔ)空間的使用壽命來(lái)擴(kuò)展某局部、若干的存儲(chǔ)器單元的使用壽命。所謂遍歷輪循數(shù)據(jù)存儲(chǔ),指的是在設(shè)定區(qū)域內(nèi),將同一變量每一次的更新值,從設(shè)定的存儲(chǔ)區(qū)域起始單元位置開(kāi)始,依次按更新順序逐個(gè)單元地保存,直到最末單元位置,即完成了一次該區(qū)域的遍歷存儲(chǔ)使用,然后又從該區(qū)域起始位置重新輪循。

根據(jù)系統(tǒng)的設(shè)計(jì)要求,大致估計(jì)每個(gè)變量的更新速度,將更新頻繁的若干變量分別預(yù)先分配到不同的遍歷輪循區(qū)域,更新快的設(shè)置較大的遍歷輪循存儲(chǔ)區(qū)域,更新慢的則設(shè)置較小的遍歷輪循存儲(chǔ)區(qū)域。對(duì)于更新很少和不更新的變量或數(shù)據(jù)表,將其設(shè)置在同一片存儲(chǔ)區(qū)域(對(duì)于STC單片機(jī)內(nèi)部集成的E2PROM,可以扇區(qū)為單位劃分存儲(chǔ)區(qū)域)。表1是以ATmega64為例對(duì)其內(nèi)部2KB E2PROM空間分配設(shè)置的一種情形。

表1 ATmega64E2PROM空間某種分配設(shè)置

比如,為保存上表中變量temp的新值,其存儲(chǔ)地址由地址變量addr_temp來(lái)確定,每一次保存完變量temp的值,存儲(chǔ)地址addr_temp加1,指向下一個(gè)存儲(chǔ)地址,指示下一次更新的數(shù)據(jù)放到這個(gè)指定的位置單元,直到更新數(shù)據(jù)寫(xiě)到了這個(gè)區(qū)域的最后一個(gè)字節(jié)。這時(shí)如有更新值需要寫(xiě)入,則對(duì)該區(qū)域執(zhí)行一次擦除操作(每個(gè)位上全部寫(xiě)1),并將addr_temp存儲(chǔ)地址重置為000H,再把更新數(shù)據(jù)寫(xiě)入到存儲(chǔ)單元,然后存儲(chǔ)地址addr_temp加1,如此循環(huán)。

由上述過(guò)程可以看出,將某個(gè)變量和指定的區(qū)域?qū)?yīng),采用軟件的方法重復(fù)使用該區(qū)域的存儲(chǔ)資源,當(dāng)指定區(qū)域各單元都寫(xiě)完一遍后,做一次區(qū)域整體擦除,從而使得原先是一個(gè)單元的寫(xiě)入壽命擴(kuò)展變通為一個(gè)區(qū)域的寫(xiě)入壽命。比如表1中,為變量temp分配了512字節(jié),那么寫(xiě)入壽命擴(kuò)展到了原先靜態(tài)存儲(chǔ)方式的512倍。如此類推,可知表1中變量value的寫(xiě)入壽命能擴(kuò)展到1 024倍。程序設(shè)計(jì)者可以根據(jù)變量的實(shí)際可能更新頻率,合理配置E2PROM的存儲(chǔ)區(qū)域空間大小,延長(zhǎng)其寫(xiě)入壽命。

2 E2PROM數(shù)據(jù)存儲(chǔ)協(xié)議的定義及存儲(chǔ)地址的確認(rèn)

嵌入式系統(tǒng)上電后一般先進(jìn)行自檢和初始化,其中初始化的過(guò)程就包含讀取E2PROM數(shù)據(jù)的操作。那么在使用上述存儲(chǔ)策略的情況下,如何識(shí)別有效的數(shù)據(jù)信息并將更新的地址位置讀取出來(lái)呢?

仍以上述變量temp為例,假設(shè)斷電之前addr_temp指向的存儲(chǔ)地址是45H,那么該區(qū)域地址為44H的單元存儲(chǔ)的是斷電前的最后一個(gè)數(shù)值。由此可以斷定,這個(gè)區(qū)域中,地址為44H的單元之后的值全為擦寫(xiě)后的狀態(tài)值(即為FFH)。由此可以推斷:從指定區(qū)域開(kāi)始單元位置逐個(gè)查找判斷,如果找到FFH值,有可能到達(dá)了斷電前的最后一次更新值的位置。但另一方面,若系統(tǒng)在任何條件下的更新值都不可能是FFH值,則前述推斷成立;但如果之前有更新值可以是FFH值,那么,剛才的結(jié)論無(wú)疑就被推翻了。這種情況下,可以結(jié)合更新數(shù)據(jù)自身的特點(diǎn)設(shè)計(jì)一個(gè)數(shù)據(jù)存儲(chǔ)協(xié)議,比如使用“數(shù)據(jù)字節(jié)+特征字節(jié)”構(gòu)成數(shù)據(jù)包的方式來(lái)存儲(chǔ),如“數(shù)據(jù)字節(jié)+00”。這樣一來(lái),根據(jù)存儲(chǔ)數(shù)據(jù)包的特點(diǎn),將存儲(chǔ)區(qū)數(shù)據(jù)逐個(gè)分包讀取和判斷,當(dāng)讀取到字節(jié)包全為FFH值時(shí),即可確定已找到斷電前的最后一次更新值的地址位置。

3 遍歷輪循的數(shù)據(jù)存儲(chǔ)策略程序?qū)崿F(xiàn)流程

存儲(chǔ)變量數(shù)據(jù)到E2PROM的過(guò)程可以設(shè)計(jì)一個(gè)子程序?qū)iT(mén)來(lái)完成這項(xiàng)工作。首先根據(jù)該變量的當(dāng)前存儲(chǔ)地址寫(xiě)入指定值(數(shù)據(jù)包),然后采用地址值自加的方式更新存儲(chǔ)地址指針值,以使其指向下一組數(shù)據(jù)的存儲(chǔ)地址單元。接著判斷該地址是否到達(dá)存儲(chǔ)區(qū)域的最高地址,如果到達(dá),就將地址設(shè)置成該區(qū)域的首字節(jié)的位置,否則就直接返回。該程序結(jié)構(gòu)清晰,編程設(shè)計(jì)也比較簡(jiǎn)單。上述過(guò)程實(shí)現(xiàn)了“分區(qū)域遍歷輪循的數(shù)據(jù)動(dòng)態(tài)存儲(chǔ)”策略,E2PROM數(shù)據(jù)動(dòng)態(tài)存儲(chǔ)模塊程序流程如圖1所示。

圖1 E2PROM數(shù)據(jù)動(dòng)態(tài)存儲(chǔ)模塊程序流程

4 “寫(xiě)零計(jì)數(shù)”的遍歷輪循存儲(chǔ)策略

該存儲(chǔ)策略專門(mén)針對(duì)一種增量型實(shí)時(shí)計(jì)數(shù)和記錄的特例而言,記錄的數(shù)值呈單方向遞增的特點(diǎn)。下面以筆者為某自動(dòng)化生產(chǎn)流水線設(shè)計(jì)的一款產(chǎn)品計(jì)數(shù)器為例進(jìn)行說(shuō)明。該計(jì)數(shù)器連接了一個(gè)傳感器(接近開(kāi)關(guān)),用于檢測(cè)流水線上產(chǎn)品經(jīng)過(guò)計(jì)數(shù)檢測(cè)口的信號(hào)。當(dāng)接收到傳感器下降沿信號(hào)時(shí),系統(tǒng)進(jìn)行加1計(jì)數(shù)。該模塊電路比較簡(jiǎn)單,此處從略。

為了充分利用MCU內(nèi)部的E2PROM存儲(chǔ)器,設(shè)計(jì)中采用了“寫(xiě)零計(jì)數(shù)”方法。假定該計(jì)數(shù)器的記錄上限值是10 000次。一般情況下,E2PROM存儲(chǔ)器出廠時(shí)全部單元的數(shù)據(jù)被設(shè)置為初始態(tài)FFH。軟件設(shè)計(jì)思路如下:首次使用時(shí),系統(tǒng)每檢測(cè)到1次傳感器的下降沿跳變信號(hào),就從存儲(chǔ)器單元的首位依次逐位寫(xiě)0到對(duì)應(yīng)的位上。比如,第一次到了就寫(xiě)FEH,第二次到了就寫(xiě)FCH,然后是F7H、F0H、E0H……(也就是逐次從低到高按位寫(xiě)0)。對(duì)于第一個(gè)字節(jié)來(lái)說(shuō),有8個(gè)位,用第一個(gè)起始字 58更新后,開(kāi)始監(jiān)測(cè)行信號(hào)到達(dá),之后使能/WE,開(kāi)始順序讀取圖像。讀完一幀圖像后關(guān)閉/WE,單片機(jī)使能/RE,開(kāi)始讀取首行圖像中的640個(gè)像素。本文采取邊讀邊處理的方式,較好地解決了一幀圖像多達(dá)3MB的問(wèn)題。點(diǎn)光源標(biāo)桿發(fā)出的紅外光線在圖像上呈現(xiàn)出若干個(gè)光暈區(qū)域,找到光暈中心就可以找到點(diǎn)光源的圖像坐標(biāo),為此在讀取的同時(shí)將各像素點(diǎn)與閾值進(jìn)行比較,小于閾值的為疑似點(diǎn)光源并記錄對(duì)應(yīng)坐標(biāo);當(dāng)讀取完一行像素時(shí),得到的將是一組疑似點(diǎn)光源坐標(biāo)的像素位置,將其進(jìn)行統(tǒng)計(jì)求平均,得出點(diǎn)光源在該行的坐標(biāo),最多12個(gè)字節(jié)(正面標(biāo)桿6個(gè),某側(cè)標(biāo)桿6個(gè)),遠(yuǎn)遠(yuǎn)小于整行640個(gè)字節(jié)。

圖9 程序設(shè)計(jì)流程圖

當(dāng)讀取完一幀像素時(shí),得到最多12×480個(gè)字節(jié),單片機(jī)64KB的容量完全可以存儲(chǔ),最后將行求平均,得出最終的點(diǎn)光源坐標(biāo)。經(jīng)驗(yàn)證,所需總時(shí)間在2.15幀圖像內(nèi)完成。

結(jié) 語(yǔ)

文中討論了基于FIFO芯片和單片機(jī)實(shí)現(xiàn)的點(diǎn)光源圖像采集系統(tǒng),描述了單目點(diǎn)光源測(cè)距原理、圖像采集系統(tǒng)硬件和軟件設(shè)計(jì)方法,著重介紹了FIFO芯片在圖像采集中的橋梁作用。通過(guò)系統(tǒng)樣機(jī)檢驗(yàn),能夠滿足要求,達(dá)到了預(yù)期效果。

[1]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法[M].北京:清華大學(xué)出版社,2009.

[2]Freescale Semiconductor.MC9S12DG128Device User Guide[EB/OL].[2011-11].http://www.freescale.com.cn.

[3]OmniVision Technologies.OV7670/OV7171CMOS VGA 圖像傳感器[EB/OL].[2011-11].http://www.ovt.com/technologies/.

[4]Aver Logic.AL422DataSheet[EB/OL].[2011-11].http://www.averlogic.com/.

猜你喜歡
單片機(jī)區(qū)域策略
例談未知角三角函數(shù)值的求解策略
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
我說(shuō)你做講策略
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
高中數(shù)學(xué)復(fù)習(xí)的具體策略
關(guān)于四色猜想
分區(qū)域
基于嚴(yán)重區(qū)域的多PCC點(diǎn)暫降頻次估計(jì)
Microchip推出兩個(gè)全新PIC單片機(jī)系列
主站蜘蛛池模板: 国产在线麻豆波多野结衣| 青青青国产在线播放| 婷婷综合在线观看丁香| 久热精品免费| 国产高潮视频在线观看| 国产丝袜无码精品| 欧美视频二区| 色有码无码视频| 中文字幕亚洲另类天堂| 午夜日b视频| 亚洲国产欧美国产综合久久 | 亚洲毛片网站| 久久国语对白| 国产精品自在在线午夜区app| 无码免费视频| 日韩小视频网站hq| 亚洲精品自在线拍| 欧美成人一级| 成年av福利永久免费观看| 久久精品国产一区二区小说| 国产成人无码久久久久毛片| 高清欧美性猛交XXXX黑人猛交 | 久久精品国产国语对白| 狠狠做深爱婷婷综合一区| 亚洲综合色区在线播放2019| 又粗又大又爽又紧免费视频| 99re精彩视频| 99久久精品免费看国产免费软件| 中文字幕乱码中文乱码51精品| 久久午夜夜伦鲁鲁片无码免费 | 国产精品美乳| 国产一区三区二区中文在线| 亚洲不卡网| 美女内射视频WWW网站午夜 | 国产午夜福利亚洲第一| 国产精品成人AⅤ在线一二三四| 亚洲精品国产成人7777| 久久99国产视频| 国产在线拍偷自揄观看视频网站| 欧美日韩成人| 久久成人免费| 婷婷色婷婷| 色综合天天娱乐综合网| 夜夜拍夜夜爽| 中文字幕在线一区二区在线| 99er这里只有精品| 婷婷丁香色| 欧美日韩在线成人| 中文字幕在线视频免费| 亚洲女人在线| 色偷偷一区二区三区| 国内精品一区二区在线观看| 久久精品这里只有精99品| 一区二区三区四区在线| 色135综合网| 精品在线免费播放| 无码又爽又刺激的高潮视频| 国产成人在线小视频| 色天天综合| 亚洲IV视频免费在线光看| 亚洲永久免费网站| 在线精品视频成人网| 91口爆吞精国产对白第三集| 亚洲国产成人综合精品2020| 免费黄色国产视频| 97综合久久| 亚洲精品桃花岛av在线| 国产成人精品高清不卡在线| 国产日韩欧美视频| 在线观看国产黄色| 国产精品欧美激情| 国产清纯在线一区二区WWW| 精品无码专区亚洲| 蜜臀AV在线播放| 五月天久久综合国产一区二区| 男人天堂亚洲天堂| 日韩亚洲综合在线| 91探花在线观看国产最新| 免费一级成人毛片| 99热这里只有成人精品国产| 国产精品视频猛进猛出| 日韩毛片免费视频|