一种基于RS485的高精度对时方法 |
|||||||
申请号 | CN202010862202.2 | 申请日 | 2020-08-25 | 公开(公告)号 | CN111988105B | 公开(公告)日 | 2022-11-01 |
申请人 | 烟台东方威思顿电气有限公司; | 发明人 | 黄蕙; 袁阔; 吴震; | ||||
摘要 | 本 发明 公开了一种基于RS485的高 精度 对时方法,包括:对时主设备通过RS485向被对时设备发送第一对时报文进行秒级对时;被对时设备接收到第一对时报文并将解析出的时间写入 实时时钟 ,发送响应报文,并配置好 定时器 ,将实时时钟的秒级时间与定时器的毫秒级时间组合成被对时设备的毫秒级待校正时间;对时主设备接收到响应报文后发送包含与绝对时间时钟沿对应的毫秒级绝对时间的第二对时报文;被对时设备接收第二对时报文并解析出毫秒级绝对时间,并得到绝对时间时钟沿对应的待校正时间,将两者之间的差值作为校正值,对被对时设备的内部实时时间进行校正。本发明提高了对时精度,通用性高,成本低。 | ||||||
权利要求 | 1.一种基于RS485的高精度对时方法,用于保持对时主设备及被对时设备之间时间同步,其特征在于步骤为: |
||||||
说明书全文 | 一种基于RS485的高精度对时方法技术领域背景技术[0002] 目前,电力设备的对时方法主要有:以太网对时、IRIG‑B对时、GPS对时和普通RS485对时方法。 [0005] IRIG‑B(简称B码对时):优点是对时精度高,可以通过TTL和RS422逻辑电平传输,主要缺点是需配置专用对时通道,对于简单设备也不太适合。 [0007] 普通RS485对时:通过发送包含时间信息的报文对设备进行对时,优点是成本低,缺点是对时精度差,一般能达到秒级。 发明内容[0008] 本发明提出了一种基于RS485的高精度对时方法,其目的是:克服现有技术高精度对时成本高且不通用、低精度对时无法满足对时要求的问题。 [0009] 本发明技术方案如下: [0010] 一种基于RS485的高精度对时方法,用于保持对时主设备及被对时设备之间时间同步,其步骤为: [0011] 步骤1、对时主设备通过RS485向被对时设备发送第一对时报文进行秒级对时,所述第一对时报文包含对时主设备的秒级绝对时间; [0012] 步骤2、被对时设备接收到第一对时报文并解析,将解析出的秒级绝对时间写入实时时钟,并开启被对时设备内部实时时钟的秒中断输出,同时发送第一对时响应报文给对时主设备; [0013] 步骤3、被对时设备配置好定时器,每次发生实时时钟的秒事件时执行毫秒定时器清零,定时器中保存毫秒信息;将实时时钟的秒级时间与定时器的毫秒级时间组合成被对时设备的毫秒级的待校正时间; [0014] 步骤4、对时主设备接收到被对时设备的第一对时响应报文后,通过RS485向被对时设备发送第二对时报文进行毫秒级对时,所述第二对时报文包含绝对时间时钟沿以及与该时钟沿对应的毫秒级绝对时间; [0015] 被对时设备接收第二对时报文并解析出毫秒级绝对时间,并得到绝对时间时钟沿对应的待校正时间,将毫秒级绝对时间与该待校正时间之间的差值作为校正值,并向对时主设备发送第二对时响应报文;被对时设备使用该校正值对待校正时间进行校正; [0016] 步骤5、对时主设备接收到被对时设备的第二对时响应报文后,对时操作完成。 [0017] 进一步地,步骤4中发送第二对时报文的方式为:对时主设备发送第二对时报文的报头,然后对时主设备的CPU将RS485的串口发送引脚配置为通用输出功能且保持高电平,获取绝对时间的时钟沿并记录此时的毫秒级绝对时间,同时通过串口发送引脚输出低电平脉冲,然后再将该引脚转换为串口发送功能发送剩余报文,剩余报文内容包括所述毫秒级绝对时间。 [0018] 被对时设备在接收到第二对时报文的报头后,被对时设备的CPU将RS485的串口接收引脚配置为通用输入功能,关闭中断后通过轮询的方式查询该引脚产生的跳变沿,在跳变沿发生时记录当前的待校正时间,在检测到脉冲结束后将该引脚转换为串口接收功能以接收剩余报文,收到报文并解析出毫秒级绝对时间后,计算所述校正值。 [0019] 进一步地,对时主设备通过GPS对时、以太网IEEE1588协议对时或IRIG‑B协议对时获取绝对时间。 [0020] 进一步地,对时主设备的CPU通过输入端口或者内部寄存器的标志位访问到绝对时间秒或者毫秒的跳变。 [0021] 进一步地,被对时设备的CPU通过输入端口或者内部寄存器的标志位访问实时时钟电路秒的跳变。 [0022] 进一步地,对时主设备和被对时设备的CPU寄存器或输入端口访问速度比目标对时精度高一个数量级。 [0023] 相对于现有技术,本发明具有以下有益效果:(1)对时主设备与被对时设备通过获取绝对时间时钟沿、改变RS485引脚配置及手动拉低电平的方法实现了跳变沿法对时,提高了对时精度,且无需额外增加专用对时电路,通用性高,成本低;(2)被对时设备的硬件层面无需做改动,已有产品可通过升级软件的方法实现高精度对时,兼容老旧设备;(3)本发明还可进一步通过调整RS485硬件电路信号的传输延时,实现更高精度的对时。附图说明 [0024] 图1为本发明的流程图; [0025] 图2为本发明的实施例的结构示意图。 具体实施方式[0026] 下面结合附图详细说明本发明的技术方案: [0027] 图2为本发明实施例的结构示意图,对时主设备和被对时设备通过RS485总线相连接。 [0028] 所述对时主设备包括带天线的GPS电路、CPU(型号为STM32F407)和RS485收发电路(驱动芯片型号为THVD1500)。所述GPS电路的串口与CPU的串口相连接,用于CPU读取秒级绝对时间,GPS电路的秒脉冲信号直接接入CPU的输入端口,用于CPU获取秒的跳变; RS485收发电路的发送接收端口与CPU相连。 [0029] 所述被对时设备包括实时时钟电路(芯片型号为RX8025T)、CPU(型号为STM32F407)和RS485收发电路(驱动芯片型号为THVD1500)。所述实时时钟电路通过I2C通信接口与CPU相连, CPU可通过该接口获取当前时间信息,实时时钟芯片通过秒中断引脚通知CPU秒跳变时刻;RS485收发电路的发送接收端口与CPU相连。 [0030] 所述对时主设备与被对时设备的CPU运行主频为168MHz,输入输出端口访问速度高达84MHz;RS485差分信号通过差分总线引出至设备外部,差分信号与CPU发出的信号之间延时小于350纳秒。所述实时时钟芯片的守时精度常温下高达3.8ppm(对应一天最多相差0.3秒)。所述RS485总线,常见的铜导线电信号传输速率一般大于200000km/s,对于2000米的485总线,传输延迟小于10us。 [0031] 如图1,本发明所述的对时方法包括如下步骤: [0032] 步骤1:对时主设备通过RS485向被对时设备发送第一对时报文进行秒级对时,所述第一对时报文包含对时主设备的秒级绝对时间,用于被对时设备的CPU校正其内部的实时时钟,将对时误差限制在1秒以内。其中,对时主设备的秒级绝对时间通过如下方式获取:在确认GPS接收信号强度满足条件时,对时主设备的CPU通过串口读取GPS当前时间,最小单位精确到秒。 [0033] 步骤2:被对时设备接收到第一对时报文并解析,通过I2C接口将解析出的秒级绝对时间写入实时时钟芯片RX8025T,并开启RX8025T的秒中断输出,同时发送第一对时响应报文给对时主设备。 [0034] 步骤3:被对时设备配置好定时器,每次发生实时时钟的秒事件时执行毫秒定时器清零,定时器中保存毫秒信息;将实时时钟的秒级时间与定时器的毫秒级时间组合成被对时设备的毫秒级的待校正时间。 [0035] 步骤4:对时主设备接收到被对时设备的第一对时响应报文后,通过RS485向被对时设备发送第二对时报文进行毫秒级对时,所述第二对时报文包含绝对时间时钟沿以及与该时钟沿对应的毫秒级绝对时间。具体发送方式为:对时主设备发送第二对时报文的报头,然后对时主设备的CPU将RS485的串口发送引脚配置为通用输出功能且保持高电平,获取绝对时间的时钟沿并记录此时的毫秒级时间作为毫秒级绝对时间,同时将RS485的发送引脚拉低,拉低适当时间(小于对应串口波特率的一个字节时长)后,拉高该引脚,随后将该引脚转换为串口发送功能;一定时间延迟(给被对时设备一定的准备时间)后,将第二对时剩余报文数据通过RS485发送给被对时设备,剩余报文内容包括所述毫秒级绝对时间。具体地,对时主设备可通过如下方式获取绝对时间的时钟沿:(1)CPU轮询GPS的秒脉冲端口电平,获取端口电平发生跳变的时刻;(2)CPU监测具有IEEE1588对时功能的物理层芯片的PTP时钟沿并通过MII或RMII接口读出时间戳;(3)CPU对IRIG‑B协议进行解码提取出时钟沿,并解析对时报文的时间戳。 [0036] 被对时设备在接收到第二对时报文的报头并解析成功后,被对时设备的CPU将RS485的串口接收引脚配置为通用输入功能,关闭中断后通过轮询的方式查询该引脚产生的跳变沿,在跳变沿发生时记录当前时刻作为待校正时间,在检测到脉冲结束后将该引脚转换为串口接收功能以接收剩余报文,收到报文并解析出毫秒级绝对时间,将毫秒级绝对时间与该待校正时间之间的差值作为校正值,并向对时主设备发送第二对时响应报文;被对时设备使用该校正值对待校正时间进行校正。 [0037] 步骤5:对时主设备接收到被对时设备的第二对时响应报文后,对时操作完成。 [0038] 此时被对时设备的时间精度达到毫秒级,被对时设备的实时时间,由实时时钟芯片的秒级时间、定时器的毫秒级时间和校正时间组成,三者之和作为校正后的时间。 [0039] 通过上述的对时方法,即可实现被对时设备的毫秒级对时,该方法可通过扩展规约的形式实现,不影响正常规约的通信功能。本发明通过RS485进行跳变沿法对时,误差精度要比通过包含绝对时间信息的报文数据对时的精度高很多,且无需额外增加专用对时电路,满足通用性高、成本低的要求;被对时设备的硬件层面无需做改动,已有产品可通过升级软件的方法实现高精度对时,兼容老旧设备。 |