摘要 本文介紹由TI 公司的MSP430F435 單片機(jī)和EPSON公司推出的高精度時(shí)鐘芯片RTC-4553組合成電能表的時(shí)間測(cè)量系統(tǒng),由于時(shí)鐘芯片的固有的溫度漂移而引起時(shí)間誤差,為提高芯片的計(jì)時(shí)精度,采用軟件補(bǔ)償。 關(guān)鍵詞 MSP430 RTC--4553 電能表 1、前言 目前新型的電子式多費(fèi)率電能表已逐漸取代老式電子電能表。多費(fèi)率電能表計(jì)量不同時(shí)間段的用電量,根據(jù)不同的電能費(fèi)率計(jì)算出用戶使用電能費(fèi)用。本文基于德州儀器的MSP430F435單片機(jī),結(jié)合EPSON公司推出的高精度時(shí)鐘芯片RTC-4553芯片,對(duì)多費(fèi)率電能表的工作時(shí)間進(jìn)行測(cè)量。由于電能表在不同地域及不同季節(jié)使用,溫差很大,存在一定的溫度漂移,造成一定的時(shí)間累積誤差。因此必須進(jìn)行適當(dāng)?shù)恼`差補(bǔ)償,本文將基于MSP430單片機(jī)采用C 語(yǔ)言編程進(jìn)行溫度補(bǔ)償方法,提高計(jì)時(shí)精度。 2、系統(tǒng)介紹 電能表的采用什么MCU有多種方案,不少已經(jīng)投入實(shí)際使用。但是基于MSP430 單片機(jī)作為電能表主控模塊還沒有廣泛投產(chǎn)使用。用于系統(tǒng)時(shí)間計(jì)量的串行時(shí)鐘芯片很多,如DS1302、DS1307、PCF8485等時(shí)鐘芯片。 圖1是多費(fèi)率三相電能表的時(shí)間計(jì)量部分,合理的把TI 的MSP430單片機(jī)和EPSON的 RTC-4553集合,發(fā)揮各自的優(yōu)勢(shì),避開復(fù)雜的外圍電路的設(shè)計(jì),采用現(xiàn)成的高精度時(shí)間計(jì)量芯片。
2.1、硬件部分: MSP430F435 T1公司的MSP430系列單片機(jī)是一種具有超低功耗的功能強(qiáng)大的單片機(jī)。新開發(fā)的F系列具有Flash存儲(chǔ)器,在系統(tǒng)設(shè)計(jì),開發(fā)調(diào)試及實(shí)際應(yīng)用上比其他MCU都有比較明顯的優(yōu)勢(shì)。 1、超低功耗 MSP430F系列運(yùn)行在1MHZ時(shí)鐘的條件下時(shí),工作模式不同為0.1~400uA,工作電壓為1.8~3.6V。 2、 超強(qiáng)處理能力 8MIPS的CPU內(nèi)核,16位×16位的硬件乘法器。 3、靈活的配置方法 MSP430 F系列具有豐富的尋址方式,只需要27條指令;片內(nèi)寄存器數(shù)多,可以實(shí)現(xiàn)多種運(yùn)算;有高效的查表處理方法。這一切保證了可以編譯出高效的程序。許多中斷,可以嵌套,使用方便。 4、片上集成外圍功能模塊 MSP430 F系列集成了較多的片上外圍設(shè)備。這些外圍設(shè)備功能相當(dāng)強(qiáng)大:12位A/D,精密模擬比較器,硬件乘法器,2組頻率可以達(dá)到8MHZ的時(shí)鐘模塊,2個(gè)帶有許多捕獲比較的16位定時(shí)器,看門狗功能,2個(gè)可實(shí)現(xiàn)異步和同步及多址訪問的串行通信接口,數(shù)十個(gè)可實(shí)現(xiàn)方向的設(shè)置及中斷功能的并行輸入,輸出端口,擁有SPI和UASRT通訊端口。 5、 高效的開發(fā)方式。 MSP430FX系列具有FLASH存儲(chǔ)器,這一特點(diǎn)使得它的開發(fā)工具相當(dāng)簡(jiǎn)便。利用單片機(jī)自身帶有的JTAG接口或片內(nèi)BOOT ROM內(nèi)固化的默認(rèn)的加載程序載入器Bootstrap可以進(jìn)行串口或并口,通過UART將程序代碼裝入Flash 存貯器中。 可以在一臺(tái)PC及一個(gè)小JATAG控制器的幫助下實(shí)現(xiàn)程序的下載,方便的完成在線程序調(diào)試。 RTC-4553 EPSON公司推出的RTC-4553時(shí)鐘芯片。該芯片采用內(nèi)置晶振和獨(dú)特的數(shù)據(jù)方法,大大提高了時(shí)鐘精度和可靠性。RTC-4553配有串行通信接口,另有30×4bit SRAM,有2000~2099的百年日歷,采用14腳SOP封裝,電池耗電2μA,時(shí)鐘誤差<3 min/年且無(wú)需調(diào)整,是儀器儀表高精度時(shí)鐘的理想芯片。 RTC-4553內(nèi)部結(jié)構(gòu)和引腳

串行RTC-4553時(shí)鐘芯片的內(nèi)部結(jié)構(gòu)如圖2所示。內(nèi)置32.768khz晶振,它包含I/O控制器、移位寄存器、命令及邏輯控制器,表態(tài)RAM、實(shí)時(shí)時(shí)鐘、計(jì)數(shù)器等部分。CS0為片選腳,低電平選中;WR為讀寫使能口,高為讀,低為寫;L1~L5為出廠調(diào)整精度和測(cè)試用,使用中懸空;CS1為芯片掉電檢查口,可直接與系統(tǒng)電源連接,芯片測(cè)到該口為低時(shí),自動(dòng)進(jìn)入低功耗狀態(tài);SCK為時(shí)鐘口,SIN為數(shù)據(jù)輸入口,SOUT為數(shù)據(jù)輸出口。另外,芯片還有1個(gè)時(shí)鐘信號(hào)輸出口TPOUT,該口可輸出1024Hz或1/10Hz的信號(hào),以供檢測(cè)芯片的時(shí)鐘精度所用。其中RTC-4553共有46×4bit寄存器。這些寄存器分3頁(yè),第1頁(yè)共16個(gè),分別為時(shí)鐘寄存器和控制寄存器,用來(lái)存放秒、分、時(shí)、日、月、年、星期和3個(gè)特殊寄存器;第2頁(yè)、第3頁(yè)各有15個(gè),共30個(gè)SRAM寄存器,頁(yè)面的選擇通過操作控制寄存器3的MS1、MS0位來(lái)實(shí)現(xiàn)。 具體如表一所示: ------------------------------------------------ 地址 寄存器名 D3 D2 D1 D0 記數(shù)范圍 說(shuō)明 0 S1 s8 s4 s2 s1 0-9 1秒寄存器 1 S10 0 s40 s20 s10 0-5 10秒寄存器 2 MI1 mi8 mi4 mi2 mi1 0-9 1分寄存器 3 M10 0 mi40 mi20 m10 0-5 10分寄存器 4 H1 h8 h4 h2 h1 0-9 1小時(shí) 寄存器 5 H10 PM/AM 0 h20 h10 0-2 10小時(shí)寄存器 6 W 0 w4 w2 w1 0-6 星期寄存器 7 D1 d8 d4 d2 d1 0-9 1天寄存器 8 D10 0 0 d20 d10 0-3 10天寄存器 9 MO1 mo8 mo4 mo2 mo1 0-9 1月寄存器 A MO10 0 0 0 mo10 0-1 10月寄存器 B Y1 y8 y4 y2 y1 0-9 1年寄存器 C Y10 y80 y40 y20 y10 0-9 10年寄存器 D C1 TPS 30ADJ CNTR 24/12 -控制寄存器1 E C2 BUSY PONC ------- * - 控制寄存器2 F C3 SYSR TEST MS1 MS0 - 控制寄存器3 -------------------------------------------------- RTC-4553時(shí)鐘芯片各寄存器表一 其中C1寄存器的D0位用于設(shè)置顯示時(shí)間的方式,置1為24 小時(shí)方式,置0 為12小時(shí)方式顯示,C2寄存器的BUSY為0時(shí)芯片為正常狀態(tài),可讀可寫,當(dāng)為1時(shí),芯片的時(shí)鐘寄存器禁止讀寫。 上電時(shí)PONC=1,所有寄存器被初始化,時(shí)鐘指向00/01/01/12:00:00,星期日。并且所有其他寄存器清零。 寄存器C3用于設(shè)定工作方式和系統(tǒng)復(fù)位標(biāo)志。其中MS1和MS0設(shè)置工作方式,00、01 表示選中時(shí)間寄存器和C1 、C2、C3寄存器,10和11時(shí)表示選中用戶RAM和C3寄存器。 對(duì)于時(shí)間寄存器和功能寄存器有不同的寫操作方法。RTC-4553采用特殊的寫指令數(shù)據(jù)寫入,對(duì)第0頁(yè)的0D~0FH及第1頁(yè)、第2頁(yè)的寄存器的操作采用常規(guī)寫法,地址后面的數(shù)據(jù)將原樣寫入寄存器中,而對(duì)時(shí)間寄存器寫操作指令只能將內(nèi)部的內(nèi)容加1,并自動(dòng)完成轉(zhuǎn)換,不能直接寫入數(shù)據(jù)。芯片這種獨(dú)特的設(shè)計(jì),防止了時(shí)鐘區(qū)數(shù)據(jù)被意外干擾出現(xiàn)非法數(shù)據(jù)的可能,這正是該芯片高可靠性的原因所在。圖3為時(shí)間寄存器寫時(shí)序。

WR 和CS0為0時(shí),芯片為寫狀態(tài)。SIN的前4位是寄存器地址,隨著SCK腳上的時(shí)鐘變化,內(nèi)部寄存器的數(shù)據(jù)將出現(xiàn)在SOUT輸出端口上。數(shù)據(jù)在SCK上升沿輸入,在下降沿輸出。前4位是所選寄存器的地址,后4位是寄存器的數(shù)據(jù),即時(shí)間值。一次操作完成后其內(nèi)部的內(nèi)容加1,這是該款時(shí)鐘芯片的特殊操作所在。 在片選擇中芯片,WR置高時(shí),芯片處于讀出狀態(tài),輸入需要8個(gè)時(shí)鐘,4個(gè)用來(lái)輸入地址;輸出數(shù)據(jù)也需要8個(gè)時(shí)鐘,包括4個(gè)地址位4個(gè)數(shù)據(jù)位。數(shù)據(jù)在SCK上升沿輸入,在下降沿輸出。寄存器的地址由SIN腳輸入,頁(yè)面由MS0、MS1決定。圖4為讀時(shí)序圖。

2.2、軟件部分 對(duì)于MSP430單片機(jī),由TI 公司自帶的嵌入式軟件開發(fā)平臺(tái)IAR EMBEDDED WORKBENCH。該軟件可對(duì)開發(fā)系統(tǒng)進(jìn)行在線調(diào)試,帶有C 編譯器,可采用編程效率很高,維護(hù)方便的C語(yǔ)言編程。 1、 MSP430單片機(jī)端口功能設(shè)置 通過MSP430的P1.1-P1.4和P3.0端口對(duì)RTC-4553時(shí)鐘芯片進(jìn)行控制和數(shù)據(jù)傳遞,其中P1.1端口用于 SIN,P1.4 用于SCK,P1.2用于CS,P1.3用于SOUT,P3.0用于WR。這些端口的設(shè)定是基于多費(fèi)率電表其他功能模塊的安排而確定。
2、 主控程序解析 在該時(shí)間控制系統(tǒng)中在程序設(shè)計(jì)上主要涉及到數(shù)據(jù)的發(fā)送、接收、數(shù)據(jù)補(bǔ)償。 第一、 數(shù)據(jù)發(fā)送程序流程圖

第二、 數(shù)據(jù)接收程序流程圖

圖 6 數(shù)據(jù)接收流程圖 第三、 時(shí)間數(shù)據(jù)補(bǔ)償 RTC-4553時(shí)鐘芯片正常工作溫度是25攝氏度左右,由于不同時(shí)間和季節(jié)的溫度變化,使得芯片存在一定誤差,時(shí)間的補(bǔ)償其本質(zhì)為芯片頻率的補(bǔ)償。溫度與頻率存在如下關(guān)系。

縱軸為頻率,橫軸為溫度,由圖7可見在25攝氏度以外芯片得頻率都是變小,即時(shí)間變慢。 其中α參量與溫度的平方有關(guān)系的量。由溫度傳感器獲取當(dāng)前溫度,與標(biāo)準(zhǔn)溫度25℃相差平方 其中θΤ是當(dāng)前檢測(cè)到溫度,MSP430 單片機(jī)有檢測(cè)溫度傳感器,可檢測(cè)當(dāng)前溫度;θx為標(biāo)準(zhǔn)溫度25℃,在此溫度下芯片可認(rèn)為沒有誤差。根據(jù)多費(fèi)率電表在 環(huán)境中實(shí)際溫差,可取五分鐘為一個(gè)時(shí)間間隔對(duì)芯片的誤差進(jìn)行累計(jì),程序設(shè)計(jì)比較簡(jiǎn)單,把當(dāng)前溫度值代入上面的表達(dá)式中即可,設(shè)定一個(gè)變量存放誤差,每24小時(shí)補(bǔ)償一次,當(dāng)然,如果誤差很小那么誤差就忽略不計(jì)。對(duì)于多費(fèi)率電能表對(duì)時(shí)間還有其他操作,比如時(shí)間校對(duì),以及時(shí)間寫許可等一些操作。這些都是軟件必須的考慮的問題,以對(duì)時(shí)鐘芯片正確操作。 從整個(gè)系統(tǒng)設(shè)計(jì)過程中發(fā)現(xiàn),如何使用MSP430 單片機(jī)控制RTC-4553時(shí)鐘芯片關(guān)鍵所在是程序算法的設(shè)計(jì),數(shù)據(jù)采用BCD碼,對(duì)十位和個(gè)位有著不同的操作方法,對(duì)于小時(shí)寄存器的操作又有不同的方法,這些都是必須考慮的問題。其溫度誤差補(bǔ)償在測(cè)量系統(tǒng)尤其是計(jì)時(shí)的電能表中也是必須要考慮的溫度,涉及到許多問題。否則將影響電表的計(jì)時(shí)精度,甚至是錯(cuò)誤。
3、 結(jié)語(yǔ) 時(shí)鐘集成芯片有很多種,可與許多種單片機(jī)組合用于測(cè)量時(shí)間系統(tǒng),大多數(shù)電能表存在時(shí)間誤差補(bǔ)償問題。該測(cè)量系統(tǒng)有機(jī)的結(jié)合了MSP430 單片機(jī)、RTC-4553時(shí)鐘芯片及C語(yǔ)言編程,基于MSP430 單片機(jī)已開發(fā)出性價(jià)比很高的三相多費(fèi)率電能表,目前已正式投產(chǎn)。當(dāng)然計(jì)量電能的三相多費(fèi)率多功能表還涉及其他許多功能模塊,包括諸如數(shù)據(jù)處理、數(shù)據(jù)顯示,數(shù)據(jù)存儲(chǔ),數(shù)據(jù)通訊等模塊。
|