摘要:介紹具有SPI接口的多功能實時時鐘器件M41T94,它具有精度高、功耗低等特點。提出一種M41T94在配網(wǎng)監(jiān)測終端中的應(yīng)用設(shè)計。結(jié)合單片機C8051F340的控制,給出配網(wǎng)監(jiān)測終端實時時鐘模塊的軟硬件設(shè)計。
關(guān)鍵詞:實時時鐘;M41T94;配網(wǎng)監(jiān)測;SPI接口
1 引言
??? 在單片機應(yīng)用和智能儀器儀表中,尤其是分布式控制系統(tǒng),實時時鐘已成為不可或缺的一部分。實時時鐘器件不僅提供系統(tǒng)時鐘,而且還附帶其他功能,服務(wù)于應(yīng)用系統(tǒng)。一般時鐘器件存在精度低,功耗大,功能少,操作繁瑣諸多不足。復(fù)雜系統(tǒng)采用高性能多功能的時鐘器件,可減少分立元件,提高系統(tǒng)集成度和穩(wěn)定性。因此,基于實時時鐘的功能特點,提出一種基于M41T94在配網(wǎng)監(jiān)測終端應(yīng)用的設(shè)計方案。
2 M41T94簡介
??? M41T94是一款高精度、多功能、低功耗實時時鐘器件,使用SPI串行總線與外部單片機MCU傳輸數(shù)據(jù)。M41T94除具有大多數(shù)時鐘器件的時鐘和日歷、鬧鐘設(shè)置功能外,還提供更精確的時鐘(十分之一秒、百分之一秒),以及掉電時間自動鎖存、時間標(biāo)定、看門狗等功能。M41T94實時時鐘器件采用SOIC封裝,具有16引腳和28引腳兩種版本類型,其引腳配置如圖1所示。其中28引腳版本內(nèi)部封裝電池和晶體振蕩器,而16引腳版本則需外接電池和品體振蕩器。
??? 以16引腳版本為例,其主要引腳功能為:
??? SDO(Serial Data Output):串行數(shù)據(jù)輸出引腳。該引腳通過SPI接口輸出時鐘、日歷、控制及狀態(tài)信息。
??? SDI(Serial Data Input):串行數(shù)據(jù)輸入引腳。該引腳輸入命令字及數(shù)據(jù)信息。E(Chip Enable):器件使能引腳。當(dāng)E為高電平時,器件禁止,SDO保持高阻狀態(tài);器件操作前,須先將E置為低電平。
??? VBAT(Battery Support Voltage):外部電池供電引腳。系統(tǒng)掉電時,M41T94自動切換至電池供電。
??? RST(Reset Output):復(fù)位輸出引腳。當(dāng)監(jiān)測到掉電或其他復(fù)位輸出時,RST輸出復(fù)位信號用于控制器的復(fù)位源。
??? M41T94采用SPI接口,便于與單片機通信;并具有64字節(jié)帶電保護RAM,其中20個8位寄存器供內(nèi)部時鐘系統(tǒng)使用,44字節(jié)通用NVRAM供用戶使用。通過SPI接口,主機發(fā)送不同的命令字選擇相應(yīng)的寄存器,實現(xiàn)對M41T94的讀寫及控制操作。
3 配網(wǎng)監(jiān)測終端的實時時鐘系統(tǒng)
??? 配網(wǎng)監(jiān)測系統(tǒng)是南配網(wǎng)監(jiān)測終端構(gòu)成的分布式電網(wǎng)參數(shù)監(jiān)測系統(tǒng)。監(jiān)測終端實時測量并計算電壓、電流、有功功率、無功功率、功率因素等電網(wǎng)參數(shù);統(tǒng)計和記錄供電時間、停電時刻、停電時間、來電時刻、日供電合格率、月供電合格率、正點電壓值等信息。因此,時鐘是監(jiān)測終端不可或缺的部分。由于監(jiān)測終端長時間的掛網(wǎng)運行,且記錄的參數(shù)都與時間有關(guān),要求時鐘具有較高的走時精度。M41T94時鐘計時可達百分之一秒,并具有掉電時間鎖定,時鐘標(biāo)定等功能,能夠滿足配網(wǎng)監(jiān)測終端的要求。M41T94在配網(wǎng)監(jiān)測終端中主要實現(xiàn)系統(tǒng)掉電、上電時間記錄、自身時間標(biāo)定、系統(tǒng)定時校時等任務(wù)。在配網(wǎng)監(jiān)測終端中,記錄配網(wǎng)停電、來電時刻是配網(wǎng)運行狀態(tài)的重要參數(shù)。正常運行狀態(tài)下,M41T94內(nèi)部時鐘寄存器數(shù)據(jù)不斷刷新,實時記錄當(dāng)前時刻時間,當(dāng)M41T94自動監(jiān)測VCC下降到監(jiān)測點VCC時,寄存器0Ch單元的HT位硬件置為1,阻止時鐘寄存器刷新,此時時鐘寄存器的數(shù)據(jù)就是準(zhǔn)確的掉電時間。當(dāng)發(fā)生掉電時,M41T94能夠自動切換電源,利用外部電池供電,時鐘保持正常運行,這樣就保證時間的準(zhǔn)確性和實時性。因此,當(dāng)C8051F340單片機上電復(fù)位時,它首先讀取實時時鐘的時間,即為掉電時刻的時間值,然后由軟件將HT位清零,M41T94用當(dāng)前實時時間刷新時鐘寄存器,再次讀取,就可得到上電時刻時間。為了保證讀取的上電時間準(zhǔn)確,要求在上電復(fù)位后盡快完成上電時間的讀取。
??? 配網(wǎng)監(jiān)測終端是在外界環(huán)境下運行,要求測量終端具有較高的時間精度,M41T94本身具有高走時精度,但在長時間的運行中,產(chǎn)生時間漂移,造成時間的累積誤差。通過時間標(biāo)定,進一步提高M41T94的精度,從而大幅減少這種累積誤差。M41T94的分級校正是以每64 min為一個校正循環(huán),每個調(diào)級刻度將對每64 min的前62 min產(chǎn)生校正。而M41T94的外接晶體振蕩器為32768 Hz。因此,每個調(diào)級刻度,即是對每125 829 120(64分×60秒/分×32 768周期/秒)個實際的晶振周期中,增加512個,或減少256個振動周期,即+4.068 ppm或-2.034 ppm。通過實際測試,得到各個溫度段的晶振校正系數(shù),建立每個溫度段的時鐘校正系數(shù)表。根據(jù)當(dāng)前溫度,設(shè)定相應(yīng)的校正系數(shù),從而得到精確時鐘。通過標(biāo)定后,在25℃溫度下,時鐘的精度優(yōu)于±2 ppm。
??? 終端實時時鐘的定時校時能夠消除由于累積誤差造成的時間漂移,保證實時時間的準(zhǔn)確性。在配網(wǎng)監(jiān)測終端中,實時時鐘M41T94本身具有較高精度,經(jīng)時間標(biāo)定后,可進一步提高精度,使其一年的時鐘累積誤差約±1 min。因此在滿足系統(tǒng)要求的同時,可設(shè)定每半年進行一次時鐘校準(zhǔn)。M41T94有鬧鈴定時功能,利用此功能定時時鐘校準(zhǔn),通過向0Ah~0Eh寄存器寫入準(zhǔn)確時間值,并置AFE位為1。當(dāng)時鐘時間與該時間匹配時,標(biāo)志位AF置1,且激活I(lǐng)RQ/FT/OUT引腳產(chǎn)生中斷,通知MCU校時時間到,MCU通過向時鐘服務(wù)器請求獲取當(dāng)前準(zhǔn)確時間進行實時時鐘校準(zhǔn)。同時,重新設(shè)置0Ah~0Eh寄存器的數(shù)值,為下次校時作準(zhǔn)備。根據(jù)M41T94的特點和功能,適用于配網(wǎng)監(jiān)測終端時鐘系統(tǒng)。
4 M41T94在配網(wǎng)監(jiān)測終端中的應(yīng)用
4.1 硬件設(shè)計
??? 采用增強型的51單片機C8051F340作為控制器,圖2為C8051F340與M41T94的接口電路。單片機C8051F340平均每個時鐘周期執(zhí)行1條單周期指令,在相同時鐘下,大大提高了指令運行速度。該設(shè)計系統(tǒng)上電后,要求在軟件控制下快速讀取掉電和上電時間,C8051F340的快速運行能夠保證讀取時間的準(zhǔn)確性;C8051F340還具有64 K字節(jié)的Flash和SPI接口,便于與M41T94數(shù)據(jù)通信和存儲;C8051F340具有多路A/D轉(zhuǎn)換,在電網(wǎng)測量系統(tǒng)中可減少A/D轉(zhuǎn)換的分立元件,增加系統(tǒng)的集成度和穩(wěn)定性;C8051F340具有可編程數(shù)字I/O和交叉開關(guān),允許將片內(nèi)數(shù)字系統(tǒng)資源映射到端口I/O引腳,用戶可根據(jù)特定應(yīng)用選擇通用I/O端口和所需數(shù)字資源的組合;同時C8051F340具有與標(biāo)準(zhǔn)51單片機相同的指令集、軟件設(shè)定I/O端口配置、可通過JTAG接口在線調(diào)試等特性,因此,C8051F340適合用作系統(tǒng)控制器.
??? M41T94使用SPI串行通信接口,易于實現(xiàn)與具有SPI接口單片機C8051F340的數(shù)據(jù)通信。SPI接口通信是通過SDI、SDO、SCK和E等引腳實現(xiàn)。圖2中R54-2,R54-3和R54-4為SPI總線的上拉電阻,M41T94片選信號E引腳與C8051F340的P4.4引腳連接;M41T94的復(fù)位輸出RST引腳與C8051F340的RST連接,將C8051F340的RSTSRC.1(PORSF位)清零,禁止C8051F340內(nèi)部VDD監(jiān)視器作為MCU的復(fù)位源,這樣當(dāng)?shù)綦姇r,M41T94輸出復(fù)位信號使MCU復(fù)位,防止MCU對M41T94讀取數(shù)據(jù)錯誤。
4.2 軟件設(shè)計
??? C8051F340通過串行通信接口SPI控制M41T94。通信時,C8051F340選用主模式作為主機,M41T94作為從機。為了與M41T94相對應(yīng),C8051F340采用3線連接模式,不使用NSS。控制位CPHA(SPI0CN.5)=1,SCK時鐘第2個邊沿采樣數(shù)據(jù),CPOL(SPI0CN.4)=1,空閑狀態(tài)時,SCK引腳為高電平。只有片選信號E置為低電平,C8051F340才能控制M41T94,當(dāng)E變高時,通信結(jié)束。首先時鐘器件E引腳置為低電平,緊接著單片機通過SPI接口發(fā)送命令字,然后對M41T94讀取或?qū)懭霐?shù)據(jù)。對內(nèi)部RAM的讀寫各有兩種方式,單字節(jié)讀寫和多字節(jié)連續(xù)讀寫。前者發(fā)送一次操作命令只讀/寫1個字節(jié)數(shù)據(jù),后者發(fā)送1次命令可連續(xù)讀寫多個字節(jié)數(shù)據(jù)。SPI的數(shù)據(jù)傳輸是從每一個字節(jié)的最高位(MSB)開始。C8051F340對M41T94的連續(xù)讀取模式中命令字包括一個8位字節(jié),該字節(jié)的最高位(D7)為讀/寫選擇位,D7=1時,表示對M41T94寫操作,D7=0時,表示讀M41T94數(shù)據(jù);該字節(jié)低7位為M41T94的地址選擇位,在連續(xù)讀寫模式下,該地址為連續(xù)讀/寫的起始地址,在讀/寫過程中,地址指針自動遞增,當(dāng)遞增到3Fh后,指針自動返回到首地址(00h)。當(dāng)對時鐘、日歷寄存器(00~07h)讀寫,或掉電時,M41T94停止對這些寄存器(00~07h)的刷新,以保證讀寫數(shù)據(jù)的準(zhǔn)確性。
4.2.1 初始化
??? C8051F340對M41T94的控制就是讀寫M41T94的寄存器和NVRAM。在M41T94讀寫前,C8051F340首先要對其初始化,即對M41T94寄存器初始化,其程序代碼如下:
4.2.2 實時時鐘掉電、上電時間
??? 當(dāng)系統(tǒng)掉電時,M41T94自動鎖存掉電時間,上電后讀取掉電時間和當(dāng)前實時時間。其相應(yīng)程序代碼如下:
5 結(jié)束語
??? M41T94的時鐘精度高,功耗低,掉電時可自動切換供電電源,并具有掉電時間自動鎖存、時間標(biāo)定、時鐘校準(zhǔn)等功能,因此該器件可廣泛應(yīng)用于電力系統(tǒng)、工業(yè)控制、智能儀器儀表、消費類電子產(chǎn)品.
評論
查看更多