本應(yīng)用筆記介紹如何使用DS1602或DS1603經(jīng)過時(shí)間計(jì)數(shù)器記錄電源循環(huán)信息。
引腳分配
描述
達(dá)拉斯半導(dǎo)體的DS1602和DS1603提供了一種簡(jiǎn)化的硬件解決方案,用于保持時(shí)間和跟蹤系統(tǒng)的上電時(shí)間。DS1602和DS1603可由微處理器或微控制器使用簡(jiǎn)單的軟件直接讀寫;但是,可以使用更具創(chuàng)造性的軟件算法來跟蹤年,月,日,星期幾,一天中的時(shí)間等。此外,DS1602/DS1603和適當(dāng)?shù)能浖部梢愿櫳想姇r(shí)間和上電周期數(shù)。
DS1602/DS1603中的連續(xù)計(jì)數(shù)器和上電計(jì)數(shù)器均為32位計(jì)數(shù)器,以秒為單位,可通過DS1602/DS1603三線串行接口讀寫。對(duì)于最基本的實(shí)現(xiàn):
連續(xù)計(jì)數(shù)器將設(shè)置一次并遞增,直到達(dá)到最大值;
通電計(jì)數(shù)器最初將清除一次,然后遞增,直到達(dá)到最大值。
通過這兩個(gè)假設(shè),每個(gè)計(jì)數(shù)器都能夠計(jì)數(shù)到最大值 (232-1) 秒,即 4.29 x 109秒(約136年)。
對(duì)于需要100+年連續(xù)計(jì)時(shí)能力的系統(tǒng),可能需要整個(gè)32位計(jì)數(shù)器;但對(duì)于所需最大連續(xù)計(jì)數(shù)器時(shí)間可能約為5年的用戶,未使用的計(jì)數(shù)器位空間可以更好地用作存儲(chǔ)上電循環(huán)信息的存儲(chǔ)器位。
如圖1所示,DS1602/DS1603可以分區(qū),提供連續(xù)時(shí)間計(jì)數(shù)器和上電時(shí)間計(jì)數(shù)器,可計(jì)數(shù)長(zhǎng)達(dá)4.75年,剩余的較高位可用作讀/寫非易失性存儲(chǔ)器。
軟件實(shí)現(xiàn)需要使用三個(gè)寄存器,因此必須將第三個(gè)寄存器映射到可用的兩個(gè)寄存器中,如圖1所示。
下面是如何使用計(jì)數(shù)器完成此任務(wù)的示例。
圖1.將三個(gè)寄存器映射到兩個(gè)寄存器。
連續(xù)計(jì)數(shù)器地圖
位 1-24:保持為連續(xù)時(shí)基測(cè)量,最高可達(dá) 16.7 x 106秒或 0.53 年。
位 25:緩沖位或溢出位;當(dāng)連續(xù)時(shí)間計(jì)數(shù)器達(dá)到其最大值并且尚未被處理器讀取和重置時(shí)。該位還用于將寄存器的對(duì)應(yīng)部分與將用作存儲(chǔ)器位的部分分開。
位 26-28:連續(xù)運(yùn)行時(shí)間的年數(shù) x 0.53。
位 29-32:電源循環(huán)次數(shù) x 128。這四個(gè)位用作寄存器,對(duì)于上電計(jì)數(shù)器的第26-32位中達(dá)到的每個(gè)完整計(jì)數(shù),寄存器遞增一次。
通電柜臺(tái)地圖
位 1-24:保持為上電秒數(shù)的非易失性秒數(shù)測(cè)量值,最多可存儲(chǔ) 16.7 x 106 秒或 0.53 年。
位 25:緩沖位或溢出位;當(dāng)上電計(jì)數(shù)器達(dá)到其最大值且尚未被處理器讀取和復(fù)位時(shí)。該位還用于將寄存器的對(duì)應(yīng)部分與將用作存儲(chǔ)器位的部分分開。
位26-32:上電計(jì)數(shù)器的高7位是DS1602或DS1603上電周期數(shù)的1-127個(gè)存儲(chǔ)區(qū)。
在采用這一規(guī)則和適當(dāng)?shù)能浖惴ǖ那闆r下,DS1602/DS1603的獨(dú)立計(jì)數(shù)器保持上電時(shí)間和連續(xù)時(shí)間,而上電周期數(shù)和經(jīng)過時(shí)間年數(shù)x 0.53則保持在用作存儲(chǔ)器的計(jì)數(shù)器的高階位中。
這種實(shí)現(xiàn)方式要求微控制器必須準(zhǔn)備每年至少讀/寫一次DS1602或DS1603。
用于連續(xù)時(shí)間跟蹤
當(dāng)連續(xù)計(jì)數(shù)器的較低 24 位超過 0.53 年并將位 25 設(shè)置為 1 時(shí),控制器必須讀取連續(xù)計(jì)數(shù)器,確定位 25 的狀態(tài),如果為 1,則清除位并將位 26-28 中的值增加半年。如果未設(shè)置第 25 位,則寄存器的較低 24 位尚未達(dá)到 0.53 年,并且可以繼續(xù)計(jì)數(shù)。
一旦位 26-28 中的值達(dá)到 111 或 7 x 0.53 年,連續(xù)時(shí)間計(jì)數(shù)器可以繼續(xù)在較低的 24 位中計(jì)數(shù)長(zhǎng)達(dá) 1.06 年,加上位 25 中的 0.53 溢出,最大值為 9 x 0.53 年。
圖2.用于連續(xù)時(shí)間跟蹤。
用于上電時(shí)間跟蹤
當(dāng)上電計(jì)數(shù)器的下24位超過0.53年并將計(jì)數(shù)器的第25位設(shè)置為1時(shí),控制器必須讀取上電計(jì)數(shù)器,確定位25的狀態(tài),如果為1,則清除位并將值存儲(chǔ)在外部存儲(chǔ)器中,以便上電計(jì)數(shù)器可以繼續(xù)計(jì)數(shù)。DS1602/DS1603中以這種方式存儲(chǔ)的最長(zhǎng)上電時(shí)間為2 x 0.53年。
圖3.用于上電時(shí)間跟蹤。
用于上電周期數(shù)跟蹤
使用DS1603或DS1602執(zhí)行此功能主要是一項(xiàng)軟件任務(wù)。當(dāng)最初使用起始值寫入或清除時(shí),上電計(jì)數(shù)器的第25-32位必須設(shè)置為0。此后每次上電時(shí),連接到DS1603的控制器或處理器必須讀取上電計(jì)數(shù)器,并檢查存儲(chǔ)在高電平7位中的值。如果該值小于 1111111,則控制器必須遞增該值并將其寫回 7 個(gè)高階位。如果高階位中的值1111111,則控制器必須將值設(shè)置為 0000000,讀取連續(xù)時(shí)間計(jì)數(shù)器的高 4 位中的值,將其遞增 1,然后將新值寫回高 4 位。利用這種軟件算法,DS1603或DS1602可用于記錄和存儲(chǔ)多達(dá)2,047次電源周期。
圖4.用于上電周期數(shù)跟蹤。
審核編輯:郭婷
-
電源
+關(guān)注
關(guān)注
184文章
17704瀏覽量
249961 -
微處理器
+關(guān)注
關(guān)注
11文章
2258瀏覽量
82403 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2256瀏覽量
94478
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論