基于MSP430时钟芯片RTC-4553温度误差软件补偿

楼主
基于MSP430时钟芯片RTC-4553温度误差软件补偿
摘自:电子工程师
作者:平川

                    基于MSP430单片机时钟芯片RTC-4553温度误差软件补偿
               The software compensate for the temperature error of the RTC-4553 on the base of MSP430 single chip computer

摘要
本文介绍由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集合,发挥各自的优势,避开复杂的外围电路的设计,采用现成的高精度时间计量芯片。
                         [imga]../../upload/2006/05/13/162431.gif[/imga]
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内部结构和引脚
                     [imga]../../upload/2006/05/13/162509.gif[/imga]
串行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为时间寄存器写时序。
                       [imga]../../upload/2006/05/13/162621.gif[/imga]
WR 和CS0为0时,芯片为写状态。SIN的前4位是寄存器地址,随着SCK脚上的时钟变化,内部寄存器的数据将出现在SOUT输出端口上。数据在SCK上升沿输入,在下降沿输出。前4位是所选寄存器的地址,后4位是寄存器的数据,即时间值。一次操作完成后其内部的内容加1,这是该款时钟芯片的特殊操作所在。
  在片选择中芯片,WR置高时,芯片处于读出状态,输入需要8个时钟,4个用来输入地址;输出数据也需要8个时钟,包括4个地址位4个数据位。数据在SCK上升沿输入,在下降沿输出。寄存器的地址由SIN脚输入,页面由MS0、MS1决定。图4为读时序图。
                       [imga]../../upload/2006/05/13/162701.gif[/imga]
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、 主控程序解析
在该时间控制系统中在程序设计上主要涉及到数据的发送、接收、数据补偿。
第一、 数据发送程序流程图
                [imga]../../upload/2006/05/13/162746.gif[/imga]
                      图 5 数据发送流程图

第二、 数据接收程序流程图
               [imga]../../upload/2006/05/13/162812.gif[/imga]
                      图 6 数据接收流程图
第三、 时间数据补偿
  RTC-4553时钟芯片正常工作温度是25摄氏度左右,由于不同时间和季节的温度变化,使得芯片存在一定误差,时间的补偿其本质为芯片频率的补偿。温度与频率存在如下关系。
                                 [imga]../../upload/2006/05/13/162842.gif[/imga]
                                   图 7 温度和频率误差
纵轴为频率,横轴为温度,由图7可见在25摄氏度以外芯片得频率都是变小,即时间变慢。
其中α参量与温度的平方有关系的量。由温度传感器获取当前温度,与标准温度25℃相差平方 其中θΤ是当前检测到温度,MSP430 单片机有检测温度传感器,可检测当前温度;θx为标准温度25℃,在此温度下芯片可认为没有误差。根据多费率电表在
环境中实际温差,可取五分钟为一个时间间隔对芯片的误差进行累计,程序设计比较简单,把当前温度值代入上面的表达式中即可,设定一个变量存放误差,每24小时补偿一次,当然,如果误差很小那么误差就忽略不计。对于多费率电能表对时间还有其他操作,比如时间校对,以及时间写许可等一些操作。这些都是软件必须的考虑的问题,以对时钟芯片正确操作。
从整个系统设计过程中发现,如何使用MSP430 单片机控制RTC-4553时钟芯片关键所在是程序算法的设计,数据采用BCD码,对十位和个位有着不同的操作方法,对于小时寄存器的操作又有不同的方法,这些都是必须考虑的问题。其温度误差补偿在测量系统尤其是计时的电能表中也是必须要考虑的温度,涉及到许多问题。否则将影响电表的计时精度,甚至是错误。

3、 结语
时钟集成芯片有很多种,可与许多种单片机组合用于测量时间系统,大多数电能表存在时间误差补偿问题。该测量系统有机的结合了MSP430 单片机、RTC-4553时钟芯片及C语言编程,基于MSP430 单片机已开发出性价比很高的三相多费率电能表,目前已正式投产。当然计量电能的三相多费率多功能表还涉及其他许多功能模块,包括诸如数据处理、数据显示,数据存储,数据通讯等模块。
1楼
ok  ding

电脑版 Page created in 0.1562 seconds width 3 queries.