本發(fā)明屬于航天電子技術(shù)領(lǐng)域,涉及一種多速率遙測時(shí)間同步方法。
背景技術(shù):根據(jù)衛(wèi)星集成化、小型化的發(fā)展需求,我國衛(wèi)星平臺(tái)電子系統(tǒng)正經(jīng)歷著從傳統(tǒng)數(shù)管分系統(tǒng)向綜合電子分系統(tǒng)演進(jìn)的過渡期。以綜合電子分系統(tǒng)為標(biāo)志的衛(wèi)星平臺(tái)電子系統(tǒng)功能綜合了原來數(shù)管分系統(tǒng)及其它多個(gè)分系統(tǒng)的多種功能。除了完成傳統(tǒng)的遙測遙控功能外,還需要完成星上自主管理、任務(wù)規(guī)劃、任務(wù)級(jí)數(shù)據(jù)計(jì)算等諸多功能,單機(jī)面臨任務(wù)多、模式多的難題,設(shè)計(jì)復(fù)雜度急劇增加。目前,衛(wèi)星平臺(tái)CPU工作頻率普遍低于60MHZ。由于衛(wèi)星電子系統(tǒng)功能的增加、指標(biāo)的提高,單機(jī)軟硬件界面接口處中斷的種類、數(shù)量、頻率增大。傳統(tǒng)的CPU硬件外設(shè)設(shè)計(jì)時(shí),各功能外設(shè)獨(dú)立工作,中斷提出頻率各不相同,每個(gè)模塊還會(huì)面臨隨時(shí)切換速率模式,隨時(shí)發(fā)生軟件復(fù)位等操作,長期使用過程中,不同中斷之間的相位關(guān)系極不固定,給軟件設(shè)計(jì)及CPU負(fù)荷預(yù)計(jì)帶來困難和不確定性。在單機(jī)軟硬件聯(lián)合調(diào)試過程中出現(xiàn)丟中斷,處理延遲等故障。經(jīng)分析排查,大部分由于硬件中斷過多、過頻繁,過集中,軟件處理能力不足導(dǎo)致的。為有效解決此問題,需要在設(shè)計(jì)硬件外設(shè)時(shí),使不同功能模塊中斷頻率盡量低、中斷相位關(guān)系固定。有利于軟件設(shè)計(jì)預(yù)估各項(xiàng)任務(wù)的處理時(shí)間,最優(yōu)地安排中斷優(yōu)先級(jí),軟件在任務(wù)調(diào)度時(shí)可以有一個(gè)確定的時(shí)間表,便于設(shè)計(jì)調(diào)度策略,且不同任務(wù)之間的時(shí)間關(guān)系能夠確定。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明解決的問題是:克服現(xiàn)有技術(shù)的不足,提供了一種多速率遙測時(shí)間同步方法,解決了多外設(shè)中斷源同步的問題,即CPU在任何可能的時(shí)刻進(jìn)行外設(shè)的局部軟件復(fù)位、速率切換情況下,仍然能夠保持多外設(shè)的中斷源同步及時(shí)間的同步,相對相位關(guān)系不變。本發(fā)明的技術(shù)解決方案是:一種多速率遙測時(shí)間同步方法,所述方法實(shí)現(xiàn)三種外設(shè)的時(shí)間同步,三種設(shè)備包括:A設(shè)備:僅受系統(tǒng)上電復(fù)位控制的外設(shè);B設(shè)備:受系統(tǒng)上電復(fù)位和CPU軟件復(fù)位控制的外設(shè);C設(shè)備:受系統(tǒng)上電復(fù)位、CPU軟件復(fù)位控制和需要調(diào)整速率的外設(shè);步驟如下:(1)規(guī)整所述三種外設(shè)的中斷間隔;(2)令所述三種設(shè)備在上電的時(shí)刻中斷同步;(3)當(dāng)B設(shè)備和C設(shè)備發(fā)生CPU軟件復(fù)位時(shí),控制B設(shè)備和C設(shè)備的CPU軟件復(fù)位的釋放時(shí)刻,使其中斷再次同步;(4)當(dāng)C設(shè)備發(fā)生速率切換時(shí),通過三級(jí)速率同步使得C設(shè)備在速率切換時(shí)保持中斷同步。所述步驟(1)規(guī)整所述三種外設(shè)的中斷間隔具體為:選定中斷頻率最低的外設(shè)的中斷頻率為基準(zhǔn),通過調(diào)整其它外設(shè)的中斷頻率,劃分每個(gè)中斷對應(yīng)的數(shù)據(jù)長度,使每個(gè)外設(shè)在各種遙測速率和工作模式下的中斷頻率為基準(zhǔn)頻率的2的冪次倍,同時(shí)遙測速率的可調(diào)整值是該外設(shè)最低遙測速率的2的冪次倍。所述步驟(2)令所述三種設(shè)備在上電的時(shí)刻中斷同步具體為:選取一個(gè)A設(shè)備的工作時(shí)間為基準(zhǔn)時(shí)間,其他每個(gè)外設(shè)設(shè)置特殊復(fù)位值,該特殊復(fù)位值使得各外設(shè)的工作時(shí)間在基準(zhǔn)時(shí)間軸上平移,確保上電后各外設(shè)的第一個(gè)中斷提出時(shí)刻一致。所述步驟(3)中控制B設(shè)備和C設(shè)備的CPU軟件復(fù)位的釋放時(shí)刻,使其中斷再次同步具體為:令工作時(shí)間被設(shè)定為基準(zhǔn)時(shí)間的A設(shè)備產(chǎn)生一個(gè)控制信號(hào),該控制信號(hào)產(chǎn)生時(shí)刻為所述A設(shè)備重新回到其復(fù)位狀態(tài)前一個(gè)時(shí)鐘周期的時(shí)刻,以保證對于B設(shè)備和C設(shè)備,CPU的軟見復(fù)位釋放時(shí)刻與上電復(fù)位釋放時(shí)刻一致。所述步驟(4)中通過三級(jí)速率同步使得C設(shè)備在速率切換時(shí)保持中斷同步具體為:第一級(jí)速率保持寄存器僅受上電復(fù)位及速率切換指令控制,上電復(fù)位時(shí),將寄存器值恢復(fù)為初始默速率值,當(dāng)速率切換指令到達(dá)時(shí),改變其中保存的速率值;第二級(jí)速率保持寄存器受上電復(fù)位和CPU軟件復(fù)位控制,當(dāng)CPU軟件復(fù)位有效時(shí),將寄存器值恢復(fù)為初始默速率值,同時(shí)接收一個(gè)令工作時(shí)間被設(shè)定為基準(zhǔn)時(shí)間的A設(shè)備產(chǎn)生的速率同步信號(hào),該信號(hào)比所述A設(shè)備下一個(gè)中斷時(shí)刻提前時(shí)間T,且時(shí)間T小于C設(shè)備最小中斷間隔周期,同時(shí),時(shí)間T大于第三級(jí)速率保持寄存器從第二級(jí)速率保持寄存器中更新速率設(shè)置值的時(shí)刻,當(dāng)所述速率同步信號(hào)有效時(shí),將第一級(jí)速率保持寄存器保存的速率值更新到第二級(jí)速率保持寄存器中;第三級(jí)速率保持寄存器用于直接控制C設(shè)備內(nèi)的分頻器,從而設(shè)置C設(shè)備的速率,第三級(jí)速率保持寄存器受上電復(fù)位和CPU軟件復(fù)位控制,當(dāng)CPU軟件復(fù)位有效時(shí),將寄存器值恢復(fù)為初始默速率值,同時(shí)接收一個(gè)C設(shè)備產(chǎn)生的控制信號(hào),該控制信號(hào)為速率導(dǎo)入信號(hào)。所述速率導(dǎo)入信號(hào)在C設(shè)備中每次中斷提出后馬上提出,保證C設(shè)備中下次中斷提出時(shí)刻到當(dāng)前中斷提出時(shí)刻的時(shí)間間隔為切換后速率所對應(yīng)的周期。本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是:本發(fā)明解決了多外設(shè)種類、多遙測速率工作模式下的多中斷同步問題,為CPU軟件設(shè)計(jì)提供了時(shí)間上確定的中斷輸入,有利于軟件任務(wù)的調(diào)度優(yōu)化,避免由于多中斷之間的時(shí)間隨機(jī)性導(dǎo)致丟中斷、中斷響應(yīng)不及時(shí)等問題。附圖說明圖1為本發(fā)明的多速率遙測時(shí)間同步方法流程圖;圖2為本發(fā)明多外設(shè)之間中斷提出對齊關(guān)系示意圖。具體實(shí)施方式星載計(jì)算機(jī)需要與多類型遙測、遙控及通信外設(shè)交互數(shù)據(jù),同時(shí)各個(gè)外設(shè)的工作頻率會(huì)隨著用戶需求發(fā)生變化。這將導(dǎo)致CPU軟件的任務(wù)處理的調(diào)度面臨較大不確定性。多速率遙測調(diào)度時(shí)間同步方法,用于解決衛(wèi)星多外設(shè)中斷源及下行遙測速率變化及外設(shè)模塊局部復(fù)位時(shí),CPU面臨的多任務(wù)間中斷相位變化,多任務(wù)時(shí)間失同步的問題。為CPU提供多任務(wù)的中斷相位同步保證,如圖2,其中的多外設(shè)中斷相位對齊,避免由未知的中斷聚集情況導(dǎo)致的丟中斷故障發(fā)生,降低軟件設(shè)計(jì)難度。本發(fā)明提供了一種多速率遙測時(shí)間同步方法,如圖1所示,該方法實(shí)現(xiàn)三種外設(shè)的時(shí)間同步,三種設(shè)備包括:A設(shè)備:僅受系統(tǒng)上電復(fù)位控制的外設(shè);B設(shè)備:受系統(tǒng)上電復(fù)位和CPU軟件復(fù)位控制的外設(shè);C設(shè)備:受系統(tǒng)上電復(fù)位、CPU軟件復(fù)位控制和需要調(diào)整速率的外設(shè);步驟如下:(1)規(guī)整所述三種外設(shè)的中斷間隔;在航天器平臺(tái)電子系統(tǒng)中,CPU與外部載荷、外部單機(jī)、機(jī)內(nèi)外設(shè)芯片之間的數(shù)據(jù)通信需要各種豐富的功能接口外設(shè)的配合。這些功能外設(shè)包括了ML數(shù)據(jù)發(fā)送、DS量采集以及各種標(biāo)準(zhǔn)的或者型號(hào)定制的數(shù)據(jù)收發(fā)接口。由于所實(shí)現(xiàn)功能不同,各功能模塊所處理數(shù)據(jù)也不同。有的速率快,有的速率慢。有的數(shù)據(jù)包比較大,有的數(shù)據(jù)包比較小。要實(shí)現(xiàn)多信號(hào)的同步或者相位同步,那么其頻率應(yīng)該是相同的,或者為某頻率2的冪次倍。因此,本發(fā)明的第一步就是通過功能設(shè)計(jì),將各功能外設(shè)的中斷間隔規(guī)整化。各功能外設(shè)的中斷間隔規(guī)整化的方法是:選定中斷頻率最低的外設(shè)的中斷頻率為基準(zhǔn),通過調(diào)整其它外設(shè)的中斷頻率,劃分每個(gè)中斷對應(yīng)的數(shù)據(jù)長度,使每個(gè)外設(shè)在各種遙測速率和工作模式下的中斷頻率為基準(zhǔn)頻率的2的冪次倍,同時(shí)遙測速率的可調(diào)整值是該外設(shè)最低遙測速率的2的冪次倍。(2)令所述三種設(shè)備在上電的時(shí)刻中斷同步;在電子系統(tǒng)設(shè)計(jì)中,上電復(fù)位時(shí),常將各個(gè)寄存器復(fù)位為全0或者全1。但是由于各外設(shè)所實(shí)現(xiàn)功能不同,如果按照常規(guī)復(fù)位方式,上電復(fù)位后,每個(gè)外設(shè)提出中斷距復(fù)位釋放的延時(shí)必然不盡相同。為解決這個(gè)問題,本發(fā)明的第二個(gè)步驟就需要選取一個(gè)A設(shè)備的工作時(shí)間為基準(zhǔn)時(shí)間,其他每個(gè)外設(shè)設(shè)置特殊復(fù)位值,該特殊復(fù)位值使得各外設(shè)的工作時(shí)間在基準(zhǔn)時(shí)間軸上平移,確保上電后各外設(shè)的第一個(gè)中斷提出時(shí)刻一致。具體每個(gè)外設(shè)復(fù)位初值,應(yīng)根據(jù)各外設(shè)功能需求所提中斷提出時(shí)刻計(jì)算。比如:某外設(shè)由于功能約束,上電后第1600個(gè)時(shí)鐘后提出第一個(gè)中斷,而A設(shè)備上電后第1024個(gè)時(shí)鐘后提出第一個(gè)中斷。那么就需要在上電復(fù)位釋放時(shí),將該外設(shè)的各個(gè)寄存器狀態(tài)設(shè)置為傳統(tǒng)上電復(fù)位后第(1600-1024)個(gè)時(shí)鐘時(shí)寄存器狀態(tài),那么應(yīng)用新復(fù)位值之后,該設(shè)備上電后第1024個(gè)時(shí)鐘之后即提出中斷,與A設(shè)備實(shí)現(xiàn)了同步。(3)本發(fā)明中的第三個(gè)步驟是控制CPU軟復(fù)位的釋放,該技術(shù)處理CPU可能在任何時(shí)刻發(fā)出并釋放的軟件復(fù)位,由于其釋放時(shí)刻的隨機(jī)性,必然會(huì)打亂由上電復(fù)位建立起來的各外設(shè)間同步關(guān)系。當(dāng)B設(shè)備和C設(shè)備發(fā)生CPU軟件復(fù)位時(shí),控制B設(shè)備和C設(shè)備的CPU軟件復(fù)位的釋放時(shí)刻,使其中斷再次同步;令工作時(shí)間被設(shè)定為基準(zhǔn)時(shí)間的A設(shè)備產(chǎn)生一個(gè)控制信號(hào),該控制信號(hào)產(chǎn)生時(shí)刻為所述A設(shè)備重新回到其復(fù)位狀態(tài)前一個(gè)時(shí)鐘周期的時(shí)刻,以保證對于B設(shè)備和C設(shè)備,CPU的軟見復(fù)位釋放時(shí)刻與上電復(fù)位釋放時(shí)刻一致。其原理是通過控制CPU的軟件復(fù)位釋放時(shí)刻,在不影響A設(shè)備工作的前提下,再次重現(xiàn)了上電復(fù)位的過程,各個(gè)模塊再一次站在了上電復(fù)位一致的起跑線上,B設(shè)備和C設(shè)備自該時(shí)刻起,開始自己的時(shí)間計(jì)數(shù),由此來保證軟復(fù)位發(fā)生后,所有外設(shè)如同上電復(fù)位一樣,重新又獲得同步。(4)當(dāng)C設(shè)備發(fā)生速率切換時(shí),通過三級(jí)速率同步使得C設(shè)備在速率切換時(shí)保持中斷同步。對于需要根據(jù)直接指令切換速率(中斷頻率也隨之切換)的C設(shè)備。速率之間的隨機(jī)切換,就會(huì)影響中斷對齊關(guān)系。比如,但原來工作在較高速率,中斷提出頻率為16HZ,時(shí)間基準(zhǔn)模塊中斷提出頻率為1HZ,假設(shè)復(fù)位后,兩模塊已經(jīng)恢復(fù)同步關(guān)系,當(dāng)某一秒內(nèi),該模塊提到第15個(gè)中斷時(shí),將其頻率切換降低8倍,那么其中斷頻率降為2HZ,那么之后兩個(gè)中斷之間就一直差了1/16秒。本發(fā)明的最后一個(gè)步驟,是為了解決這個(gè)問題的。第一級(jí)速率保持寄存器僅受上電復(fù)位及速率切換指令控制,上電復(fù)位時(shí),將寄存器值恢復(fù)為初始默速率值,當(dāng)速率切換指令到達(dá)時(shí),改變其中保存的速率值;第二級(jí)速率保持寄存器受上電復(fù)位和CPU軟件復(fù)位控制,當(dāng)CPU軟件復(fù)位有效時(shí),將寄存器值恢復(fù)為初始默速率值,同時(shí)接收一個(gè)令工作時(shí)間被設(shè)定為基準(zhǔn)時(shí)間的A設(shè)備產(chǎn)生的速率同步信號(hào),該信號(hào)比所述A設(shè)備下一個(gè)中斷時(shí)刻提前時(shí)間T,且時(shí)間T小于C設(shè)備最小中斷間隔周期,同時(shí),時(shí)間T大于第三級(jí)速率保持寄存器從第二級(jí)速率保持寄存器中更新速率設(shè)置值的時(shí)刻,當(dāng)所述速率同步信號(hào)有效時(shí),將第一級(jí)速率保持寄存器保存的速率值更新到第二級(jí)速率保持寄存器中;第三級(jí)速率保持寄存器用于直接控制C設(shè)備內(nèi)的分頻器,從而設(shè)置C設(shè)備的速率,第三級(jí)速率保持寄存器受上電復(fù)位和CPU軟件復(fù)位控制,當(dāng)CPU軟件復(fù)位有效時(shí),將寄存器值恢復(fù)為初始默速率值,同時(shí)接收一個(gè)C設(shè)備產(chǎn)生的控制信號(hào),該控制信號(hào)為速率導(dǎo)入信號(hào),速率導(dǎo)入信號(hào)在C設(shè)備中每次中斷提出后馬上提出,保證C設(shè)備中下次中斷提出時(shí)刻到當(dāng)前中斷提出時(shí)刻的時(shí)間間隔為切換后速率所對應(yīng)的周期。