1.一种星载时钟冗余系统,用于为航天控制系统提供系统时钟,所述航天控制系统包括惯性测量单元和飞行控制计算机,且所述飞行控制计算机的CPU自带有两个定时器,分别为第一定时器和第二定时器;其特征在于:
所述星载时钟冗余系统包括主时钟单元、备用时钟单元、第三方时钟单元和时钟冗余控制单元,其中:主时钟单元利用惯性测量单元的惯导时钟为CPU提供外部定时中断;备用时钟单元采用第一定时器为CPU提供内部定时中断,且设置第一定时器的周期Tbackup=T+ΔTth,T为惯导时钟周期,ΔTth为设定的时钟误差门限;第三方时钟单元利用第二定时器进行计时,且第二定时器的周期Tthird满足条件:Tthird>T+ΔTth;时钟冗余控制单元包括主时钟误触发检测模块、主时钟失效检测模块和时钟切换模块;
在CPU产生外部定时中断时,启用主时钟误触发检测模块;所述主时钟误触发检测模块利用备用时钟单元和第三方时钟单元对外部定时中断发生时刻进行计时,并对外部定时中断发生次数进行计数,然后检测惯导时钟是否发生故障而误触发了外部定时中断,并将检测结果发送给时钟切换模块;时钟切换模块接收主时钟误触发检测模块发送的检测结果,并根据所述检测结果选择主时钟单元或备用时钟单元输出系统时钟;
在CPU产生内部定时中断时,启用主时钟失效检测模块;所述主时钟失效检测模块利用第三方时钟单元对内部定时中断发生时刻进行计时,并获取外部定时中断发生次数,然后检测第二定时器是否发生故障而误触发了内部定时中断,并将检测结果发送给时钟切换模块;时钟切换模块接收主时钟失效检测模块发送的检测结果,并根据所述检测结果选择主时钟单元或备用时钟单元输出系统时钟。
2.根据权利要求1所述的一种星载时钟冗余系统,其特征在于:在CPU产生外部定时中断时,启用主时钟误触发检测模块,检测惯导时钟是否发生故障而误触发了外部定时中断,并发送检测结果给时钟切换模块,然后由时钟切换模选择主时钟单元或备用时钟单元输出系统时钟,具体实现过程如下:
(aa)、在外部定时中断产生时,记录外部定时中断次数n,以及第一定时器的时间tbackup(n)和第二定时器的时间tthird(n);如果第一次产生外部定时中断,即n=1,则时钟切换模块选择主时钟单元输出惯导时钟作为航天控制系统的系统时钟,然后进入步骤(ad);如果n>1,则进入步骤(ab);
(ab)、根据步骤(aa)记录的第一定时器的时间,计算当前外部定时中断和前一次外部定时中断之间的时间间隔ΔTbackup,并进行如下判断:
如果ΔTbackup≥T-ΔTth,则判断惯导时钟正常,时钟切换模块选择主时钟单元输出惯导时钟作为航天控制系统的系统时钟,然后进入步骤(ad);如果ΔTbackup<T-ΔTth,则进入步骤(ac);
(ac)、根据步骤(aa)记录的第二定时器的时间,计算当前外部定时中断和前一次外部定时中断之间的时间间隔ΔTthird_ex,并进行如下判断:
如果ΔTthird_ex≥T-ΔTth,则对第二定时器进行初始化且设置周期Tbackup=T+ΔTth,时钟切换模块选择主时钟单元输出惯导时钟作为航天控制系统的系统时钟,然后进入步骤(ad);
如果ΔTthird_ex<T-ΔTth,则将第二定时器的周期Tbackup设置为T,即Tbackup=T;时钟切换模块选择备用时钟单元为航天控制系统提供系统时钟,然后进入步骤(ad);
(ad)、结束。
3.根据权利要求1所述的一种星载时钟冗余系统,其特征在于:在CPU产生内部定时中断时,启用主时钟失效检测模块,检测第二定时器是否发生故障而误触发了内部定时中断,并将检测结果发送给时钟切换模块,然后由时钟切换模确定选择主时钟单元或备用时钟单元输出系统时钟,具体实现过程如下:
(ba)、在内部定时中断产生时,获取发生外部定时中断的次数n,并记录第二定时器的时间t′third(m),其中,m为产生内部定时中断的次数;如果第一次产生内部定时中断,即m=1,则时钟切换模块选择主时钟单元输出惯导时钟作为航天控制系统的系统时钟,然后进入步骤(bd);如果m>1,则进入步骤(bb);
(bb)、将上一次产生内部定时中断时获取的外部定时中断次数,与当前获取的外部定时中断次数进行比较,并进行如下判断:
如果两次获取的外部定时中断次数不相等,则判断惯导时钟正常,时钟切换模块选择主时钟单元输出惯导时钟作为航天控制系统的系统时钟,然后进入步骤(bd);如果两次获取的外部定时中断次数相等,则进入步骤(bc);
(bc)、根据步骤(ba)记录的第二定时器时间,计算上一次内部定时中断与当前内部定时中断之间的时间间隔ΔTthird_in,并进行如下判断:
如果ΔTthird_in≤T,则对第二定时器进行初始化且设置周期Tbackup=T+ΔTth,然后时钟切换模块选择主时钟单元输出惯导时钟作为航天控制系统的系统时钟,然后进入步骤(bd);
如果ΔTthird_in>T,则设置第二定时器的周期Tbackup=T;时钟切换模块选择备用时钟单元为航天控制系统提供系统时钟,然后进入步骤(bd);
(bd)、结束。
4.一种星载时钟冗余方法,用于为航天控制系统提供系统时钟,所述航天控制系统包括惯性测量单元和飞行控制计算机,且所述飞行控制计算机的CPU自带有两个定时器,分别为第一定时器和第二定时器;其特征在于:所述星载时钟冗余方法包括以下步骤:
(1)、将惯性测量单元的惯导时钟引入到飞行控制计算机,作为CPU的外部定时中断时钟;并采用第一定时器为CPU提供内部定时中断时钟,且设置第一定时器周期Tbackup=T+ΔTth,其中,T为惯导时钟周期,ΔTth为设定的时钟误差门限;另外,设置第二定时器的周期Tthird满足条件:Tthird>T+ΔTth;
(2)、检测是否产生外部定时中断或内部定时中断:如果产生外部定时中断,则进入步骤(3);如果产生内部定时中断,则进入步骤(4);
(3)、进行惯导时钟误触发检测,具体检测过程如下:
(3a)、在外部定时中断产生时,记录第一定时器的时间tbackup(n),以及第二定时器的时间tthird(n),其中,n为产生外部定时中断的次数;如果第一次产生外部定时中断,即n=1,则选择惯导时钟作为航天控制系统的系统时钟输出,并返回步骤(2);如果n>1,则进入步骤(3b);
(3b)、根据步骤(3a)记录的第一定时器的时间,计算当前外部定时中断和前一次外部定时中断之间的时间间隔ΔTbackup,并进行如下判断:
如果ΔTbackup≥T-ΔTth,则选择惯导时钟作为航天控制系统的系统时钟输出,并返回步骤(2);如果ΔTbackup<T-ΔTth,则进入步骤(3c);
(3c)、根据步骤(3a)记录的第二定时器的时间,计算当前外部定时中断和前一次外部定时中断之间的时间间隔ΔTthird_ex,并进行如下判断:
如果ΔTthird_ex≥T-ΔTth,则对第二定时器进行初始化且设置周期Tbackup=T+ΔTth,然后选择惯导时钟作为航天控制系统的系统时钟输出,并返回步骤(2);
如果ΔTthird_ex<T-ΔTth,则将第二定时器的周期Tbackup设置为T,即Tbackup=T;然后选择第二定时器为航天控制系统提供系统时钟,并返回步骤(2);
(4)、进行第一定时器误触发检测,具体检测过程如下:
(4a)、在内部定时中断产生时,获取发生外部定时中断的次数n,并记录第二定时器的时间t′third(m),其中,m为产生内部定时中断的次数;如果第一次产生内部定时中断,即m=1,则选择惯导时钟作为航天控制系统的系统时钟输出,并返回步骤(2);如果m>1,则进入步骤(4b);
(4b)、将上一次产生内部定时中断时获取的外部定时中断次数,与当前获取的外部定时中断次数进行比较,并进行如下判断:
如果两次获取的外部定时中断次数不相等,则选择惯导时钟作为航天控制系统的系统时钟输出,并返回步骤(2);如果两次获取的外部定时中断次数相等,则进入步骤(4c);
(4c)、根据步骤(4a)记录的第二定时器时间,计算上一次内部定时中断与当前内部定时中断之间的时间间隔ΔTthird_in,并进行如下判断:
如果ΔTthird_in≤T,则对第二定时器进行初始化且设置周期Tbackup=T+ΔTth,然后选择惯导时钟作为航天控制系统的系统时钟输出,并返回步骤(2);
如果ΔTthird_in>T,则设置第二定时器的周期Tbackup=T;然后选择第二定时器为航天控制系统提供系统时钟,并返回步骤(2)。
5.根据权利要求1所述的一种星载时钟冗余方法,其特征在于:在步骤(3b)中,根据步骤(3a)记录的第一定时器的时间,计算当前外部定时中断和前一次外部定时中断之间的时间间隔ΔTbackup,具体计算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%为求余计算符号。
6.根据权利要求1所述的一种星载时钟冗余方法,其特征在于:在步骤(3c)中,根据步骤(3a)记录的第二定时器的时间,计算当前外部定时中断和前一次外部定时中断之间的时间间隔ΔTthird_ex,具体计算公式如下:
ΔTthird_ex=[tthird(n)-tthird(n-1)+Tthird]%Tthird;
其中,%为求余计算符号。
7.根据权利要求1所述的一种星载时钟冗余方法,其特征在于:在步骤(4c)中,根据步骤(4a)记录的第二定时器时间,计算上一次内部定时中断与当前内部定时中断之间的时间间隔ΔTthird_in,具体计算公式如下:
ΔTthird_in=[t′third(m)-t′third(m-1)+Tthird]%Tthird;
其中,%为求余计算符号。
8.根据权利要求1所述的一种星载时钟冗余方法,其特征在于:设定时钟误差门限ΔTth=0.1T。