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