嵌入式應(yīng)用的智能型實(shí)時(shí)時(shí)鐘功能
日期時(shí)間功能
圖1是smartclock模塊的功能方框圖。此電路可以執(zhí)行實(shí)時(shí)時(shí)鐘的所有傳統(tǒng)功能以及某些“故障安全”(failsafe) 功能,例如電源故障和時(shí)鐘源故障的復(fù)原。
本文引用地址:http://m.butianyuan.cn/article/21073.htm smartclock的基本時(shí)鐘單元是一個(gè)47位的自由定時(shí)器 (free-running counter),它能使用32.768khz的石英晶體或是在20khz或40khz頻率下操作的內(nèi)部自激振蕩器模式 (自激振蕩器較省電,但精確度較差)。如果使用外接石英晶體,自由定時(shí)器第二個(gè)字節(jié)的最低有效位每秒就能準(zhǔn)確計(jì)時(shí)。日歷時(shí)間是由軟件根據(jù)自由定時(shí)器來決定的,因此不需要另一組寄存器以傳統(tǒng)格式記錄日期時(shí)間。采用軟件的好處之一是使用者更有能力控制系統(tǒng)操作,因?yàn)樗麄兛梢愿鶕?jù)系統(tǒng)需求使用復(fù)雜或簡單的算法,例如利用芯片內(nèi)置的溫度傳感器把通常相當(dāng)復(fù)雜的溫度補(bǔ)償功能加入算法中。除此之外,若系統(tǒng)不必經(jīng)常喚醒,那么操作這項(xiàng)控制功能所造成的額外負(fù)擔(dān)就顯得微不足道。smartclock模塊中有三個(gè)接口寄存器可用來控制內(nèi)部寄存器,這將系統(tǒng)所需的特殊功能寄存器減至最少,同時(shí)提供一個(gè)抽象層以避免定時(shí)器內(nèi)容被誤改。使用者還可以設(shè)定鬧鈴寄存器 (alarm register),以便在47位自由定時(shí)器等于某個(gè)默認(rèn)值時(shí)啟動(dòng)硬件中斷來執(zhí)行特定工作。這類功能通常又稱為“輸出比較”。
微控制器還能提供一種稱為“暫?!蹦J降牡秃碾娔J?。在這種模式下,smartclock模塊產(chǎn)生的鬧鈴中斷可以在一個(gè)系統(tǒng)時(shí)鐘周期內(nèi)將系統(tǒng)喚醒 (不需要重新設(shè)定器件)。
溫度補(bǔ)償
具備溫度補(bǔ)償?shù)氖⒄袷幤骱蛯?shí)時(shí)時(shí)鐘芯片通常比沒有溫度補(bǔ)償功能的元器件貴很多,但由于石英振蕩器的頻率常會(huì)隨著周圍溫度、電壓和使用時(shí)間而改變,所以系統(tǒng)需要某種形式的溫度補(bǔ)償才能在很大的溫度范圍內(nèi)提供精確的時(shí)間和日期數(shù)據(jù)。
幸而c8051f410微控制器已如圖2所示內(nèi)建精確度 3%的溫度傳感器,使得時(shí)間日期算法能夠利用芯片內(nèi)建溫度傳感器傳來的信息進(jìn)行溫度補(bǔ)償。這種做法的好處是系統(tǒng)可以使用不含溫度補(bǔ)償功能的低成本石英振蕩器。
為了進(jìn)行溫度補(bǔ)償算法,系統(tǒng)必須用芯片內(nèi)置溫度傳感器每分鐘測量周圍溫度一次。多數(shù)操作環(huán)境的溫度在這么短時(shí)間里通常不會(huì)改變太多,因此系統(tǒng)會(huì)利用溫度測量值來計(jì)算誤差值 (以ppm表示) 并將結(jié)果 (所需補(bǔ)償?shù)奈⒚霐?shù)) 儲(chǔ)存至內(nèi)存。系統(tǒng)會(huì)將每分鐘傳來的誤差計(jì)算結(jié)果累加在一起,等到一天結(jié)束后就由算法補(bǔ)償當(dāng)天的時(shí)間誤差。
smartclock還會(huì)提供圖2所示的許多其他功能,例如電源、電池切換電路、時(shí)鐘源、備用ram內(nèi)存和實(shí)時(shí)時(shí)鐘方塊本身。然而這套模塊的真正優(yōu)點(diǎn)仍在于它把這些功能整合至一顆芯片,免除了使用多顆不同元器件所造成的芯片間數(shù)據(jù)互傳負(fù)擔(dān)。
電源故障處理
芯片內(nèi)置穩(wěn)壓器能連接至2.0~5.25v的任何電壓。處理器實(shí)際使用2.5v電源,但它會(huì)與芯片的i/o系統(tǒng)電源分開,這樣微控制器就能在不需要任何中間界面的情形下用于2.0~5.25v的各種系統(tǒng)。vio接腳可連接至系統(tǒng)電壓供應(yīng),讓i/o和系統(tǒng)的其他裝置使用相同的電壓操作。除了主電源供應(yīng)外,vbat輸入還能連接至電壓最低1.0v的電池,由它做為smartclock的備用電源。
整合式smartclock的第一個(gè)優(yōu)點(diǎn)是系統(tǒng)電源供應(yīng)若降至vbat電壓以下,芯片內(nèi)含的電池切換電路就會(huì)從smartclock自動(dòng)切換至備用電池。這表示實(shí)時(shí)時(shí)鐘能在電源故障時(shí)繼續(xù)操作,smartclock模塊內(nèi)的專屬備用ram內(nèi)存也能繼續(xù)保持它們的數(shù)據(jù)。系統(tǒng)只要利用簡單軟件將系統(tǒng)狀態(tài)定時(shí)儲(chǔ)存至這個(gè)備用ram內(nèi)存,就能在主電源供應(yīng)恢復(fù)正常后讓系統(tǒng)回到已知狀態(tài),系統(tǒng)測量所得的重要數(shù)據(jù)也不會(huì)遺失。微控制器重置時(shí),系統(tǒng)會(huì)執(zhí)行一個(gè)例程來檢查重置資源寄存器 (reset sources register) 以便判斷系統(tǒng)電源是否曾經(jīng)中斷,重置例程接著會(huì)讀取備用ram內(nèi)存的內(nèi)容并將處理器和工作寄存器的重要內(nèi)容復(fù)原。舉例來說,這顆元器件若用于電表,它很容易就能追蹤停電的日期時(shí)間和長短,同時(shí)精確保存停電前的用電信息。等到主電源恢復(fù)后,電池切換電路會(huì)將微控制器切換回主電源,然后將電池備用電源切斷以確保備用電池?fù)碛凶铋L的壽命。
時(shí)鐘故障處理
對(duì)于使用獨(dú)立元器件的傳統(tǒng)系統(tǒng)而言,時(shí)鐘故障的危害性可能還超過電源故障。c8051f410通常會(huì)將芯片內(nèi)建振蕩器產(chǎn)生的24.5mhz信號(hào)倍頻成為49mhz的系統(tǒng)頻率,同時(shí)確保它在整個(gè)操作電壓和溫度范圍內(nèi)都能達(dá)到2%的精確度。它也能使用外接石英晶體,但這種做法并無必要,因?yàn)樾酒瑑?nèi)建振蕩器的精確度已足以讓內(nèi)部功能和序列通訊操作達(dá)到規(guī)格要求。smartclock可透過xtal3和xtal4管腳連接低成本的32.768khz石英晶體,無論smartclock電源來自系統(tǒng)主電源或備用電池,石英晶體都會(huì)透過smartclock模塊從這些管腳汲取電源。
在傳統(tǒng)系統(tǒng)中,如果32.768khz石英晶體出現(xiàn)問題,系統(tǒng)就會(huì)隨著實(shí)時(shí)時(shí)鐘源消失而遭受無法復(fù)原的故障。整合式smartclock提供獨(dú)立的時(shí)鐘消失偵測電路,石英晶體故障會(huì)讓元器件執(zhí)行重置動(dòng)作,同時(shí)設(shè)定重置資源寄存器里的某個(gè)標(biāo)志來顯示石英晶體故障。等到微控制器完成重置動(dòng)作后,系統(tǒng)即可從仍由備用電池供電的備用ram內(nèi)存里取出最后一次儲(chǔ)存的系統(tǒng)狀態(tài)信息。
32.768khz石英晶體還能切換成主系統(tǒng)頻率,使得微控制器能在低頻率下操作。這能用于需要定時(shí)進(jìn)入睡眠狀態(tài)、但仍須在低速和低耗電模式下繼續(xù)工作的系統(tǒng)。
把常用功能整合至微控制器還能帶來其他明顯好處,例如電表、銷售點(diǎn)終端裝置和數(shù)據(jù)記錄器等許多系統(tǒng)都會(huì)用到定時(shí)喚醒、服務(wù)提醒和時(shí)間戳記等功能。增加“故障安全”功能也有很大好處,它能在電源或時(shí)鐘故障時(shí)將系統(tǒng)復(fù)原,同時(shí)保存“最后一次已知”的系統(tǒng)狀態(tài)信息。
smartclock增加了許多有用功能,因?yàn)樗茉?個(gè)系統(tǒng)時(shí)鐘周期內(nèi)從暫停操作模式迅速回到最高系統(tǒng)頻率的全速操作模式,同時(shí)提供3項(xiàng)重要的故障安全功能:確保時(shí)鐘功能在電源故障時(shí)繼續(xù)運(yùn)作、確保系統(tǒng)在時(shí)鐘故障時(shí)繼續(xù)運(yùn)作、以及將系統(tǒng)還原為最后已知狀態(tài)以便讓它們從故障中復(fù)原。
評(píng)論