出于保修原因,最好計(jì)算某些事件,例如電源循環(huán)、工作時(shí)間、硬(按鈕)復(fù)位和超時(shí)。雖然數(shù)字計(jì)數(shù)器很容易構(gòu)建,但如何使它們非易失性和不可復(fù)位并不明顯。本文介紹如何使用現(xiàn)成串行EEPROM的EPROM仿真模式以及一種不尋常的編碼方案來(lái)解決問(wèn)題。
賦予動(dòng)機(jī)
出于保修原因,有時(shí)需要計(jì)算和記錄某些事件,例如電源循環(huán)、工作時(shí)間、硬(按鈕)復(fù)位和超時(shí)。用于此目的的傳統(tǒng)電子計(jì)數(shù)器由觸發(fā)器構(gòu)建,使用二進(jìn)制代碼,如圖1所示。設(shè)置所有觸發(fā)器時(shí)達(dá)到最大計(jì)數(shù),因此計(jì)數(shù)器的大小由感興趣的間隔內(nèi)要計(jì)數(shù)的最大事件數(shù)決定。
位號(hào) | ||||||||||
N+1 | n | ... | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
2n | 2N-1 | ... | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
圖1.在自然二進(jìn)制代碼中,位值從一個(gè)位加倍到下一個(gè)位。
滿足需求
雖然基于人字拖的計(jì)數(shù)器很容易構(gòu)建,但它有很大的缺點(diǎn)。當(dāng)達(dá)到計(jì)數(shù)限制時(shí),它會(huì)滾動(dòng)到零(自行重置)。它的操作也是不穩(wěn)定的——它需要電源來(lái)維持其計(jì)數(shù)狀態(tài)。第一個(gè)問(wèn)題可以通過(guò)在計(jì)數(shù)器達(dá)到其限制時(shí)凍結(jié)計(jì)數(shù)器來(lái)解決;您可以通過(guò)連接電池以保持計(jì)數(shù)器的電源來(lái)解決第二個(gè)問(wèn)題。但這些措施可能是不可接受的,因?yàn)樗鼈儠?huì)增加成本并且只能在有限的時(shí)間內(nèi)起作用。
還有另一種選擇。您可以在 EEPROM 或某種其他形式的非易失性 (NV) 存儲(chǔ)中備份計(jì)數(shù)值。下次上電時(shí),計(jì)數(shù)器可以預(yù)加載存儲(chǔ)在該NV存儲(chǔ)器中的值。然而,除非NV存儲(chǔ)器嵌入到微控制器或FPGA等另一個(gè)芯片中,否則存儲(chǔ)器內(nèi)容是不安全的,因?yàn)榇鎯?chǔ)器芯片可以很容易地在電路板上移除、重新編程(重置)和更換。因此,此方法不滿足不可重置的要求。
過(guò)去的把戲
EPROM是另一種不需要電池的非易失性存儲(chǔ)器。EPROM在1970年代隨著微處理器的出現(xiàn)而變得流行。剛出廠,所有 EPROM 字節(jié)都讀取 FFh。 通過(guò)對(duì)從 1(擦除)到 0(編程)的單個(gè)位進(jìn)行編程來(lái)存儲(chǔ)數(shù)據(jù);編程需要 12V 至 13V 的脈沖。在加載新數(shù)據(jù)之前,您必須通過(guò)封裝中內(nèi)置的窗口將芯片暴露在高強(qiáng)度紫外線下來(lái)擦除整個(gè)內(nèi)存。一次性可編程 (OTP) EPROM 沒(méi)有窗口,因此無(wú)法擦除。由于這些不便,EPROM的普及已經(jīng)減少,取而代之的是EEPROM和高密度閃存,兩者都可以在5V或更低的電壓下工作和編程。盡管如此,通過(guò)將OTP EPROM的單向編程(1比0)和缺乏可擦除性與現(xiàn)代EEPROM技術(shù)相結(jié)合,您可以獲得稱為EPROM仿真模式的新功能。EPROM仿真模式是實(shí)現(xiàn)非易失性、不可復(fù)位計(jì)數(shù)器的關(guān)鍵技術(shù)。
EPROM仿真模式
串行接口EEPROM的一個(gè)常見(jiàn)特性是頁(yè)面寫(xiě)入緩沖器,它允許您在一次沖程中對(duì)整個(gè)存儲(chǔ)器頁(yè)面進(jìn)行編程。收到寫(xiě)入命令后,系統(tǒng)會(huì)自動(dòng)使用尋址內(nèi)存頁(yè)面中的數(shù)據(jù)加載頁(yè)面寫(xiě)入緩沖區(qū)。對(duì)于 EPROM 仿真模式,寫(xiě)緩沖器作為移位寄存器實(shí)現(xiàn)(圖 2)。傳入的新數(shù)據(jù) (D-IN) 饋送到 AND 門(mén),該門(mén)在進(jìn)入緩沖區(qū) (S-IN) 之前將其與緩沖區(qū)數(shù)據(jù) (S-OUT) 組合在一起。因此,AND門(mén)確保存儲(chǔ)器位在編程為0后不能更改為1。在對(duì)頁(yè)面的所有位進(jìn)行完整循環(huán)后,緩沖區(qū)中的數(shù)據(jù)再次與內(nèi)存頁(yè)面中的數(shù)據(jù)對(duì)齊。現(xiàn)在可以開(kāi)始寫(xiě)入周期,將整個(gè)緩沖器復(fù)制回非易失性EEPROM。
圖2.EPROM仿真將新數(shù)據(jù)和現(xiàn)有數(shù)據(jù)的按位邏輯AND寫(xiě)回存儲(chǔ)器。
在 EPROM 中計(jì)數(shù)
由于EPROM位只能在一個(gè)方向上改變,因此傳統(tǒng)的計(jì)數(shù)代碼不起作用。相反,您必須將整個(gè)內(nèi)存數(shù)組視為 n 位的單個(gè)實(shí)體。最初,n位都沒(méi)有編程(全部為1)。若要對(duì)事件進(jìn)行計(jì)數(shù),必須將其中一個(gè)未編程位更改為 0。您可以簡(jiǎn)單地隨機(jī)選擇下一個(gè)位進(jìn)行編程,但圖 3 中的方案更容易實(shí)現(xiàn)。它從最低有效位開(kāi)始,并按順序繼續(xù),直到對(duì)該字節(jié)的所有位進(jìn)行編程。然后,它逐位編程下一個(gè)字節(jié),依此類推。在EPROM仿真模式下,具有1024位的存儲(chǔ)芯片適用于計(jì)算1024個(gè)事件。
計(jì)數(shù) 值 |
十六進(jìn)制 代碼 |
位號(hào) | |||||||
8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | ||
0 | FFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
1 | FEh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
2 | ECK | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
3 | F8h | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
4 | F0h | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
5 | E0h | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
6 | C0h | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 80h | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 00h | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
圖3.在EPROM中計(jì)數(shù)需要一個(gè)代碼,每個(gè)位都具有相同的位值。
支持EPROM仿真模式的芯片
雖然EPROM仿真模式易于實(shí)現(xiàn),但在撰寫(xiě)本文時(shí),只有Maxim提供此類產(chǎn)品。存儲(chǔ)器密度為1Kb(DS2431、DS28CN01和DS28E01)和20Kb(DS28EC20)。所有這些芯片都帶有一個(gè)唯一的工廠編程識(shí)別號(hào)。除DS2431和DS28EC20外,具有EPROM仿真模式的產(chǎn)品均為安全存儲(chǔ)器;只有基于設(shè)備特定密鑰生成消息身份驗(yàn)證代碼的主服務(wù)器才能獲得寫(xiě)入訪問(wèn)權(quán)限。
示例流程圖
例如,考慮DS2431存儲(chǔ)器芯片,其中存儲(chǔ)器頁(yè)0配置為在EPROM仿真模式下實(shí)現(xiàn)256位計(jì)數(shù)器。32 字節(jié)頁(yè)面可以使用 64 位暫存器作為中間存儲(chǔ),以每個(gè) 8 字節(jié)的塊的形式更新。圖4中的算法檢測(cè)具有未編程位的第一個(gè)塊,遞增計(jì)數(shù)值,然后將該塊寫(xiě)回EEPROM。
圖4.此算法遞增 32 字節(jié)內(nèi)存頁(yè)中的計(jì)數(shù)器。
結(jié)論
包含EPROM仿真模式的EEPROM是實(shí)現(xiàn)非易失性、不可復(fù)位計(jì)數(shù)器的首選產(chǎn)品。內(nèi)存芯片的序列號(hào)可用于檢測(cè)篡改,即用計(jì)數(shù)值較低的內(nèi)存芯片替換內(nèi)存芯片。為了防止計(jì)數(shù)器的未經(jīng)授權(quán)的增量,應(yīng)使用需要消息身份驗(yàn)證代碼進(jìn)行寫(xiě)入訪問(wèn)的安全存儲(chǔ)芯片。
審核編輯:郭婷
-
電源
+關(guān)注
關(guān)注
184文章
17809瀏覽量
251082 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2259瀏覽量
94823 -
EEPROM
+關(guān)注
關(guān)注
9文章
1028瀏覽量
81794
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論