<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式系統中非易失、不可復位計數器的實(shí)現

嵌入式系統中非易失、不可復位計數器的實(shí)現

作者: 時(shí)間:2012-06-24 來(lái)源:網(wǎng)絡(luò ) 收藏

本文介紹如何利用常見(jiàn)串行EEPROM的EPROM仿真模式及編碼機制解決這一問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/148875.htm

設計目標

有些應用中,考慮到質(zhì)保期的要求,希望能夠對特定的事件進(jìn)行計數和記錄,例如上電次數、工作時(shí)間、硬(按鈕)和超時(shí)。傳統的電子通常由雙穩態(tài)多諧振蕩器組成,采用二進(jìn)制編碼,如圖1所示。當全部觸發(fā)器時(shí),則達到最大計數值,規模由核查期限內允許發(fā)生某些事件的最大次數決定。

Bit Number
n+1n...87654321
2n2n-1...2726252423222120

圖1. 二進(jìn)制碼中,下一位比上一位位值翻倍。

定位需求

盡管基于觸發(fā)器的很容易搭建,但它存在一個(gè)缺點(diǎn)。當達到計數限值時(shí),計數器反轉為零(自動(dòng))。工作狀態(tài)也是的—需要電源維持其計數狀態(tài)。第一個(gè)問(wèn)題可通過(guò)達到限值時(shí)凍結計數器解決;也可以通過(guò)安裝電池維持計數器的供電,從而解決第二個(gè)問(wèn)題。但這些措施在實(shí)際應用中可能無(wú)法接受,因為增加了成本,且工作時(shí)間有限。

一種替代方案是:將計數值備份在EEPROM或其它形式的非(NV)存儲器中。下次上電時(shí),將該NV存儲器中儲存的數值加載到計數器。然而,除非NV存儲器嵌入另一個(gè)芯片,例如微控制器或FPGA,否則存儲器內容并不安全,因為存儲器芯片很容易拆除、重新編程(復位),然后重新安裝到電路板上。因此,這種方法不滿(mǎn)足復位的要求。

傳統設計

EPROM是另一種不需要電池的非存儲器。EPROM在上世紀70年代隨著(zhù)微處理器的出現得到廣泛使用。出廠(chǎng)時(shí),EPROM的全部字節為FFh。通過(guò)將某一位從1 (擦除)置為0 (編程)來(lái)儲存數據;編程需要12V至13V脈沖電壓。加載新數據之前,必須用高強度紫外線(xiàn)通過(guò)封裝上的窗口照射芯片,從而擦除整個(gè)存儲器。一次性編程(OTP) EPROM器件沒(méi)有窗口,因此擦除。由于這些不便之處,EPROM的主導地位逐漸被EEPROM和高密度閃存所取代,后兩者的工作和編程電壓為5V或更低。雖然如此,將OTP EPROM一次可編程(1至0)及擦除的特點(diǎn)與現代EEPROM技術(shù)相結合,能夠得到EPROM仿真模式的新特性。EPROM仿真模式是非易失、不可復位計數器的關(guān)鍵技術(shù)。

EPROM仿真模式

串口EEPROM的一個(gè)常用功能是充當寫(xiě)入頁(yè)的緩存器,能夠一次編程整個(gè)存儲器頁(yè)。收到寫(xiě)命令時(shí),自動(dòng)裝載包含尋址存儲器數據的頁(yè)緩存器內容。對于EPROM仿真模式,按照移位寄存器寫(xiě)緩存器(圖2)。輸入新數據(D-IN)送到一個(gè)“與”門(mén),在進(jìn)入緩存器(S-IN)之前將其與緩存器數據(S-OUT)相組合。因此,“與”門(mén)確保存儲器位在置為0后不會(huì )變?yōu)?。經(jīng)過(guò)一個(gè)完整的頁(yè)操作周期后,緩存器的數據再次與存儲器頁(yè)中的數據對齊。隨后可以開(kāi)始一個(gè)寫(xiě)周期,將整個(gè)緩存器內容復制到非易失EEPROM。


圖2. EPROM仿真將新數據與已有數據位相“與”,寫(xiě)回到存儲器。

EPROM計數

由于EPROM位只能在一個(gè)方向改變,不支持傳統的計數器設計思路,而是將整個(gè)存儲器陣列視為一個(gè)n位的單體。初始狀態(tài)下,n位存儲單元均未編程(為1)。為了對事件計數,必須將未編程的位更改為0??梢院?jiǎn)單地隨機選擇下一個(gè)編程位,但圖3所示方法更容易。該方法從最低有效位開(kāi)始依次計數,直到對一個(gè)字節的所有位進(jìn)行編程。然后再逐位編程下一個(gè)字節,依此循環(huán)。EPROM仿真模式下,1024位存儲器芯片可以對1024個(gè)事件計數。

Count
Value
Hex
Code
Bit Number
87654321
0FFh11111111
1FEh11111110
2FCh11111100
3F8h11111000
4F0h11110000
5E0h11100000
6C0h11000000
780h10000000
800h00000000

圖3. EPROM計數要求對每一位設置相同值。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>