1.一種星載時(shí)鐘冗余系統(tǒng),用于為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,所述航天控制系統(tǒng)包括慣性測量單元和飛行控制計(jì)算機(jī),且所述飛行控制計(jì)算機(jī)的CPU自帶有兩個(gè)定時(shí)器,分別為第一定時(shí)器和第二定時(shí)器;其特征在于:
所述星載時(shí)鐘冗余系統(tǒng)包括主時(shí)鐘單元、備用時(shí)鐘單元、第三方時(shí)鐘單元和時(shí)鐘冗余控制單元,其中:主時(shí)鐘單元利用慣性測量單元的慣導(dǎo)時(shí)鐘為CPU提供外部定時(shí)中斷;備用時(shí)鐘單元采用第一定時(shí)器為CPU提供內(nèi)部定時(shí)中斷,且設(shè)置第一定時(shí)器的周期Tbackup=T+ΔTth,T為慣導(dǎo)時(shí)鐘周期,ΔTth為設(shè)定的時(shí)鐘誤差門限;第三方時(shí)鐘單元利用第二定時(shí)器進(jìn)行計(jì)時(shí),且第二定時(shí)器的周期Tthird滿足條件:Tthird>T+ΔTth;時(shí)鐘冗余控制單元包括主時(shí)鐘誤觸發(fā)檢測模塊、主時(shí)鐘失效檢測模塊和時(shí)鐘切換模塊;
在CPU產(chǎn)生外部定時(shí)中斷時(shí),啟用主時(shí)鐘誤觸發(fā)檢測模塊;所述主時(shí)鐘誤觸發(fā)檢測模塊利用備用時(shí)鐘單元和第三方時(shí)鐘單元對外部定時(shí)中斷發(fā)生時(shí)刻進(jìn)行計(jì)時(shí),并對外部定時(shí)中斷發(fā)生次數(shù)進(jìn)行計(jì)數(shù),然后檢測慣導(dǎo)時(shí)鐘是否發(fā)生故障而誤觸發(fā)了外部定時(shí)中斷,并將檢測結(jié)果發(fā)送給時(shí)鐘切換模塊;時(shí)鐘切換模塊接收主時(shí)鐘誤觸發(fā)檢測模塊發(fā)送的檢測結(jié)果,并根據(jù)所述檢測結(jié)果選擇主時(shí)鐘單元或備用時(shí)鐘單元輸出系統(tǒng)時(shí)鐘;
在CPU產(chǎn)生內(nèi)部定時(shí)中斷時(shí),啟用主時(shí)鐘失效檢測模塊;所述主時(shí)鐘失效檢測模塊利用第三方時(shí)鐘單元對內(nèi)部定時(shí)中斷發(fā)生時(shí)刻進(jìn)行計(jì)時(shí),并獲取外部定時(shí)中斷發(fā)生次數(shù),然后檢測第二定時(shí)器是否發(fā)生故障而誤觸發(fā)了內(nèi)部定時(shí)中斷,并將檢測結(jié)果發(fā)送給時(shí)鐘切換模塊;時(shí)鐘切換模塊接收主時(shí)鐘失效檢測模塊發(fā)送的檢測結(jié)果,并根據(jù)所述檢測結(jié)果選擇主時(shí)鐘單元或備用時(shí)鐘單元輸出系統(tǒng)時(shí)鐘。
2.根據(jù)權(quán)利要求1所述的一種星載時(shí)鐘冗余系統(tǒng),其特征在于:在CPU產(chǎn)生外部定時(shí)中斷時(shí),啟用主時(shí)鐘誤觸發(fā)檢測模塊,檢測慣導(dǎo)時(shí)鐘是否發(fā)生故障而誤觸發(fā)了外部定時(shí)中斷,并發(fā)送檢測結(jié)果給時(shí)鐘切換模塊,然后由時(shí)鐘切換模選擇主時(shí)鐘單元或備用時(shí)鐘單元輸出系統(tǒng)時(shí)鐘,具體實(shí)現(xiàn)過程如下:
(aa)、在外部定時(shí)中斷產(chǎn)生時(shí),記錄外部定時(shí)中斷次數(shù)n,以及第一定時(shí)器的時(shí)間tbackup(n)和第二定時(shí)器的時(shí)間tthird(n);如果第一次產(chǎn)生外部定時(shí)中斷,即n=1,則時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(ad);如果n>1,則進(jìn)入步驟(ab);
(ab)、根據(jù)步驟(aa)記錄的第一定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTbackup,并進(jìn)行如下判斷:
如果ΔTbackup≥T-ΔTth,則判斷慣導(dǎo)時(shí)鐘正常,時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(ad);如果ΔTbackup<T-ΔTth,則進(jìn)入步驟(ac);
(ac)、根據(jù)步驟(aa)記錄的第二定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTthird_ex,并進(jìn)行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則對第二定時(shí)器進(jìn)行初始化且設(shè)置周期Tbackup=T+ΔTth,時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(ad);
如果ΔTthird_ex<T-ΔTth,則將第二定時(shí)器的周期Tbackup設(shè)置為T,即Tbackup=T;時(shí)鐘切換模塊選擇備用時(shí)鐘單元為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(ad);
(ad)、結(jié)束。
3.根據(jù)權(quán)利要求1所述的一種星載時(shí)鐘冗余系統(tǒng),其特征在于:在CPU產(chǎn)生內(nèi)部定時(shí)中斷時(shí),啟用主時(shí)鐘失效檢測模塊,檢測第二定時(shí)器是否發(fā)生故障而誤觸發(fā)了內(nèi)部定時(shí)中斷,并將檢測結(jié)果發(fā)送給時(shí)鐘切換模塊,然后由時(shí)鐘切換模確定選擇主時(shí)鐘單元或備用時(shí)鐘單元輸出系統(tǒng)時(shí)鐘,具體實(shí)現(xiàn)過程如下:
(ba)、在內(nèi)部定時(shí)中斷產(chǎn)生時(shí),獲取發(fā)生外部定時(shí)中斷的次數(shù)n,并記錄第二定時(shí)器的時(shí)間t′third(m),其中,m為產(chǎn)生內(nèi)部定時(shí)中斷的次數(shù);如果第一次產(chǎn)生內(nèi)部定時(shí)中斷,即m=1,則時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);如果m>1,則進(jìn)入步驟(bb);
(bb)、將上一次產(chǎn)生內(nèi)部定時(shí)中斷時(shí)獲取的外部定時(shí)中斷次數(shù),與當(dāng)前獲取的外部定時(shí)中斷次數(shù)進(jìn)行比較,并進(jìn)行如下判斷:
如果兩次獲取的外部定時(shí)中斷次數(shù)不相等,則判斷慣導(dǎo)時(shí)鐘正常,時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);如果兩次獲取的外部定時(shí)中斷次數(shù)相等,則進(jìn)入步驟(bc);
(bc)、根據(jù)步驟(ba)記錄的第二定時(shí)器時(shí)間,計(jì)算上一次內(nèi)部定時(shí)中斷與當(dāng)前內(nèi)部定時(shí)中斷之間的時(shí)間間隔ΔTthird_in,并進(jìn)行如下判斷:
如果ΔTthird_in≤T,則對第二定時(shí)器進(jìn)行初始化且設(shè)置周期Tbackup=T+ΔTth,然后時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);
如果ΔTthird_in>T,則設(shè)置第二定時(shí)器的周期Tbackup=T;時(shí)鐘切換模塊選擇備用時(shí)鐘單元為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);
(bd)、結(jié)束。
4.一種星載時(shí)鐘冗余方法,用于為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,所述航天控制系統(tǒng)包括慣性測量單元和飛行控制計(jì)算機(jī),且所述飛行控制計(jì)算機(jī)的CPU自帶有兩個(gè)定時(shí)器,分別為第一定時(shí)器和第二定時(shí)器;其特征在于:所述星載時(shí)鐘冗余方法包括以下步驟:
(1)、將慣性測量單元的慣導(dǎo)時(shí)鐘引入到飛行控制計(jì)算機(jī),作為CPU的外部定時(shí)中斷時(shí)鐘;并采用第一定時(shí)器為CPU提供內(nèi)部定時(shí)中斷時(shí)鐘,且設(shè)置第一定時(shí)器周期Tbackup=T+ΔTth,其中,T為慣導(dǎo)時(shí)鐘周期,ΔTth為設(shè)定的時(shí)鐘誤差門限;另外,設(shè)置第二定時(shí)器的周期Tthird滿足條件:Tthird>T+ΔTth;
(2)、檢測是否產(chǎn)生外部定時(shí)中斷或內(nèi)部定時(shí)中斷:如果產(chǎn)生外部定時(shí)中斷,則進(jìn)入步驟(3);如果產(chǎn)生內(nèi)部定時(shí)中斷,則進(jìn)入步驟(4);
(3)、進(jìn)行慣導(dǎo)時(shí)鐘誤觸發(fā)檢測,具體檢測過程如下:
(3a)、在外部定時(shí)中斷產(chǎn)生時(shí),記錄第一定時(shí)器的時(shí)間tbackup(n),以及第二定時(shí)器的時(shí)間tthird(n),其中,n為產(chǎn)生外部定時(shí)中斷的次數(shù);如果第一次產(chǎn)生外部定時(shí)中斷,即n=1,則選擇慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘輸出,并返回步驟(2);如果n>1,則進(jìn)入步驟(3b);
(3b)、根據(jù)步驟(3a)記錄的第一定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTbackup,并進(jìn)行如下判斷:
如果ΔTbackup≥T-ΔTth,則選擇慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘輸出,并返回步驟(2);如果ΔTbackup<T-ΔTth,則進(jìn)入步驟(3c);
(3c)、根據(jù)步驟(3a)記錄的第二定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTthird_ex,并進(jìn)行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則對第二定時(shí)器進(jìn)行初始化且設(shè)置周期Tbackup=T+ΔTth,然后選擇慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘輸出,并返回步驟(2);
如果ΔTthird_ex<T-ΔTth,則將第二定時(shí)器的周期Tbackup設(shè)置為T,即Tbackup=T;然后選擇第二定時(shí)器為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,并返回步驟(2);
(4)、進(jìn)行第一定時(shí)器誤觸發(fā)檢測,具體檢測過程如下:
(4a)、在內(nèi)部定時(shí)中斷產(chǎn)生時(shí),獲取發(fā)生外部定時(shí)中斷的次數(shù)n,并記錄第二定時(shí)器的時(shí)間t′third(m),其中,m為產(chǎn)生內(nèi)部定時(shí)中斷的次數(shù);如果第一次產(chǎn)生內(nèi)部定時(shí)中斷,即m=1,則選擇慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘輸出,并返回步驟(2);如果m>1,則進(jìn)入步驟(4b);
(4b)、將上一次產(chǎn)生內(nèi)部定時(shí)中斷時(shí)獲取的外部定時(shí)中斷次數(shù),與當(dāng)前獲取的外部定時(shí)中斷次數(shù)進(jìn)行比較,并進(jìn)行如下判斷:
如果兩次獲取的外部定時(shí)中斷次數(shù)不相等,則選擇慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘輸出,并返回步驟(2);如果兩次獲取的外部定時(shí)中斷次數(shù)相等,則進(jìn)入步驟(4c);
(4c)、根據(jù)步驟(4a)記錄的第二定時(shí)器時(shí)間,計(jì)算上一次內(nèi)部定時(shí)中斷與當(dāng)前內(nèi)部定時(shí)中斷之間的時(shí)間間隔ΔTthird_in,并進(jìn)行如下判斷:
如果ΔTthird_in≤T,則對第二定時(shí)器進(jìn)行初始化且設(shè)置周期Tbackup=T+ΔTth,然后選擇慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘輸出,并返回步驟(2);
如果ΔTthird_in>T,則設(shè)置第二定時(shí)器的周期Tbackup=T;然后選擇第二定時(shí)器為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,并返回步驟(2)。
5.根據(jù)權(quán)利要求1所述的一種星載時(shí)鐘冗余方法,其特征在于:在步驟(3b)中,根據(jù)步驟(3a)記錄的第一定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTbackup,具體計(jì)算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求余計(jì)算符號。
6.根據(jù)權(quán)利要求1所述的一種星載時(shí)鐘冗余方法,其特征在于:在步驟(3c)中,根據(jù)步驟(3a)記錄的第二定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTthird_ex,具體計(jì)算公式如下:
ΔTthird_ex=[tthird(n)-tthird(n-1)+Tthird]%Tthird;
其中,%為求余計(jì)算符號。
7.根據(jù)權(quán)利要求1所述的一種星載時(shí)鐘冗余方法,其特征在于:在步驟(4c)中,根據(jù)步驟(4a)記錄的第二定時(shí)器時(shí)間,計(jì)算上一次內(nèi)部定時(shí)中斷與當(dāng)前內(nèi)部定時(shí)中斷之間的時(shí)間間隔ΔTthird_in,具體計(jì)算公式如下:
ΔTthird_in=[t′third(m)-t′third(m-1)+Tthird]%Tthird;
其中,%為求余計(jì)算符號。
8.根據(jù)權(quán)利要求1所述的一種星載時(shí)鐘冗余方法,其特征在于:設(shè)定時(shí)鐘誤差門限ΔTth=0.1T。