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

串行RTC-4553時鐘芯片的內部結構如圖2所示。內置32.768khz晶振,它包含I/O控制器、移位寄存器、命令及邏輯控制器,表態RAM、實時時鐘、計數器等部分。CS0為片選腳,低電平選中;WR為讀寫使能口,高為讀,低為寫;L1~L5為出廠調整精度和測試用,使用中懸空;CS1為芯片掉電檢查口,可直接與系統電源連接,芯片測到該口為低時,自動進入低功耗狀態;SCK為時鐘口,SIN為數據輸入口,SOUT為數據輸出口。另外,芯片還有1個時鐘信號輸出口TPOUT,該口可輸出1024Hz或1/10Hz的信號,以供檢測芯片的時鐘精度所用。其中RTC-4553共有46×4bit寄存器。這些寄存器分3頁,第1頁共16個,分別為時鐘寄存器和控制寄存器,用來存放秒、分、時、日、月、年、星期和3個特殊寄存器;第2頁、第3頁各有15個,共30個SRAM寄存器,頁面的選擇通過操作控制寄存器3的MS1、MS0位來實現。 具體如表一所示: ------------------------------------------------ 地址 寄存器名 D3 D2 D1 D0 記數范圍 說明 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小時 寄存器 5 H10 PM/AM 0 h20 h10 0-2 10小時寄存器 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時鐘芯片各寄存器表一 其中C1寄存器的D0位用于設置顯示時間的方式,置1為24 小時方式,置0 為12小時方式顯示,C2寄存器的BUSY為0時芯片為正常狀態,可讀可寫,當為1時,芯片的時鐘寄存器禁止讀寫。 上電時PONC=1,所有寄存器被初始化,時鐘指向00/01/01/12:00:00,星期日。并且所有其他寄存器清零。 寄存器C3用于設定工作方式和系統復位標志。其中MS1和MS0設置工作方式,00、01 表示選中時間寄存器和C1 、C2、C3寄存器,10和11時表示選中用戶RAM和C3寄存器。 對于時間寄存器和功能寄存器有不同的寫操作方法。RTC-4553采用特殊的寫指令數據寫入,對第0頁的0D~0FH及第1頁、第2頁的寄存器的操作采用常規寫法,地址后面的數據將原樣寫入寄存器中,而對時間寄存器寫操作指令只能將內部的內容加1,并自動完成轉換,不能直接寫入數據。芯片這種獨特的設計,防止了時鐘區數據被意外干擾出現非法數據的可能,這正是該芯片高可靠性的原因所在。圖3為時間寄存器寫時序。

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

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

第二、 數據接收程序流程圖

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

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