首页> 中国专利> RS485通讯中实现时钟同步的GIS断路器在线监测系统

RS485通讯中实现时钟同步的GIS断路器在线监测系统

摘要

本发明提供了一种RS485通讯中实现时钟同步的GIS断路器在线监测系统,包括主机和从机,主机监测GIS断路器的开关信号量,从机监测GIS断路器的电流信号,主机与从机之间通过RS485接口连接,RS485接口的连接线不仅作为主机和从机之间的通讯连接线,同时,作为主机和从机之间的时钟同步信号线,用于主机对从机进行时钟同步命令控制,且,作为RS485通讯连接线时的通讯波特率的配置对作为RS485时钟同步信号线时的同步控制不产生影响。本发明系统,仅通过一路RS485,不仅实现通讯功能,也实现时钟同步信号功能,使得系统时钟同步效果能达到所设定的要求。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-07

    授权

    授权

  • 2019-03-26

    实质审查的生效 IPC(主分类):G06F1/12 申请日:20181220

    实质审查的生效

  • 2019-03-01

    公开

    公开

说明书

技术领域

本发明涉及通讯技术领域,更具体的,涉及一种基于RS485通讯中实现时钟同步的GIS断路器机械特性在线监测系统。

背景技术

GIS断路器开关机械特性在线监测系统,由一台主机和3台监测器组成。主机监测开关信号量,包括信号的打开和关闭时间,而三台监测器分别检测A、B、C三相开关的电流信号,电流信号包括合闸电流和分闸电流。监测的参数包括电流的大小和电流导通的时间。开关信号和电流信号发生的时间不同,而这两个信号的时间相关性很紧密。电流信号的时间和开关信号的时间结合在一起,才形成一个完整的参数值。所以在实际应用中,主机和监测器的各自的时间的同步就变得很重要。

现有的GIS断路器机械特性在线监测系统,除了主机和三个检测器之间通讯用的RS485信号线之外,还增加了另外一路RS485信号,用来实现主机和三个监测器的时间同步。

这样的两路RS485信号线,除了线缆的成本增加外,还有施工量增大,并且多一路信号非稳定性会增大、相应的维护会增多。

发明内容

针对上述现有技术中存在的缺陷,本发明的目的是提供一种基于RS485通讯中实现时钟同步的GIS断路器机械特性在线监测系统,实现系统中主、从机的精确时钟同步。

为达到上述目的,本发明所采用的技术方案如下:

一种RS485通讯中实现时钟同步的GIS断路器机械特性在线监测系统,包括主机和从机,主机监测GIS断路器的开关信号量,从机监测GIS断路器的电流信号,主机与从机之间通过RS485接口连接,所述RS485接口连接线不仅作为主机和从机之间的通讯连接线,同时,作为主机和从机之间的时钟同步信号线,用于主机对从机进行时钟同步命令控制,且,作为RS485通讯连接线时的通讯波特率的配置对作为RS485时钟同步信号线时的同步控制不产生影响。

具体包括步骤如下:

步骤1:主机发送准备命令

当需要进行时钟同步时,主机先发送时钟同步准备命令,发送命令后主机要做必要的准备工作,包括允许外部中断,中断标志清零;

步骤2:从机接收准备命令

从机接收到准备命令后,做必要的准备工作,包括允许外部中断,中断标志清零;

步骤3:主机发送同步命令

同步命令发送出去后,主机会产生外部中断,会产生中断标志,在外部中断中记录中断产生时的主时钟并保存,并且禁止外部中断再产生,直至再次发送新的同步命令;

步骤4:从机接收同步命令

从机接收到同步命令后,也产生了外部中断,在外部中断中记录中断产生时的从时钟值并保存,并且禁止外部中断再产生,直至再次接收到主机发送的新的同步命令;

步骤5:主机发送主时钟;

步骤6:从机接收主时钟;

步骤7:从机修正自己的从时钟

从机接收到主机的主时钟值后,对自己的从时钟进行修正。

主机的数据发送线连接其外部中断引脚,在主机向各从机发送同步命令后,主机发送一个数据,该数据的起始位作为时钟同步信号用以触发主机外部中断引脚发生中断;从机的数据接收线连接其外部中断引脚,在从机接收到主机发出的同步命令后,等待接收主机发送的数据,该数据的起始位作为时钟同步信号用以触发从机外部中断引脚发生中断。

主机中的CPU控制器的外部中断优先级配置为其所有中断中的最高优先级;从机中的CPU控制器的外部中断优先级配置为其所有中断中的最高优先级。

主机中的外部中断引脚上的中断信号的触发配置为从高到低触发中断;从机中的外部中断引脚上的中断信号的触发配置为从高到低触发中断。

同步命令是一个字节或多个字节的数据。

时钟包括时钟计数器的值和定时器的值,其中,定时器的值记录至系统时钟的精度设定位,直到溢出中断,定时器的值清零并重新装载,时钟计数器的值加1。

外部中断中记录到的中断产生时的主时钟称为同步主时钟,保存到主时钟计数器M_Int_Time_Counter和主定时器M_Int_Timer中;外部中断中记录到的中断产生时的从时钟值保存到从时钟计数器S_Int_Time_Counter和从定时器S_Int_Timer中;从机接收到主机的主时钟值后,对自己的从时钟进行修正时,从机首先读取自己当前的从时钟计数器S_Time_Counter和从定时器S_Timer的值,分别计算这两个值和中断产生时保存的对应的两个值的偏差,把偏差值加上中断产生时保存的主时钟值,然后写入到S_Time_Counter和S_Timer中,此后从定时器中的值从S_Timer开始计数,直到溢出中断,中断后,S_Time_Counter值做加1的调整。

在从机对自己的从时钟进行修正后,修正后的从时钟与当前主时钟之间还会存在一定的同步误差,包括信号传输的时差、中断处理的时差以及主时钟和从时钟各自的时钟源不同造成的时差,信号传输的时差是指主机和从机产生中断之间的时间差,中断处理的时差在主机和从机中都有,表示在中断发生后到读取各自的时钟之间的时间差,其中由主时钟和从时钟各自的时钟源不同造成的时差可以通过从机再对定时器的赋值进行校准。或者减小主机和从机之间的同步时间间隔来减小时间偏差。

主机为一个,用于监测的开关信号量包括A、B、C三相开关的信号合闸时间和分闸时间;从机为3个,用于分别监测A、B、C三相开关的电流信号,包括合闸电流和分闸电流。

与现有技术相比,本发明具有如下的有益效果:

本发明公开的基于RS485通讯中实现时钟同步的GIS断路器机械特性在线监测系统,将原有通讯RS485和同步RS485两路信号线用一路实现相同的功能,并且提高了性能。原有同步RS485信号线上传输的是通讯命令。需要时钟同步时,主机先读取主时钟值,通过同步RS485信号线发主时钟给从机,从机接收到主时钟后再对各自的时钟进行校正。从主机发送到从机接收到主时钟值,再到从机解析主机的时钟信息,这个过程中会占用一定的时间,等到从机对自己的时钟进行校对后,从时钟已经和主时钟存在偏差值了。而本专利采用同一个信号作为时钟同步信号,而主、从机同时接收到这个信号后同时读取各自的时钟值,所以从C机上的时钟校正后,整个系统的系统时钟偏差就很小。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例的系统结构框图;

图2为本发明的硬件原理结构框图;

图3为本发明时钟同步过程示意图;

图4为本发明主机定时器中断服务流程图;

图5为本发明主机外部中断服务流程图;

图6为本发明主机主程序流程图;

图7为本发明从机主程序流程图;

图8为本发明的系统测试原理图;

图9为同步时的同步信号时间误差示意图;

图10为时钟同步一秒后,主机和从机的时钟差示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

图1所示,本发明提供一种基于RS485通讯中实现时钟同步的GIS断路器机械特性在线监测系统。包括一台主机和3个从机。工作过程中,主机和3台从机对时后,都有相同的一个系统时钟。如果从机1监测到A相合闸电流信号后,从机1记录该电流的开始时间和时间长度,并测量电流的大小。其中电流的开始时间是指电流开始时的系统时钟;此后,主机会接收A相合闸信号的变化。主机记录A相合闸信号的变化的开始时间和结束时间,也就是信号变化时的系统时钟。合闸信号结束后,主机会读取从机1的数据,把从机1的合闸电流的开始时间到主机检测到的合闸信号的结束时间,作为整个合闸时间,此参数反应了开关的实际动作时间。

由于主机和从机1都以系统时钟记录时间,所以系统时钟对时的准确性得到了具体的体现。

本发明系统时钟同步的原理:

主机和从机都以单片机作为控制单元,单片机上有定时器,有外部中断引脚和UART接口。其中UART连接RS485芯片,作为系统的通讯总线使用。

主时钟和从时钟的产生原理:

主机上的单片机称为主CPU,从机上的单片机称为从CPU。主机和从机上的单片机都是用外部晶振倍频后作为工作时钟。主、从CPU各自都有自己的工作时钟和定时器,工作时钟经过分频后作为定时器的时钟源,时钟源可以设定为经过一定的时间间隔产生定时中断,中断的次数被记录后形形成主时钟和从时钟。时间间隔根据实际需要设置,可以是1秒,1毫秒等。

硬件信号的同步实现:

要实现时钟同步,在硬件上通过信号线来实现。主机和从机的硬件连接结构图如图2所示。系统中主机和从机通过RS485通讯,而RS485芯片和CPU连接的接口为UART接口。通讯过程中,主CPU的发送数据线TXD_M和从CPU的接收数据线RXD_S产生的信号相同,并且同步,可以用此信号线作为同步信号线。

时间的精确读取:

UART发送数据是按照位发送,发送一个8位的数据一般要发送10个位,其中有起始位和停止位。UART发送信号在没有发送数据时是高电平,而发送数据时的起始位为低电平,可以用通信过程中的这个起始位作为同步信号。根据这个同步信号,需要主CPU和从CPU同时抓取各自的时钟。

同时抓取信号通过中断来实现。在CPU中都有外部中断引脚,在主CPU中,把TXD_Mx信号连接到一个中断引脚。在从CPU中,把RXD_S信号连接到一个中断引脚。CPU的外部中断都设置为从高到地电平的跳变来触发。在CPU的外部中断中读取时钟,这样主、从CPU就能同时读取到各自的时钟。

从机时钟修正:

得到各自的时钟后,主机把主时钟发送给从机,从机接收到主机的时钟值后,把主机的时钟和自己的中断时的时钟值进行比较,修正自己的时钟,就实现了和主机时钟的同步。

以下通过一具体实施例来对时钟同步的具体实现方法做进一步详细的说明。

定时器的配置及定时中断处理:

主CPU使用STM32F103VCT6芯片,系统时钟频率:72MHz时钟,使用定时器Timer4,时钟预分频数为720,那么一个时钟周期为0.01mS,即10uS。定时器的自动重装载寄存器周期的值设置为50000,则定时中断一次的时间为50000x 0.01mS=500mS。主定时器命名为M_Timer。

从CPU使用STM32F103C8T6芯片,系统频率和定时器的配置和主CPU相同,从定时器命名为S_Timer。

CPU的定时器为16位,配置后开启定时器,定时器每隔10uS计数加一,等计数值达到50000时计数值清零,并产生定时中断,两次定时中断时间间隔500mS。定义变量记录中断次数,就可以换算成时钟。主机的定时器中断次数计数变量命名为主机时钟计数器,变量名:M_Time_Counter,从机的定时器中断次数计数变量名称为从机时钟计数器,变量名:S_Time_Counter。

主机定时中断中,M_Time_Counter计数器加1;从机定时中断中,M_Time_Counter计数器加1。

UART接口的配置:

UART用于连接RS485芯片进行通讯。主CPU使用UART1接RS485,配置波特率115200,8位数据位,1位停止位,无奇偶校验。从CPU使用UART3连接RS485芯片,配置波特率115200,8位数据位,1位停止位,无奇偶校验。

外部中断的配置和中断处理:

主CPU外部中断使用PC0引脚,连接UART的发送信号线TX。配置为下降沿触发中断。从CPU外部中断使用PA2引脚,连接UART的接收信号线RX。配置为下降沿触发中断。主、从CPU的外部中断都可以进行禁止和允许的设置,即禁止中断产生和允许中断产生。

在中断中读取定时器的时间计数值,保存。

主CPU外部中断处理:读取时钟计数器M_Time_Counter和定时器M_Timer的值,并保存到M_Int_Time_Counter和M_Int_Timer中,设置中断标志,禁止外部中断;

从CPU外部中断处理:读取时钟计数器S_Time_Counter和定时器S_Timer的值,并保存到S_Int_Time_Counter和S_Int_Timer中,设置中断标志,禁止外部中断;

时钟同步过程,如图3所示:

从机和主机的时钟同步包括以下步骤实现:主机发送准备命令;从机接收准备命令;主机发送同步命令;从机接收同步命令;主机发送主时钟;从机接收主时钟并修正自己的从时钟,如图2所示。

具体过程包括如下:

主机发送准备命令:当需要进行时钟同步时,主机先发送时钟同步准备命令。发送命令后主机要做必要的准备工作,具体为允许外部中断,中断标志清零。

从机接收到准备命令后,做同样的准备工作,允许外部中断,中断标志清零。

主机发送同步命令:同步命令发送出去后,主机会产生外部中断,会产生中断标志,并且也在外部中断中记录到了中断产生时的主时钟,主时钟值保存在M_Int_Time_Counter和M_Int_Timer中。M_Int_Time_Counter中的值的时钟单位是0.5S,即500mS;M_Int_Timer中的值的时钟单位是0.01mS,即10uS。

从机接收到同步命令后,也已经产生了外部中断,这个可以根据中断标志可以判断。中断产生时的从时钟值保存在S_Int_Time_Counter和S_Int_Timer中。S_Int_Time_Counter中的值的时钟单位是0.5S,即500mS;S_Int_Timer中的值的时钟单位是0.01mS,即10uS。从机接收到同步命令后,等待接收主机的主时钟值。

主机发送主时钟:主机发送同步命令后,发送主时钟值,即M_Int_Time_Counter和M_Int_Timer中的数据给从机。

从机接收到主机的时钟值后,通过计算,对自己的时钟进行修正。

主机发送对时命令,16进制数据包:“55 AA 31 54 49 4D 45 0D 0A”

主机发送对时数据包,16进制数据包:“55 AA 32”

主机发送主机时间,16进制数据包:“55 AA 33 xx xx xx xx yy yy”

参数定义:

主机时钟秒计时:M_Time_Counter,单位0.5秒

主机时钟微秒计时:M_Timer,单位10微妙,或0.01毫秒

从机时钟秒计时:S_Time_Counter,单位0.5秒

从机时钟微秒计时:S_Timer,单位10微妙,或0.01毫秒。

从机时钟的计算和修正:

从机接收到主机的时钟数据后,对自己的时钟进行修正。读取当前的时钟计数器S_Time_Counter和定时器S_Timer的值,分别计算这两个值和中断产生时的对应的两个值的偏差,把偏差值加上主时钟值,然后写入到S_Time_Counter和S_Timer中。此后定时器中的值从S_Timer开始计数,直到溢出中断,中断后,S_Time_Counter值做加1的调整。

软件流程:

主机定时器中断服务程序,如图4所示:

主机定时器中断服务程序处理主机时钟更新,主要的功能是进行秒增加1计数。计数每加1,表示主时钟增加0.5秒。同时在中断服务程序中增加一个测试信号,测试信号是一个低脉冲信号,用示波器测量可以看到,每隔0.5秒输出一个低脉冲信号。

从机定时器中断服务程序:

从机的定时中断程序和主机相同,也是每个0.5秒计数值加1,并且也输出一个低脉冲信号。

主机外部中断服务程序,如图5所示:

主机外部中断的产生是由时钟同步命令引起,在中断中读取主时钟并保存,并且禁止外部中断在产生。这个时钟称为同步主时钟,保存到M_Int_Time_Counter和M_Int_Timer中,表示主机中断时的时钟。

从机外部中断服务程序:

从机外部中断的产生也是由时钟同步命令引起,处理方式和主机相同,读取的时钟值保存到S_Int_Time_Counter和S_Int_Timer中,表示从机中断时的时钟。

主机主程序流程,如图6所示:

主机主程序流程是主机在时钟同步过程中从发起对时到最后对时结束的程序执行流程。

从机主程序流程,如图7所示:

从机主程序流程是从机在运行过程中,从接收到对时准备命令到对时处理完成的程序执行流程。

时钟同步测试结果与分析,图8所示。

影响时钟同步误差的因素:

影响时钟同步的时间差包括信号传输的时差和中断处理的时钟差。信号传输指的是主机和从机产生中断之间的时间差。通过测量,时差在1.4uS左右,如图9所示。中断处理的时间在主机和从机中都有,表示在中断发生后到读取各自的时钟之间的时差。实际测量中,中断处理的时间为3uS左右,如果使主机和从机的中断处理过程尽量一致,即可减小时间偏差。

时钟同步的测量:

图10是实际测量的同步后的时钟。是在时钟同步后1秒钟时主机和从机输出的信号时间偏差。根据图示时差小于5uS。通过长时间的测量,有个别时间同步后的时钟偏差大于10uS,但不会超过20uS。

如果要减小时钟同步的偏差,可以采用的方法:减小定时器的分频数,从10uS可以提高到2uS。

时钟同步后,由于主时钟和从时钟各自的时钟源不同,运行过程中也会慢慢产生偏差,减小此偏差可以采用的方法是从机再从定时器的赋值进行校准;另外是减小主机和从机之间的同步时间间隔,比如10秒或更短时间进行一次时钟同步。

本实验测量过程中,主时钟和从时钟之间的时间差是1.1uS/S,如果10秒钟做一次时钟同步的时,偏差已经达到11uS,所以可以采用5秒钟做一次时钟同步。

高精度时钟同步测量系统在电力监测设备中有很大的使用空间,试验证明,本发明基于RS485分布式网络系统的时钟同步精度可以达到微秒级。从成本和精度方面为其他基于RS485网络系统的时钟同步提供参考和帮助。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号