一种嵌入式系统自适应对时方法技术领域
本发明属于电力系统智能设备领域,特别涉及一种嵌入式系统自适应对时的
实现方法。
背景技术
电力系统二次控制保护装置的运行控制、系统监视都要求内部时间与外部时
钟同步,因此需根据外部时钟源设备发出的对时信号来校正系统内部时间。随着
科技发展,外部时钟信号的类型和接口形式也在不断更新变化,目前电力系统中
广泛应用的时钟源按信号类型分类有PPS、PPM、IRIG-B、NTP、IEEE-1588、通
信规约授时等,按接口分类有光纤输入、电平输入、空接点、以太网等。对于对
时选择,常规做法是设置一个“对时参数”,由用户来选择对时信号。这种方法
对用户要求较高,特别是存在一些组合对时方式,如“PPS+NTP”、“PPM+IEC103
规约对时”,用户难以理解和掌握,造成使用困难,有待改进。
发明内容
本发明的目的,在于提供一种嵌入式系统自适应对时方法,支持多种对时接
口和多种类型的外部对时信号,根据各信号的时间精度和有效性,自动选择优先
级高的对时信号进行对时。
为了达成上述目的,本发明的解决方案是:
一种嵌入式系统自适应对时方法,包括如下步骤:
步骤A,设定对时接口与对时信号类型组合的优先级;
步骤B,以设定周期循环按照步骤A确定的优先级依次检测各种对时信号,
优先使用优先级高的信号对时,优先级高的信号无效时才检测优先级低的信号。
上述步骤A中,根据信号时标精度确定对时信号的优先级,由高到低为:光
纤或电平输入的IRIG-B、以太网IEEE-1588、光纤或电平输入的PPS、光纤或电
平输入的PPM、空接点输入的PPS、空接点输入的PPM、以太网NTP。
上述步骤B中,对时信号为PPS或PPM时,辅助使用以太网NTP方式校正系
统的日历时间。
上述步骤B中,光纤或电平输入的IRIG-B信号的检测和对时方法是:
(1)检测是否接收到IRIG-B脉冲序列,若未接收到指定格式的脉冲序列则
IRIG-B无效;
(2)若接收到IRIG-B脉冲序列,以节拍值为基准,计算最近两次IRIG-B
脉冲序列的间隔时间tb:
tb=(Tb–Tb1)/F
其中,节拍值指系统的时间基准,且按固定频率自增;Tb是最近一个IRIG-B
脉冲序列到来时的节拍值,Tb1是上一个IRIG-B脉冲序列到来时的节拍值,F是
节拍值自增频率;若tb在1s附近,则认为IRIG-B有效;否则认为IRIG-B无效;
(3)若IRIG-B有效,将系统时钟设置为IRIG-B中携带的日历时间加上(Tnow
–Tb)/F,其中Tnow为当前节拍值。
上述步骤B中,以太网IEEE-1588信号的检测和对时方法是:检测以太网
IEEE-1588报文有效性,若有效则根据IEEE-1588协议调整系统时钟。
上述步骤B中,光纤或电平输入的PPS或PPM信号的检测和对时方法是:
(1)检测是否接收到指定脉宽的单脉冲序列,若未接收到单脉冲则PPS、
PPM无效;
(2)若接收到单脉冲,以节拍值为基准,计算最近两次单脉冲的间隔时间
tp:
tp=(Tp–Tp1)/F
其中,Tp是最近一个单脉冲到来时的节拍值,Tp1是上一个单脉冲到来时的节
拍值,F是节拍值自增频率;若tp在1s附近,则认为PPS有效;若tp在60s附
近,则认为PPM有效;否则认为PPS、PPM无效;
(3)若PPS有效,将系统时钟设置为当前系统时间四舍五入到整秒钟再加
上(Tnow–Tp)/F;若PPM有效,将系统时钟设置为当前系统时间四舍五入到整
分钟再加上(Tnow–Tp)/F,其中,Tnow为当前节拍值。
上述步骤B中,空接点输入的PPS或PPM信号的检测和对时方法是:
(1)检测空接点输入信号是否发生由0到1或由1到0的变位,若未发生
变位则PPS、PPM无效;
(2)若空接点输入信号发生变位,以节拍值为基准,计算最近两次变位的
间隔时间tc:
tc=(Tnow–Tc1)/F
其中,Tnow是当前节拍值,Tc1是上一次空接点输入信号变位时的节拍值,F
是节拍值自增频率;若tc在1s附近,则认为PPS有效;若tc在60s附近,则认
为PPM有效;否则认为PPS、PPM无效;
(3)若PPS有效,将系统时钟四舍五入到整秒钟;若PPM有效,将系统时
钟四舍五入到整分钟。
上述步骤B中,以太网NTP信号的检测和对时方法是:检测以太网NTP报文
有效性,若有效则根据NTP协议调整系统时钟。
上述对时方法还包括步骤C:系统输出当前选用的对时信号类型,若无任何
有效的对时信号,输出报警信号。
采用上述方案后,与现有方案相比,本发明可应对电力系统实际应用中的各
种对时信号,可以简化嵌入式系统对时配置,实现灵活、自适应的对时。
附图说明
图1是本发明支持的对时接口类型和对时信号类型示意图;
图2是本发明检测对时信号并进行对时的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
如图2所示,本发明提供一种嵌入式系统自适应对时方法,包括如下步骤:
步骤A,设定对时接口与对时信号类型组合的优先级;
嵌入式系统能够支持多种对时接口,包括光纤输入、电平输入、空接点输入、
以太网报文输入;支持多种类型的外部对时信号,包括IRIG-B、秒脉冲PPS、分
脉冲PPM、NTP、IEEE-1588、通信规约对时。结合图1所示,在本实施例中,主
要以几种常见的组合为例,并根据信号时标精度确定优先级(由高到低)为:光
纤或电平输入的IRIG-B、以太网IEEE-1588、光纤或电平输入的PPS、光纤或电
平输入的PPM、空接点输入的PPS、空接点输入的PPM、以太网NTP。
步骤B,以一定周期(如1ms)循环按照步骤A确定的优先级依次检测各种
对时信号,优先使用优先级高的信号对时,优先级高的信号无效时才检测优先级
低的信号。
系统内部有一个按固定频率F(如20MHz)自增的节拍值,可用高精度振荡
器实现,作为系统的时间基准。
各种信号的检测和对时方法如下:
1、检测光纤或电平输入的IRIG-B信号:
(1)检测是否接收到IRIG-B脉冲序列,若未接收到指定格式的脉冲序列则
IRIG-B无效。
(2)若接收到IRIG-B脉冲序列,计算最近两次IRIG-B脉冲序列的间隔时
间tb(以节拍值为基准):
tb=(Tb–Tb1)/F
其中,Tb是最近一个IRIG-B脉冲序列到来时的节拍值,Tb1是上一个IRIG-B
脉冲序列到来时的节拍值,F是节拍值自增频率。若tb在1s附近,如[0.999s,
1.001s]之间,则认为IRIG-B有效;否则认为IRIG-B无效。
(3)若IRIG-B有效,将系统时钟设置为IRIG-B中携带的日历时间加上(Tnow
–Tb)/F,其中Tnow为当前节拍值。
2、检测以太网IEEE-1588报文有效性,若有效则根据IEEE-1588协议调整
系统时钟。
3、检测光纤或电平输入的PPS或PPM信号:
(1)检测是否接收到指定脉宽(如200ms)的单脉冲序列,若未接收到单
脉冲则PPS、PPM无效。
(2)若接收到单脉冲,计算最近两次单脉冲的间隔时间tp(以节拍值为基
准):
tp=(Tp–Tp1)/F
其中,Tp是最近一个单脉冲到来时的节拍值,Tp1是上一个单脉冲到来时的节
拍值,F是节拍值自增频率。若tp在1s附近,如[0.999s,1.001s]之间,则认
为PPS有效;若tp在60s附近,如[59.999s,60.001s]之间,则认为PPM有效;
否则认为PPS、PPM无效。
(3)若PPS有效,将系统时钟设置为当前系统时间四舍五入到整秒钟再加
上(Tnow–Tp)/F;若PPM有效,将系统时钟设置为当前系统时间四舍五入到整
分钟再加上(Tnow–Tp)/F,其中Tnow为当前节拍值。
4、检测空接点输入的PPS或PPM信号:
(1)检测空接点输入信号是否发生由0到1(或由1到0)的变位,若未发
生变位则PPS、PPM无效。
(2)若空接点输入信号发生变位,计算最近两次变位的间隔时间tc(以节
拍值为基准):
tc=(Tnow–Tc1)/F
其中,Tnow是当前节拍值,Tc1是上一次空接点输入信号变位时的节拍值,F
是节拍值自增频率。若tc在1s附近,如[0.999s,1.001s]之间,则认为PPS有
效;若tc在60s附近,如[59.999s,60.001s]之间,则认为PPM有效;否则认为
PPS、PPM无效。
(3)若PPS有效,将系统时钟四舍五入到整秒钟;若PPM有效,将系统时
钟四舍五入到整分钟。
5、检测以太网NTP报文有效性,若有效则根据NTP协议调整系统时钟。
如图2所示,对时信号类型为PPS或PPM时,因信号中不包含日历时间信息,
辅助使用以太网NTP方式校正系统的日历时间(如年、月、日、时、分、秒信息)。
步骤C,系统输出当前选用的对时信号类型,若无任何有效的对时信号,输
出报警信号。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,
凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本
发明保护范围之内。