实时时钟器件M41T94在配网监测终端中的应用

发布者:幸福之路最新更新时间:2014-03-17 来源: elecfans关键字:实时时钟  M41T94  配网监测终端 手机看文章 扫描二维码
随时随地手机看文章
1 引言
    在单片机应用和智能仪器仪表中,尤其是分布式控制系统,实时时钟已成为不可或缺的一部分。实时时钟器件不仅提供系统时钟,而且还附带其他功能,服务于应用系统。一般时钟器件存在精度低,功耗大,功能少,操作繁琐诸多不足。复杂系统采用高性能多功能的时钟器件,可减少分立元件,提高系统集成度和稳定性。因此,基于实时时钟的功能特点,提出一种基于M41T94在配网监测终端应用的设计方案。


2 M41T94简介
    M41T94是一款高精度、多功能、低功耗实时时钟器件,使用SPI串行总线与外部单片机MCU传输数据。M41T94除具有大多数时钟器件的时钟和日历、闹钟设置功能外,还提供更精确的时钟(十分之一秒、百分之一秒),以及掉电时间自动锁存、时间标定、看门狗等功能。M41T94实时时钟器件采用SOIC封装,具有16引脚和28引脚两种版本类型,其引脚配置如图1所示。其中28引脚版本内部封装电池和晶体振荡器,而16引脚版本则需外接电池和品体振荡器。

    以16引脚版本为例,其主要引脚功能为:
    SDO(Serial Data Output):串行数据输出引脚。该引脚通过SPI接口输出时钟、日历、控制及状态信息。
    SDI(Serial Data Input):串行数据输入引脚。该引脚输入命令字及数据信息。E(Chip Enable):器件使能引脚。当E为高电平时,器件禁止,SDO保持高阻状态;器件操作前,须先将E置为低电平。
    VBAT(Battery Support Voltage):外部电池供电引脚。系统掉电时,M41T94自动切换至电池供电。
    RST(Reset Output):复位输出引脚。当监测到掉电或其他复位输出时,RST输出复位信号用于控制器的复位源。
    M41T94采用SPI接口,便于与单片机通信;并具有64字节带电保护RAM,其中20个8位寄存器供内部时钟系统使用,44字节通用NVRAM供用户使用。通过SPI接口,主机发送不同的命令字选择相应的寄存器,实现对M41T94的读写及控制操作。[page]


3 配网监测终端的实时时钟系统
    配网监测系统是南配网监测终端构成的分布式电网参数监测系统。监测终端实时测量并计算电压、电流、有功功率、无功功率、功率因素等电网参数;统计和记录供电时间、停电时刻、停电时间、来电时刻、日供电合格率、月供电合格率、正点电压值等信息。因此,时钟是监测终端不可或缺的部分。由于监测终端长时间的挂网运行,且记录的参数都与时间有关,要求时钟具有较高的走时精度。M41T94时钟计时可达百分之一秒,并具有掉电时间锁定,时钟标定等功能,能够满足配网监测终端的要求。M41T94在配网监测终端中主要实现系统掉电、上电时间记录、自身时间标定、系统定时校时等任务。在配网监测终端中,记录配网停电、来电时刻是配网运行状态的重要参数。正常运行状态下,M41T94内部时钟寄存器数据不断刷新,实时记录当前时刻时间,当M41T94自动监测VCC下降到监测点VCC时,寄存器0Ch单元的HT位硬件置为1,阻止时钟寄存器刷新,此时时钟寄存器的数据就是准确的掉电时间。当发生掉电时,M41T94能够自动切换电源,利用外部电池供电,时钟保持正常运行,这样就保证时间的准确性和实时性。因此,当C8051F340单片机上电复位时,它首先读取实时时钟的时间,即为掉电时刻的时间值,然后由软件将HT位清零,M41T94用当前实时时间刷新时钟寄存器,再次读取,就可得到上电时刻时间。为了保证读取的上电时间准确,要求在上电复位后尽快完成上电时间的读取。
    配网监测终端是在外界环境下运行,要求测量终端具有较高的时间精度,M41T94本身具有高走时精度,但在长时间的运行中,产生时间漂移,造成时间的累积误差。通过时间标定,进一步提高M41T94的精度,从而大幅减少这种累积误差。M41T94的分级校正是以每64 min为一个校正循环,每个调级刻度将对每64 min的前62 min产生校正。而M41T94的外接晶体振荡器为32768 Hz。因此,每个调级刻度,即是对每125 829 120(64分×60秒/分×32 768周期/秒)个实际的晶振周期中,增加512个,或减少256个振动周期,即+4.068 ppm或-2.034 ppm。通过实际测试,得到各个温度段的晶振校正系数,建立每个温度段的时钟校正系数表。根据当前温度,设定相应的校正系数,从而得到精确时钟。通过标定后,在25℃温度下,时钟的精度优于±2 ppm。
    终端实时时钟的定时校时能够消除由于累积误差造成的时间漂移,保证实时时间的准确性。在配网监测终端中,实时时钟M41T94本身具有较高精度,经时间标定后,可进一步提高精度,使其一年的时钟累积误差约±1 min。因此在满足系统要求的同时,可设定每半年进行一次时钟校准。M41T94有闹铃定时功能,利用此功能定时时钟校准,通过向0Ah~0Eh寄存器写入准确时间值,并置AFE位为1。当时钟时间与该时间匹配时,标志位AF置1,且激活IRQ/FT/OUT引脚产生中断,通知MCU校时时间到,MCU通过向时钟服务器请求获取当前准确时间进行实时时钟校准。同时,重新设置0Ah~0Eh寄存器的数值,为下次校时作准备。根据M41T94的特点和功能,适用于配网监测终端时钟系统。


4 M41T94在配网监测终端中的应用
4.1 硬件设计
    采用增强型的51单片机C8051F340作为控制器,图2为C8051F340与M41T94的接口电路。单片机C8051F340平均每个时钟周期执行1条单周期指令,在相同时钟下,大大提高了指令运行速度。该设计系统上电后,要求在软件控制下快速读取掉电和上电时间,C8051F340的快速运行能够保证读取时间的准确性;C8051F340还具有64 K字节的Flash和SPI接口,便于与M41T94数据通信和存储;C8051F340具有多路A/D转换,在电网测量系统中可减少A/D转换的分立元件,增加系统的集成度和稳定性;C8051F340具有可编程数字I/O和交叉开关,允许将片内数字系统资源映射到端口I/O引脚,用户可根据特定应用选择通用I/O端口和所需数字资源的组合;同时C8051F340具有与标准51单片机相同的指令集、软件设定I/O端口配置、可通过JTAG接口在线调试等特性,因此,C8051F340适合用作系统控制器.

    M41T94使用SPI串行通信接口,易于实现与具有SPI接口单片机C8051F340的数据通信。SPI接口通信是通过SDI、SDO、SCK和E等引脚实现。图2中R54-2,R54-3和R54-4为SPI总线的上拉电阻,M41T94片选信号E引脚与C8051F340的P4.4引脚连接;M41T94的复位输出RST引脚与C8051F340的RST连接,将C8051F340的RSTSRC.1(PORSF位)清零,禁止C8051F340内部VDD监视器作为MCU的复位源,这样当掉电时,M41T94输出复位信号使MCU复位,防止MCU对M41T94读取数据错误。[page]
4.2 软件设计
    C8051F340通过串行通信接口SPI控制M41T94。通信时,C8051F340选用主模式作为主机,M41T94作为从机。为了与M41T94相对应,C8051F340采用3线连接模式,不使用NSS。控制位CPHA(SPI0CN.5)=1,SCK时钟第2个边沿采样数据,CPOL(SPI0CN.4)=1,空闲状态时,SCK引脚为高电平。只有片选信号E置为低电平,C8051F340才能控制M41T94,当E变高时,通信结束。首先时钟器件E引脚置为低电平,紧接着单片机通过SPI接口发送命令字,然后对M41T94读取或写入数据。对内部RAM的读写各有两种方式,单字节读写和多字节连续读写。前者发送一次操作命令只读/写1个字节数据,后者发送1次命令可连续读写多个字节数据。SPI的数据传输是从每一个字节的最高位(MSB)开始。C8051F340对M41T94的连续读取模式中命令字包括一个8位字节,该字节的最高位(D7)为读/写选择位,D7=1时,表示对M41T94写操作,D7=0时,表示读M41T94数据;该字节低7位为M41T94的地址选择位,在连续读写模式下,该地址为连续读/写的起始地址,在读/写过程中,地址指针自动递增,当递增到3Fh后,指针自动返回到首地址(00h)。当对时钟、日历寄存器(00~07h)读写,或掉电时,M41T94停止对这些寄存器(00~07h)的刷新,以保证读写数据的准确性。
4.2.1 初始化
    C8051F340对M41T94的控制就是读写M41T94的寄存器和NVRAM。在M41T94读写前,C8051F340首先要对其初始化,即对M41T94寄存器初始化,其程序代码如下:


4.2.2 实时时钟掉电、上电时间
    当系统掉电时,M41T94自动锁存掉电时间,上电后读取掉电时间和当前实时时间。其相应程序代码如下:


5 结束语
    M41T94的时钟精度高,功耗低,掉电时可自动切换供电电源,并具有掉电时间自动锁存、时间标定、时钟校准等功能,因此该器件可广泛应用于电力系统、工业控制、智能仪器仪表、消费类电子产品.

关键字:实时时钟  M41T94  配网监测终端 引用地址:实时时钟器件M41T94在配网监测终端中的应用

上一篇:基于热释人体红外和温度传感系统的智能温控风扇及照明控制系统
下一篇:RS485总线通信系统的可靠性措施

推荐阅读最新更新时间:2024-03-16 13:38

基于实时时钟芯片X1227的电源控制器设计
引言 X1228是美国XICOR公司最新推出的实时时钟(RTC)芯片。与其它RTC芯片相比,X1228除有基本的时钟和报警功能外,还有4K位E2PROM存储器和复位输出、电压监控、看门狗定时、频率输出等功能。 X1228可以准确地用秒、分、时、日、星期、月、年来显示时间和日期,具有世纪字节,解决了两千年问题,自动实现闰年调整;有2路报警,可设置为按秒、分、时、日、月和星期任意组合的定时报警;还有1个可编程的频率输出引脚(PHZ),用于输出一个固定频率的方波信号;内部的4K位E2PROM存储器,可用于存储用户的设置参数或其它数据,其内容在电源失效时不会丢失;采用I2C总线与单片机接口,一次可传送多个字节的数据,数据传送的速率为4
[应用]
ARMLinux驱动移植RTC(实时时钟)移植
硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11.04 内核版本:2.6.39 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6584285 首先修改内核源码/arch/arm/mach-s3c2410/mach-smdk2410.c 添加红色字体部分 static struct platform_device *smdk2410_devices __initdata = { &s3c_device_usb, &s3c_device_lcd, &s3c_device_wdt, &s3c_device_i2c,
[单片机]
ARMLinux驱动移植RTC(<font color='red'>实时时钟</font>)移植
武林教你学PIC32(十)实时时钟RTC
PIC32MX 器件上提供的实时时钟和日历(Real-Time Clock and Calendar,RTCC) 硬件模块及其操作。下面列出了该模块的部分主要特性: • 时间:时、分和秒 • 24 小时格式 (军用时间) • 可分辨半秒的时长 • 提供日历:星期、日、月和年 • 闹钟间隔可配置为 0.5 秒、1 秒、10 秒、1 分钟、10 分钟、1 小时、1 天、1 周、1 月或 1 年 • 闹钟使用递减计数器进行重复 • 可无限重复的闹钟:响铃 (chime) • 年份范围:2000 至 2099 • 闰年修正 • BCD 格式以减少固件开销 • 为长时间电池工作进行了优化 • 小数秒同步 • 用户可使用自动调节功能校准时钟晶
[单片机]
武林教你学PIC32(十)<font color='red'>实时时钟</font>RTC
STM32基于固件库学习笔记(11)RTC实时时钟
实时时钟(RTC) 小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。 大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。 互联型产品是指STM32F105xx和STM32F107xx微控制器。 主要特性 ● 可编程的预分频系数:分频系数最高为20 。 ● 32位的可编程计数器,可用于较长时间段的测量。 ● 2个分离的时钟:用于APB1接口的PC
[单片机]
STM8的实时时钟PCF8563与红外进出门提醒器
目录: 总体设计 1.基础硬件DIY设计 1)整体原理图 2)外部RTC 电路 3)PCB电路 4)3D_PCB 2.单片机程序设计 1)PCF8563 I2C通信程序 2)main函数逻辑 3.效果展示 1)实物电路顶层图 2)实物电路底层图 3).防水盒内部图 4)整体效果图 用到的工具有: 程序 IAR编译器环境 altium designer 原理图 altium designer PCB 实现的小功能有: ①能通过外部两个红外对管记人数并在OLED上显示 粗略计数人数 ②能通过外部两个红外对 判断人进入或出去,并发出语音提示 ag:人进门: 欢迎光临;人出门: 谢谢惠顾 ③语音整点报时 ④OLED上
[单片机]
STM8的<font color='red'>实时时钟</font>PCF8563与红外进出门提醒器
S3C2440 RTC实时时钟 驱动分析以及使用(三十)
RTC驱动分析总结: driversrtcrtc-s3c.c s3c_rtc_init platform_driver_register s3c_rtc_probe rtc_device_register( s3c , &pdev- dev, &s3c_rtcops, THIS_MODULE) rtc_dev_prepare cdev_init(&rtc- char_dev, &rtc_dev_fops); rtc_dev_add_device cdev_add linux中的rtc驱动位于drivers/rtc下,里面包含了许多开发平台的RTC驱动,我们这里是以S3C24XX为主,所以它的RTC驱
[单片机]
S3C2440 RTC<font color='red'>实时时钟</font> 驱动分析以及使用(三十)
stm32实时时钟——RTC
对于单片机转ARM的同学来说,RTC可能比较少接触。提到实时时钟,更经常想到的是DS1302。当然,在STM32里,自己一个CPU已经足够,不需要DS1302。 实际上,RTC就只一个定时器而已,掉电之后所有信息都会丢失,因此我们需要找一个地方来存储这些信息,于是就找到了备份寄存器。因为它掉电后仍然可以通过纽扣电池供电,所以能时刻保存这些数据。我们在本期教程中将详细讲述RTC原理及例程,以引导大家顺利进入RTC的世界。 1.STM32的RTC模块 RTC模块之所以具有实时时钟功能,是因为它内部维持了一个独立的定时器,通过配置,可以让它准确地每秒钟中断一次。下面就来看以下它的组成结构。 1.1RTC的组成 RTC
[单片机]
STM32CubeMX | 40 - 实时时钟RTC的使用(日历和闹钟)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的 RTC 外设。 1. 准备工作 硬件准备 首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi): 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。 2.生成MDK工程 选择芯片型号 打开STM32CubeMX,打开MCU选择器: 搜索并选中芯片STM32L431RCT6: 配置时钟源 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC; 如果使用默认内部时钟(HSI),这一步可以略过; 这里我都使用外部时钟: 配置串口 开发板板载了
[单片机]
STM32CubeMX | 40 - <font color='red'>实时时钟</font>RTC的使用(日历和闹钟)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved