本發(fā)明涉及航天器控制技術(shù),特別涉及一種星載時(shí)鐘冗余系統(tǒng),以及實(shí)現(xiàn)星載時(shí)鐘冗余的方法。
背景技術(shù):
航天器的控制系統(tǒng)負(fù)責(zé)導(dǎo)航制導(dǎo)姿態(tài)控制計(jì)算和任務(wù)規(guī)劃管理等關(guān)鍵功能,這些功能的實(shí)現(xiàn)對(duì)實(shí)時(shí)性要求極高,計(jì)算周期達(dá)到毫秒的量級(jí),因此飛行軟件必須要由高精度的時(shí)鐘來驅(qū)動(dòng)運(yùn)行。
由于航天器的運(yùn)行環(huán)境特別惡劣,強(qiáng)輻射、極端溫度使部件容易老化失效,單粒子翻轉(zhuǎn)更可能會(huì)使?fàn)顟B(tài)瞬間發(fā)生不可預(yù)期的變化,一旦時(shí)鐘發(fā)生故障,輕則導(dǎo)致控制系統(tǒng)時(shí)序發(fā)生漂移或紊亂,重則使得飛行軟件跑飛或停止運(yùn)行,后果嚴(yán)重。為了避免上述后果,一般通過多余度控制系統(tǒng)來解決。但是,對(duì)于微小衛(wèi)星這類航天器,由于受空間、經(jīng)費(fèi)等因素影響,不適于采用多余度控制系統(tǒng)來避免時(shí)鐘故障造成的問題。因此,需要針對(duì)無冗余控制系統(tǒng)的航天器,研究其時(shí)鐘失效問題。
在航天控制系統(tǒng)中,飛行控制計(jì)算機(jī)和慣性測量單元(IMU)是基本配置。其中,慣性測量單元用于測量航天器在慣性空間的加速度、角加速度信息,并發(fā)送給飛行控制計(jì)算機(jī)進(jìn)行導(dǎo)航計(jì)算;為了確保慣性導(dǎo)航精度,一般慣性測量單元的時(shí)鐘精度都會(huì)比較高。飛行控制計(jì)算機(jī)內(nèi)標(biāo)配有兩個(gè)定時(shí)器Timer0和Timer1,可作為計(jì)時(shí)用。由于慣性測量單元和飛行控制計(jì)算機(jī)的時(shí)鐘不同源,且晶振精度不一致,存在相對(duì)漂移的現(xiàn)象,如果設(shè)計(jì)硬件表決電路來實(shí)現(xiàn)慣性測量單元時(shí)鐘、Timer0和Timer1的“三取二”冗余,難度大,效果不好,因此現(xiàn)有單余度控制系統(tǒng)中,均無時(shí)鐘冗余,實(shí)現(xiàn)方案概括起來有兩種:
1、飛行控制計(jì)算機(jī)采用慣性測量單元時(shí)鐘作為整個(gè)控制系統(tǒng)時(shí)鐘;
2、飛行控制計(jì)算機(jī)采用內(nèi)部時(shí)鐘(Timer0或Timer1)作為控制系統(tǒng)時(shí)鐘。
方案1能保證控制系統(tǒng)各單機(jī)同步運(yùn)行,時(shí)統(tǒng)性更好,但一旦慣性測量單元時(shí)鐘發(fā)生故障,將使得整個(gè)控制系統(tǒng)癱瘓,“一損俱損”;方案2實(shí)現(xiàn)簡單,但會(huì)使得飛行控制計(jì)算機(jī)與慣性測量單元產(chǎn)生時(shí)鐘差,影響控制精度;另外,上述兩個(gè)方案都有一個(gè)共同的缺點(diǎn):飛行控制計(jì)算機(jī)所使用的時(shí)鐘一旦出現(xiàn)故障,飛行控制系統(tǒng)將崩潰,影響航天器任務(wù)的順利完成。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明需要解決的技術(shù)問題是:針對(duì)單余度控制系統(tǒng)的特點(diǎn),提供了一種星載時(shí)鐘冗余及其實(shí)現(xiàn)方法,充分利用航天器現(xiàn)有的資源,實(shí)現(xiàn)了飛行控制計(jì)算機(jī)的時(shí)鐘冗余功能,提高了控制系統(tǒng)的可靠性和安全性,而且具有實(shí)現(xiàn)成本低、易于工程實(shí)現(xiàn)的特點(diǎn)。
本發(fā)明的上述目的通過以下方案實(shí)現(xiàn):
一種星載時(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í)鐘單元對(duì)外部定時(shí)中斷發(fā)生時(shí)刻進(jìn)行計(jì)時(shí),并對(duì)外部定時(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í)鐘單元對(duì)內(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í)鐘。
上述的星載時(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,則對(duì)第二定時(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é)束。
上述的星載時(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í)間tt′hird(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,則對(duì)第二定時(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é)束。
一種星載時(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,則對(duì)第二定時(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í)間tt′hird(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,則對(duì)第二定時(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)。
上述的星載時(shí)鐘冗余方法,在步驟(3b)中,根據(jù)步驟(3a)記錄的第一定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTbackup,具體計(jì)算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求余計(jì)算符號(hào)。
上述的星載時(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ì)算符號(hào)。
上述的星載時(shí)鐘冗余方法,在步驟(4c)中,根據(jù)步驟(4a)記錄的第二定時(shí)器時(shí)間,計(jì)算上一次內(nèi)部定時(shí)中斷與當(dāng)前內(nèi)部定時(shí)中斷之間的時(shí)間間隔ΔTthird_in,具體計(jì)算公式如下:
ΔTthird_in=[tt′hird(m)-tt′hird(m-1)+Tthird]%Tthird;
其中,%為求余計(jì)算符號(hào)。
上述的星載時(shí)鐘冗余方法,設(shè)定時(shí)鐘誤差門限ΔTth=0.1T。
本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
(1)、本發(fā)明在單余度控制系統(tǒng)中,利用慣性單元高精度時(shí)鐘以及飛行控制計(jì)算機(jī)內(nèi)配置的兩個(gè)時(shí)鐘,實(shí)現(xiàn)了控制系統(tǒng)的時(shí)鐘冗余功能,即充分利用了慣性單元的高精度時(shí)鐘,又避免了該時(shí)鐘故障對(duì)控制系統(tǒng)運(yùn)行的影響,有助于提高控制系統(tǒng)的可靠性和安全性,而且具有實(shí)現(xiàn)成本低、易于工程實(shí)現(xiàn)的特點(diǎn);
(2)、本發(fā)明把非同源的外部高精度時(shí)鐘和兩個(gè)內(nèi)部時(shí)鐘分別作為主時(shí)鐘、備份時(shí)鐘和第三方時(shí)鐘,只有當(dāng)主備時(shí)鐘不一致時(shí)才采用第三方時(shí)鐘仲裁,能容忍時(shí)鐘發(fā)生單余度故障,達(dá)到了“三冗余”的目的,實(shí)現(xiàn)簡單且代價(jià)??;
(3)、本發(fā)明把慣性測量單元的高精度時(shí)鐘作為正常情況下冗余輸出時(shí)鐘,給飛行控制軟件使用,相比現(xiàn)有技術(shù),可以統(tǒng)一慣性測量單元與飛行控制計(jì)算機(jī)之間的時(shí)標(biāo),提高控制系統(tǒng)的計(jì)算精度;
(4)、本發(fā)明的時(shí)鐘冗余系統(tǒng)中各時(shí)鐘間的誤差可控,相比現(xiàn)有技術(shù),既能滿足故障判別的要求,又不會(huì)因誤差范圍過于苛刻導(dǎo)致誤判,還使得在非同源時(shí)鐘之間實(shí)現(xiàn)冗余成為可能;
(5)、本發(fā)明在時(shí)鐘故障檢測過程中,只使用到了當(dāng)前拍和上一拍的時(shí)鐘信息,相比現(xiàn)有技術(shù),可以過濾掉不同源時(shí)鐘之間頻標(biāo)緩慢漂移的問題;
(6)、本發(fā)明采用主時(shí)鐘誤觸發(fā)檢測和主時(shí)鐘失效檢測方法,解決了慣性測量單元的時(shí)鐘產(chǎn)生的外部定時(shí)中斷被誤觸發(fā)(提前發(fā)生)的故障,以及慣性測量單元的時(shí)鐘失效(未在規(guī)定的時(shí)間內(nèi)產(chǎn)生)的故障。
附圖說明
圖1為飛行器控制系統(tǒng)基本組成框圖;
圖2為本發(fā)明的星載時(shí)鐘冗余系統(tǒng)的組成框圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述:
如圖1所示,航天控制系統(tǒng)一般均會(huì)配置慣性測量單元(IMU)和飛行控制計(jì)算機(jī)。其中,慣性測量單元具有較高精度的慣導(dǎo)時(shí)鐘,而飛行控制計(jì)算機(jī)內(nèi)含嵌入式CPU,并標(biāo)配有兩個(gè)定時(shí)器Timer0和Timer1。
本發(fā)明提供的星載時(shí)鐘冗余系統(tǒng)可以為上述的航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘。如圖2所示的系統(tǒng)框圖,本發(fā)明的星載時(shí)鐘冗余系統(tǒng)主時(shí)鐘單元、備用時(shí)鐘單元、第三方時(shí)鐘單元和時(shí)鐘冗余控制單元。其中,時(shí)鐘冗余控制單元包括主時(shí)鐘誤觸發(fā)檢測模塊、主時(shí)鐘失效檢測模塊和時(shí)鐘切換模塊。
在主時(shí)鐘模塊中,將慣性測量單元的高精度慣導(dǎo)時(shí)鐘引入飛行控制計(jì)算機(jī),并將其設(shè)為飛行控制計(jì)算機(jī)CPU的外部定時(shí)中斷。
備用時(shí)鐘單元在飛行控制計(jì)算機(jī)的兩個(gè)定時(shí)器Timer0和Timer1中選擇一個(gè)作為第一定時(shí)器,并采用該定時(shí)器為CPU提供內(nèi)部定時(shí)中斷。為了便于對(duì)主時(shí)鐘單元和備用時(shí)鐘單元的時(shí)鐘進(jìn)行比較,本發(fā)明設(shè)置第一定時(shí)器的周期Tbackup=T+ΔTth,其中,T為慣導(dǎo)時(shí)鐘周期,ΔTth為設(shè)定的時(shí)鐘誤差門限。為了滿足時(shí)鐘故障判別的要求,又不會(huì)因誤差范圍過于苛刻導(dǎo)致誤判,可以將該時(shí)鐘誤差門限ΔTth設(shè)為慣導(dǎo)時(shí)鐘周期的10%,例如:在慣導(dǎo)周期T=10ms,設(shè)定時(shí)鐘誤差門限ΔTth=1ms,可以確保主時(shí)鐘單元和備用時(shí)鐘單元之間的時(shí)標(biāo)誤差在±1ms之間。
第三方時(shí)鐘單元采用另一個(gè)飛行控制計(jì)算機(jī)定時(shí)器作為第二定時(shí)器,在故障判斷中進(jìn)行計(jì)時(shí)。為了確保在計(jì)時(shí)過程中主時(shí)鐘單元和備用時(shí)鐘單元的時(shí)鐘不發(fā)生翻轉(zhuǎn),應(yīng)該設(shè)置第二定時(shí)器的周期Tthird盡量大,必須滿足條件:Tthird>T+ΔTth;在本實(shí)施例中,設(shè)定Tthird為1s。
時(shí)鐘冗余控制單元用于對(duì)主時(shí)鐘單元和備用時(shí)鐘進(jìn)行誤差判斷,主要包括主時(shí)鐘誤觸發(fā)檢測模塊、主時(shí)鐘失效檢測模塊和時(shí)鐘切換模塊。
在CPU產(chǎn)生外部定時(shí)中斷時(shí),時(shí)鐘誤差判斷和時(shí)鐘切換的流程如下:
(aa)、在外部定時(shí)中斷產(chǎn)生時(shí),啟用主時(shí)鐘誤觸發(fā)檢測模塊,記錄外部定時(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,則表示主時(shí)鐘單元和備用時(shí)鐘單元之間的時(shí)鐘誤差超出了允許誤差范圍(ΔTth),此時(shí)需根據(jù)第三方時(shí)鐘單元作進(jìn)一步判斷,即則進(jìn)入步驟(ac);其中,時(shí)間間隔ΔTbackup的具體計(jì)算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求余計(jì)算符號(hào)。
(ac)、根據(jù)步驟(aa)記錄的第二定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTthird_ex,并進(jìn)行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則判斷備用時(shí)鐘單元出現(xiàn)故障,需要對(duì)第二定時(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í)鐘單元出現(xiàn)故障,應(yīng)該將第二定時(shí)器的周期Tbackup設(shè)置為T,即Tbackup=T;時(shí)鐘切換模塊選擇備用時(shí)鐘單元為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(ad);其中,時(shí)間間隔ΔTthird_ex的具體計(jì)算公式如下:ΔTthird_ex=[tthird(n)-tthird(n-1)+Tthird]%Tthird;
(ad)、結(jié)束。
在CPU產(chǎn)生內(nèi)部定時(shí)中斷時(shí),時(shí)鐘誤差判斷和時(shí)鐘切換的流程如下:
(ba)、在內(nèi)部定時(shí)中斷產(chǎn)生時(shí),啟用主時(shí)鐘失效檢測模塊,獲取發(fā)生外部定時(shí)中斷的次數(shù)n,并記錄第二定時(shí)器的時(shí)間tt′hird(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ù)不相等,則表示在兩次內(nèi)部定時(shí)中斷之間正常產(chǎn)生了外部定時(shí)中斷,因此判斷主時(shí)鐘單元工作正常,即慣導(dǎo)時(shí)鐘正常,因此時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);
如果兩次獲取的外部定時(shí)中斷次數(shù)相等,則表示主時(shí)鐘單元和備用時(shí)鐘單元的時(shí)鐘誤差超出了允許誤差范圍(ΔTth),此時(shí)需根據(jù)第三方時(shí)鐘單元作進(jìn)一步判斷,因此進(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í)鐘單元誤觸發(fā)而提前產(chǎn)生中斷,因此對(duì)第二定時(shí)器進(jìn)行初始化且設(shè)置周期Tbackup=T+ΔTth,然后時(shí)鐘切換模塊選擇主時(shí)鐘單元輸出慣導(dǎo)時(shí)鐘作為航天控制系統(tǒng)的系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);
如果ΔTthird_in>T,則表示外部定時(shí)中斷未在規(guī)定的時(shí)間內(nèi)產(chǎn)生,判斷是主時(shí)鐘單元失效,設(shè)置第二定時(shí)器的周期Tbackup=T;時(shí)鐘切換模塊選擇備用時(shí)鐘單元為航天控制系統(tǒng)提供系統(tǒng)時(shí)鐘,然后進(jìn)入步驟(bd);其中,時(shí)間間隔ΔTthird_in的計(jì)算公式如下:ΔTthird_in=[tt′hird(m)-tt′hird(m-1)+Tthird]%Tthird;
(bd)、結(jié)束。
根據(jù)上述的星載時(shí)鐘冗余系統(tǒng)的處理流程,本發(fā)明提供了一種星載時(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)。
其中,時(shí)間間隔ΔTbackup的具體計(jì)算公式如下:
ΔTbackup=[tbackup(n)-tbackup(n-1)+Tbackup]%Tbackup;
其中,%為求余計(jì)算符號(hào)。
(3c)、根據(jù)步驟(3a)記錄的第二定時(shí)器的時(shí)間,計(jì)算當(dāng)前外部定時(shí)中斷和前一次外部定時(shí)中斷之間的時(shí)間間隔ΔTthird_ex,并進(jìn)行如下判斷:
如果ΔTthird_ex≥T-ΔTth,則對(duì)第二定時(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).
其中,時(shí)間間隔ΔTthird_ex的具體計(jì)算公式如下:
ΔTthird_ex=[tthird(n)-tthird(n-1)+Tthird]%Tthird;
(4)、進(jìn)行第一定時(shí)器誤觸發(fā)檢測,具體檢測過程如下:
(4a)、在內(nèi)部定時(shí)中斷產(chǎn)生時(shí),獲取發(fā)生外部定時(shí)中斷的次數(shù)n,并記錄第二定時(shí)器的時(shí)間tt′hird(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,則對(duì)第二定時(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)。
其中,時(shí)間間隔ΔTthird_in的計(jì)算公式如下:
ΔTthird_in=[tt′hird(m)-tt′hird(m-1)+Tthird]%Tthird;
以上所述,僅為本發(fā)明一個(gè)具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員的公知技術(shù)。