新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)系統(tǒng)中的掉電檢測與數(shù)據(jù)存儲問題

單片機(jī)系統(tǒng)中的掉電檢測與數(shù)據(jù)存儲問題

作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
1)總體思路

由于電能表的計量是要求持續(xù)性的,而主供電系統(tǒng)不可能是持續(xù)的,注意這里需要一個掉電檢測數(shù)據(jù)存儲的問題。首先檢測出供電系統(tǒng)已經(jīng)斷電,然后啟用備用電源存儲數(shù)據(jù),而且數(shù)據(jù)必須存儲在掉電不易失的存儲器(如EEPROM,F(xiàn)LASH等)中。

本文引用地址:http://butianyuan.cn/article/201611/316455.htm

本應(yīng)用中,需要檢測出掉電后備用電源能提供足夠的電能供單片機(jī)進(jìn)行數(shù)據(jù)存儲??傮w思路,本應(yīng)用中單片機(jī)采用的是STC89C58RD+,單片機(jī)內(nèi)部已經(jīng)集成了16K的EEPROM,所以不需要另外外接存儲器。ADE7755已經(jīng)自帶了電源監(jiān)控功能,前面的ADE7755的介紹中已經(jīng)有所描述,所以亦無須擔(dān)心。這里只需要解決好單片機(jī)的掉電問題即可。在系統(tǒng)的穩(wěn)壓前端設(shè)置監(jiān)測點,當(dāng)監(jiān)測點的電壓下降到另一個基準(zhǔn)比較電壓時產(chǎn)生單片機(jī)外部中斷。當(dāng)單片機(jī)接收到外部中斷后啟動數(shù)據(jù)存儲程序,將數(shù)據(jù)存儲到片內(nèi)EEPROM內(nèi)。當(dāng)主供電系統(tǒng)恢復(fù)供電后,單片機(jī)首先讀取EEPROM數(shù)據(jù),然后再恢復(fù)計數(shù)。

2)掉電檢測

有電壓采集轉(zhuǎn)換、電壓比較等方案。經(jīng)過綜合考慮,這里采用LM393比較器來對比監(jiān)測點與參考點電壓,一旦監(jiān)測點電壓降到某種程度,比較器就會有高電平輸出,由此產(chǎn)生單片機(jī)外部中斷。

另外有一種反其道而行之的方案。在降壓后的交流端加一個光耦產(chǎn)生中斷,一旦中斷消失程序轉(zhuǎn)向數(shù)據(jù)存儲。

3)備用電源

雖然備用電源可以采用可充電電池,大電容等方案,但由于這里所需要的電量并不是很大,持續(xù)時間也不需要很長,只需要能完成數(shù)據(jù)存儲即可。所以這里選擇了大電容作為備用電源這一方案。選擇了在穩(wěn)壓后端與單片機(jī)電源端直接并聯(lián)了兩個達(dá)3300uF的大容量電解電容。同時,為安全起見,在單片機(jī)的電源輸入端還串入了一個低正向壓降壓降的二極管來阻止大電容向除單片機(jī)意外的其他電路放電。

4)數(shù)據(jù)存儲

不可易失存儲方案很多,比如EEPROM,F(xiàn)LASH,鐵電等。但Flash讀寫比較麻煩,鐵電也需要另加外圍器件,所以這里選擇單片機(jī)內(nèi)置的EEPROM無疑是最好的選擇。不僅讀寫簡單方便,可多次擦寫,減少外圍器件與單片機(jī)IO口,而且為備用電源減輕了很大的負(fù)擔(dān)。

最后,需要說明的是,實際上現(xiàn)在很多高檔單片機(jī)已經(jīng)集成上述功能。比如AVR自帶的BOD(Brown-outDetection)電路,內(nèi)置模擬比較器,C8051F系列自帶AD而且在掉電時自動產(chǎn)生中斷。也有獨立的專用復(fù)位芯片,如TPS3705,ISL88706等。

5)理論計算

(1)按恒流充放電的簡化計算:Q=CV=IT.Q是電量,C是電容量,V是電壓,I是電流,T是時間

那么T=CV/I,在本例中可以估算時間為T=0.0033f*(5.0V-3.8V)/0.012A=0.33s,即330ms.

330/8.5=38.8mS,即最多可以保存38字節(jié)數(shù)據(jù)到EEPROM中,38字節(jié)對于本應(yīng)用已經(jīng)足夠。

數(shù)據(jù)說明:

單片機(jī)在3.8V到5.5V之間工作正常;單片機(jī)的工作電流典型值是4mA;最大工作電流20mA;普通外置EEPROM的讀寫一個字節(jié)的時間是8.5mS左右。據(jù)下面引述資料顯示,此計算是保守估算,故可靠性有所保證。

STC單片機(jī)datasheet上是這樣描述的:

1.同一次修改的數(shù)據(jù)放在同一扇區(qū)中,不是同一次修改的數(shù)據(jù)放在另外的扇區(qū),就不須讀出保護(hù)。

2.如果一個扇區(qū)只用一個字節(jié),那就是真正的EEPROM,STC 單片機(jī)的Data Flash 比外部EEPROM 要快很多,讀一個字節(jié)/ 編程一個字節(jié)大概是0.2uS/60uS。

3.如果在一個扇區(qū)中存放了大量的數(shù)據(jù),某次只需要修改其中的一個字節(jié)或一部分字節(jié)時,則另外的不需要修改的數(shù)據(jù)須先讀出放在STC單片機(jī)的RAM中,然后擦除整個扇區(qū),再將需要保留的數(shù)據(jù)和需修改的數(shù)據(jù)一并寫回該扇區(qū)中。這時每個扇區(qū)使用的字節(jié)數(shù)是使用的越少越方便(不需讀出一大堆需保留數(shù)據(jù))。



評論


技術(shù)專區(qū)

關(guān)閉