首页> 中国专利> 费控智能电能表的实时时钟同步纠错方法

费控智能电能表的实时时钟同步纠错方法

摘要

一种费控智能电能表的实时时钟同步纠错方法,涉及电能计量仪表仪器技术领域,包括步骤:先在单片机内部创建一个内部时钟,并定义一个用于存放外部时钟的数组;电能表上电启动后对内部时钟进行初始设置;然后通过定时器产生秒信号,每秒钟对内部时钟进行加1秒操作;每当内部时钟加10秒后,便对外部时钟、内部时钟依次进行校验操作,并对出现异常的时钟进行对应地同步纠错处理。本发明能增强时钟的抗干扰能力,有效保证电能表中实时时钟的准确性,稳定可靠。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-07-07

    授权

    授权

  • 2015-06-17

    实质审查的生效 IPC(主分类):G01R35/04 申请日:20150210

    实质审查的生效

  • 2015-05-20

    公开

    公开

说明书

技术领域

本发明涉及电能计量仪表仪器技术领域,具体来讲是一种费控智 能电能表的实时时钟同步纠错方法。

背景技术

随着单片机、智能芯片在电能表中的运用,具有多功能的费控智 能电能表也得到了越来越广泛的应用。由于费控智能电能表中的一些 功能需要时钟的配合,如分时计量、电量自动结算等,这些功能涉及 到电能表的电量计量和结算,因此准确性显得尤为重要。而时钟在其 中扮演着重要角色,因此一定要保证时钟的准确性。

但现有的费控智能电能表在运行时,需要实时的从外部时钟芯片 中读取时间数据。而在频繁的通讯过程中,由于与外部时钟芯片的通 讯信号在物理信道中传输,线路本身电器特性造成的随机噪声、信号 幅度的衰减、频率和相位的畸变、电器信号在线路上产生反射造成的 回音效应、相邻线路间的串扰以及其他各种外界因素(如大气中的闪 电、开关的跳火、外界强电流磁场的变化、电源的波动等)都会造成 信号的失真。这将会使单片机收到的二进制数位和外部时钟芯片实际 发送的二进制数位不一致,从而造成由“0”变成“1”或由“1”变 成“0”的差错。这样一来,实时时钟的准确性就会受到影响,从而 影响了费控智能电能表的计量和结算等功能的正常使用。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种费控智 能电能表的实时时钟同步纠错方法,能有效保证电能表中实时时钟的 准确性。

为达到以上目的,本发明采取的技术方案是:提供一种费控智能 电能表的实时时钟同步纠错方法,所述电能表内部设有单片机、能产 生外部时钟的外部时钟芯片和存有时钟数据的外部存储器,且单片机 分别与外部时钟芯片、外部存储器连接,该实时时钟同步纠错方法包 括以下步骤:

S1.在单片机内部创建一个由八位数组组成的内部时钟,该八位 数组中依次存放秒、分、时、周、日、月、年以及校验和;同时定义 一个七位数组用于存放外部时钟的秒、分、时、周、日、月、年;

S2.电能表上电启动,并对内部时钟进行初始设置;

S3.通过单片机内部的定时器产生一个秒信号,利用所述秒信号 每秒钟对内部时钟进行加1秒操作;

S4.判断内部时钟是否已加10秒,若是,转S5,若否,转S3;

S5.读取外部时钟芯片的数据,并对所读取的数据进行校验,判 断外部时钟芯片中的外部时钟是否正常,若是,转S6,若否,转S7;

S6.将外部时钟的秒、分、时、周、日、月、年对应存储至单片 机内的七位数组中,并对内部时钟进行校验,判断内部时钟是否正常, 若是,转S8,若否,转S9;

S7.对内部时钟进行校验,判断内部时钟是否正常,若是,转S10, 若否,转S11;

S8.判断内部时钟与外部时钟相差是否大于5秒,若是,转S10, 若否,转S9;

S9.用外部时钟覆盖内部时钟,转S3;

S10.用内部时钟覆盖外部时钟,转S3;

S11.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,并置 时钟错误标志,转S3。

在上述技术方案的基础上,步骤S2中,对内部时钟进行初始设 置的具体步骤包括:

S21.读取外部时钟芯片中控制寄存器的控制位信息以及时间寄 存器中存储的外部时钟信息;

S22.对控制寄存器的控制位的值以及时间寄存器中存储的外部 时钟格式分别进行校验,判断两者是否均正常,若是,进入S23,若 否,进入S24;

S23.将外部时钟的秒、分、时、周、日、月、年对应存储至单片 机内的七位数组中,并用该外部时钟覆盖内部时钟;

S24.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,并置 时钟错误标志。

在上述技术方案的基础上,步骤S3中,所述秒信号由单片机的 定时器将2ms的定时中断计数500次后产生。

在上述技术方案的基础上,步骤S3中,对内部时钟进行加1秒 操作之前以及加1秒操作之后,均需对内部时钟进行校验操作;校验 时,先将内部时钟的前七个字节相加后取256的模,再将取模后的结 果与内部时钟的校验和的值进行比较,若相等,则校验通过,若不相 等,则读取外部时钟,并用外部时钟覆盖内部时钟。

在上述技术方案的基础上,步骤S3中,内部时钟进行加1秒操 作后,若内部时钟为跨整点,则将当前内部时钟写入到外部存储器中。

在上述技术方案的基础上,步骤S5中,所读取的外部时钟芯片 的数据包括控制寄存器的控制位信息以及时间寄存器中存储的外部 时钟信息。

在上述技术方案的基础上,步骤S5中,对外部时钟芯片的数据 进行校验时,需分别对控制寄存器的控制位的值以及时间寄存器中存 储的外部时钟格式进行校验,且仅当两者均正常时,才能判断外部时 钟芯片中的外部时钟为正常。

在上述技术方案的基础上,步骤S8中,判断内部时钟与外部时 钟相差是否大于5秒时,将内部时钟的分、时、周、日、月、年分别 与外部时钟的分、时、周、日、月、年进行比较,若相等,则判断为 相差不大于5秒;若不相等,则判断为相差大于5秒。

本发明的有益效果在于:

1、本发明在传统的外部时钟,即硬时钟的基础上引入了内部时 钟,即软时钟,且每隔10秒钟就会对外部时钟和内部时钟依次进行校 验,并对出现异常的时钟进行同步纠错操作,使得内部时钟与外部时 钟相互制约形成二元互制机制,增强了费控智能电能表的时钟抗干扰 能力,有效地保证了电能表中实时时钟的准确性,使得电能表的各项 功能稳定可靠。

2、本发明中,由于具有内部、外部双时钟系统,使得电能表对 外部时钟的读取可以每隔10秒钟才进行一次,相较于传统的纯外部时 钟系统的电能表来说,无需每秒对外部时钟进行读取,大大减少了读 取外部时钟的频率,降低了受到干扰的几率,同时也提高了系统运行 效率。

3、本发明中,在对外部时钟进行校验时,需分别对控制寄存器 的控制位的值以及时间寄存器中存储的外部时钟格式进行校验,能最 大程度上地校验出外部时钟是否因外界因素造成了信号的失真或不 一致,一旦外部时钟出现异常,即可及时做出相应的纠错操作,将外 界干扰的影响降到最低,从而保证了电能表实时时钟的准确性。

4、本发明中,在对内部时钟进行加1秒操作之前以及加1秒操作 之后,均需对内部时钟进行校验操作,不但进一步提高了内部时钟的 准确性和可靠性,而且校验过程简单、方便。

附图说明

图1为本发明实施例中费控智能电能表的实时时钟同步纠错方法 的流程图;

图2为本发明实施例中对内部时钟进行初始设置的具体流程图。

具体实施方式

以下结合附图对本发明的实施例作进一步详细说明。

如图1所示,本发明提供一种费控智能电能表的实时时钟同步纠 错方法,所述电能表内部设有单片机、能产生外部时钟的外部时钟芯 片和存有时钟数据的外部存储器,且单片机分别与外部时钟芯片、外 部存储器连接。该实时时钟同步纠错方法包括以下步骤:

S1.在单片机内部创建一个由八位数组组成的内部时钟,设为 inside_date[8],该八位数组中依次存放秒、分、时、周、日、月、年 以及校验和;同时定义一个七位数组用于存放外部时钟,设为 outside_date[7],该七位数组中依次存放秒、分、时、周、日、月、 年。

S2.电能表上电启动,并对内部时钟进行初始设置。

其中,如图2所示,对内部时钟进行初始设置的具体步骤包括:

S21.读取外部时钟芯片中控制寄存器的控制位信息以及时间寄 存器中存储的外部时钟信息。

S22.对控制寄存器的控制位的值以及时间寄存器中存储的外部 时钟格式分别进行校验,判断两者是否均正常,若是,转入S23;若 否,转入S24。

S23.将外部时钟的秒、分、时、周、日、月、年存储至单片机内 的七位数组中,并用该外部时钟覆盖内部时钟,即用outside_date[7] 中的秒、分、时、周、日、月、年覆盖inside_date[8]中的秒、分、时、 周、日、月、年,并更新校验和。

S24.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,即将 外部存储器中的时钟写入到inside_date[8]和outside_date[7]的秒、分、 时、周、日、月、年,并置时钟错误标志。

S3.单片机内部的定时器将2ms的定时中断计数500次后产生一 个秒信号,利用所述秒信号每秒钟对内部时钟进行加1秒操作。

其中,对内部时钟进行加1秒操作之前以及加1秒操作之后,均需 对内部时钟进行校验操作。校验时,先将内部时钟的前七个字节相加 后取256的模,即(inside_date[1]+inside_date[2]+……+inside_date[7]) mod 256,再将取模后的结果与内部时钟的校验和的值进行比较,若 相等,则校验通过,若不相等,则读取外部时钟,并用外部时钟覆盖 内部时钟。并且,内部时钟进行加1秒操作后,若内部时钟为跨整点, 则将当前内部时钟写入到外部存储器中。

S4.判断内部时钟是否已加10秒,若是,转入S5;若否,转入 S3。

S5.读取外部时钟芯片中的控制寄存器的控制位信息以及时间寄 存器中存储的外部时钟信息,并对所读取的信息进行校验,判断外部 时钟芯片中的外部时钟是否正常,若是,进入S6;若否,进入S7。

其中,对所读取的信息进行校验时,需分别对控制寄存器的控制 位的值以及时间寄存器中存储的外部时钟格式进行校验,且仅当两者 均正常时,才能判断外部时钟芯片中的外部时钟为正常。

S6.将外部时钟的秒、分、时、周、日、月、年存储至单片机内 的七位数组outside_date[7]中,并对内部时钟进行校验,判断内部时 钟是否正常,若是,转入S8;若否,转入S9。

S7.对内部时钟进行校验,判断内部时钟是否正常,若是,转入 S10;若否,转入S11。

S8.判断内部时钟与外部时钟相差是否大于5秒,若是,转入S10; 若否,转入S9。

具体实现时,判断内部时钟与外部时钟相差是否大于5秒时,只 需将内部时钟的分、时、周、日、月、年分别与外部时钟的分、时、 周、日、月、年进行比较,若相等,则判断为相差不大于5秒;若不 相等,则判断为相差大于5秒。这里的比较没有采用直接将两个时钟 数据进行相减的方式,因为直接相减将涉及闰平年、大小月运算,操 作比较复杂。而本方法直接比较内部时钟的分、时、周、日、月、年 与外部时钟的分、时、周、日、月、年是否相等,如果不相等,就说 明内部、外部时钟相差超过5秒。原理如下:如果外部时钟比内部时 钟快5秒以上,则当在内部时钟的秒为55秒时,外部时钟已进入下 一分钟,内部时钟、外部时钟的分是不同的;如果外部时钟比内部时 钟慢5秒以上,则当在内部时钟的秒为05秒时,外部时钟还在上一 分钟,内部时钟、外部时钟的分也是不同的。

S9.用外部时钟覆盖内部时钟,即用outside_date[7]中的秒、分、 时、周、日、月、年覆盖inside_date[8]中的秒、分、时、周、日、月、 年,并更新校验和,再转入S3。

S10.用内部时钟覆盖外部时钟,即用inside_date[8]中的秒、分、 时、周、日、月、年覆盖outside_date[7]中的秒、分、时、周、日、 月、年,再转入S3。

S11.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,并置 时钟错误标志,再转入S3。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员 来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细 描述的内容属于本领域专业技术人员公知的现有技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号