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

文档序号:8318030阅读:来源:国知局
43]S24.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,即将外部存储器中的时钟写入到inside_date [8]和outside_date [7]的秒、分、时、周、日、月、年,并置时钟错误
ll1、O
[0044]S3.单片机内部的定时器将2ms的定时中断计数500次后产生一个秒信号,利用所述秒信号每秒钟对内部时钟进行加I秒操作。
[0045]其中,对内部时钟进行加I秒操作之前以及加I秒操作之后,均需对内部时钟进行校验操作。校验时,先将内部时钟的前七个字节相加后取256的模,S卩(inside_date [I] +inside_date [2] +......+inside_date [7]) mod 256,再将取模后的结果与内部时钟的校验和的值进行比较,若相等,则校验通过,若不相等,则读取外部时钟,并用外部时钟覆盖内部时钟。并且,内部时钟进行加I秒操作后,若内部时钟为跨整点,则将当前内部时钟写入到外部存储器中。
[0046]S4.判断内部时钟是否已加10秒,若是,转入S5 ;若否,转入S3。
[0047]S5.读取外部时钟芯片中的控制寄存器的控制位信息以及时间寄存器中存储的外部时钟信息,并对所读取的信息进行校验,判断外部时钟芯片中的外部时钟是否正常,若是,进入S6 ;若否,进入S7。
[0048]其中,对所读取的信息进行校验时,需分别对控制寄存器的控制位的值以及时间寄存器中存储的外部时钟格式进行校验,且仅当两者均正常时,才能判断外部时钟芯片中的外部时钟为正常。
[0049]S6.将外部时钟的秒、分、时、周、日、月、年存储至单片机内的七位数组0utside_date[7]中,并对内部时钟进行校验,判断内部时钟是否正常,若是,转入S8;若否,转入S9。
[0050]S7.对内部时钟进行校验,判断内部时钟是否正常,若是,转入SlO ;若否,转入Sllo
[0051]S8.判断内部时钟与外部时钟相差是否大于5秒,若是,转入SlO ;若否,转入S9。
[0052]具体实现时,判断内部时钟与外部时钟相差是否大于5秒时,只需将内部时钟的分、时、周、日、月、年分别与外部时钟的分、时、周、日、月、年进行比较,若相等,则判断为相差不大于5秒;若不相等,则判断为相差大于5秒。这里的比较没有采用直接将两个时钟数据进行相减的方式,因为直接相减将涉及闰平年、大小月运算,操作比较复杂。而本方法直接比较内部时钟的分、时、周、日、月、年与外部时钟的分、时、周、日、月、年是否相等,如果不相等,就说明内部、外部时钟相差超过5秒。原理如下:如果外部时钟比内部时钟快5秒以上,则当在内部时钟的秒为55秒时,外部时钟已进入下一分钟,内部时钟、外部时钟的分是不同的;如果外部时钟比内部时钟慢5秒以上,则当在内部时钟的秒为05秒时,外部时钟还在上一分钟,内部时钟、外部时钟的分也是不同的。
[0053]S9.用外部时钟覆盖内部时钟,即用outside_date[7]中的秒、分、时、周、日、月、年覆盖inside_date[8]中的秒、分、时、周、日、月、年,并更新校验和,再转入S3。
[0054]S10.用内部时钟覆盖外部时钟,即用inside_date[8]中的秒、分、时、周、日、月、年覆盖outside_date[7]中的秒、分、时、周、日、月、年,再转入S3。
[0055]Sll.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,并置时钟错误标志,再转入S3。
[0056]本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
【主权项】
1.一种费控智能电能表的实时时钟同步纠错方法,所述电能表内部设有单片机、能产生外部时钟的外部时钟芯片和存有时钟数据的外部存储器,且单片机分别与外部时钟芯片、外部存储器连接,其特征在于,该实时时钟同步纠错方法包括以下步骤: 51.在单片机内部创建一个由八位数组组成的内部时钟,该八位数组中依次存放秒、分、时、周、日、月、年以及校验和;同时定义一个七位数组用于存放外部时钟的秒、分、时、周、日、月、年; 52.电能表上电启动,并对内部时钟进行初始设置; 53.通过单片机内部的定时器产生一个秒信号,利用所述秒信号每秒钟对内部时钟进行加I秒操作; 54.判断内部时钟是否已加10秒,若是,转S5,若否,转S3; 55.读取外部时钟芯片的数据,并对所读取的数据进行校验,判断外部时钟芯片中的外部时钟是否正常,若是,转S6,若否,转S7 ; 56.将外部时钟的秒、分、时、周、日、月、年对应存储至单片机内的七位数组中,并对内部时钟进行校验,判断内部时钟是否正常,若是,转S8,若否,转S9 ; 57.对内部时钟进行校验,判断内部时钟是否正常,若是,转S10,若否,转Sll; 58.判断内部时钟与外部时钟相差是否大于5秒,若是,转S10,若否,转S9; 59.用外部时钟覆盖内部时钟,转S3; 510.用内部时钟覆盖外部时钟,转S3; 511.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,并置时钟错误标志,转S3。
2.如权利要求1所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S2中,对内部时钟进行初始设置的具体步骤包括: 521.读取外部时钟芯片中控制寄存器的控制位信息以及时间寄存器中存储的外部时钟信息; 522.对控制寄存器的控制位的值以及时间寄存器中存储的外部时钟格式分别进行校验,判断两者是否均正常,若是,进入S23,若否,进入S24 ; 523.将外部时钟的秒、分、时、周、日、月、年对应存储至单片机内的七位数组中,并用该外部时钟覆盖内部时钟; 524.用外部存储器中的时钟分别覆盖内部时钟、外部时钟,并置时钟错误标志。
3.如权利要求1所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S3中,所述秒信号由单片机的定时器将2ms的定时中断计数500次后产生。
4.如权利要求1所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S3中,对内部时钟进行加I秒操作之前以及加I秒操作之后,均需对内部时钟进行校验操作;校验时,先将内部时钟的前七个字节相加后取256的模,再将取模后的结果与内部时钟的校验和的值进行比较,若相等,则校验通过,若不相等,则读取外部时钟,并用外部时钟覆盖内部时钟。
5.如权利要求1所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S3中,内部时钟进行加I秒操作后,若内部时钟为跨整点,则将当前内部时钟写入到外部存储器中。
6.如权利要求1所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S5中,所读取的外部时钟芯片的数据包括控制寄存器的控制位信息以及时间寄存器中存储的外部时钟信息。
7.如权利要求6所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S5中,对外部时钟芯片的数据进行校验时,需分别对控制寄存器的控制位的值以及时间寄存器中存储的外部时钟格式进行校验,且仅当两者均正常时,才能判断外部时钟芯片中的外部时钟为正常。
8.如权利要求1所述的费控智能电能表的实时时钟同步纠错方法,其特征在于:步骤S8中,判断内部时钟与外部时钟相差是否大于5秒时,将内部时钟的分、时、周、日、月、年分别与外部时钟的分、时、周、日、月、年进行比较,若相等,则判断为相差不大于5秒;若不相等,则判断为相差大于5秒。
【专利摘要】一种费控智能电能表的实时时钟同步纠错方法,涉及电能计量仪表仪器技术领域,包括步骤:先在单片机内部创建一个内部时钟,并定义一个用于存放外部时钟的数组;电能表上电启动后对内部时钟进行初始设置;然后通过定时器产生秒信号,每秒钟对内部时钟进行加1秒操作;每当内部时钟加10秒后,便对外部时钟、内部时钟依次进行校验操作,并对出现异常的时钟进行对应地同步纠错处理。本发明能增强时钟的抗干扰能力,有效保证电能表中实时时钟的准确性,稳定可靠。
【IPC分类】G01R35-04
【公开号】CN104635196
【申请号】CN201510070938
【发明人】徐健, 刘艳红, 李良红, 刘金刚, 陶永法, 连小华, 汪伟
【申请人】武汉阿迪克电子股份有限公司
【公开日】2015年5月20日
【申请日】2015年2月10日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1