亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2012-09-25 02:59:56范劍
        關(guān)鍵詞:點(diǎn)光源字節(jié)單片機(jī)

        范劍

        (浙江臺(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)廠(chǎng)家陸續(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)次。這雖然能夠滿(mǎn)足多數(shù)用戶(hù)的要求,但對(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倍。如此類(lèi)推,可知表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ǔ)策略專(zhuān)門(mén)針對(duì)一種增量型實(shí)時(shí)計(jì)數(shù)和記錄的特例而言,記錄的數(shù)值呈單方向遞增的特點(diǎn)。下面以筆者為某自動(dòng)化生產(chǎn)流水線(xiàn)設(shè)計(jì)的一款產(chǎn)品計(jì)數(shù)器為例進(jìn)行說(shuō)明。該計(jì)數(shù)器連接了一個(gè)傳感器(接近開(kāi)關(guān)),用于檢測(cè)流水線(xiàn)上產(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ǔ)器出廠(chǎng)時(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)在圖像上呈現(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),能夠滿(mǎn)足要求,達(dá)到了預(yù)期效果。

        [1]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線(xiàn)開(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/.

        猜你喜歡
        點(diǎn)光源字節(jié)單片機(jī)
        BIM 技術(shù)幕墻結(jié)構(gòu)點(diǎn)光源安裝分析
        基于線(xiàn)性變換球面分布的實(shí)時(shí)間接光澤反射
        No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
        基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
        電子制作(2019年13期)2020-01-14 03:15:28
        夜景工程中點(diǎn)光源陣列媒體立面設(shè)計(jì)研究
        福建建筑(2019年11期)2019-12-23 03:00:12
        基于單片機(jī)的層次漸變暖燈的研究
        電子制作(2019年15期)2019-08-27 01:12:10
        No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
        基于單片機(jī)的便捷式LCF測(cè)量?jī)x
        電子制作(2019年9期)2019-05-30 09:42:02
        簡(jiǎn)談MC7字節(jié)碼
        Microchip推出兩個(gè)全新PIC單片機(jī)系列
        欧美变态另类刺激| 国产一区二区三区特黄| 黄色精品一区二区三区| 欧美老熟妇乱xxxxx| 被群cao的合不拢腿h纯肉视频| 亚洲中文字幕无码卡通动漫野外| av资源在线永久免费观看| 亚洲天堂二区三区三州| 国产激情视频一区二区三区| 99在线精品国产不卡在线观看| 人妻少妇精品视频一区二区三区| 国产一区白浆在线观看| 亚洲精品夜夜夜妓女网| 亚洲天堂在线播放| 国产后入内射在线观看| 精品露脸熟女区一粉嫩av| 精品极品视频在线观看| 4hu四虎永久免费地址ww416| 亚洲av无码1区2区久久| 日韩中文字幕精品免费一区| 精品国产三区在线观看| 五月丁香六月综合缴清无码| 亚洲精品无码高潮喷水在线 | 色婷婷欧美在线播放内射| 一区二区三无码| 蜜桃视频一区二区三区四| 婷婷色婷婷开心五月四房播播| 国产一品道av在线一二三区| 久久精品国产亚洲av热九| 国产大屁股熟女流白浆一区二区| 国产免费久久精品99久久| 猫咪免费人成网站在线观看| 尤物蜜芽福利国产污在线观看 | av网站国产主播在线| 玩弄丰满奶水的女邻居| 成人区视频| 国产成人高清视频在线观看免费 | 国产精品欧美福利久久| 日韩欧美亚洲中字幕在线播放| 国产一区二区不卡av| 久久97久久97精品免视看|