一種并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法
【專利摘要】并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法,通過功能分配,為每個具體的功能模塊進行處理時間和調(diào)用時間間隔的時序確定,并對中斷處理程序進行時序和功能模塊組成確定。本發(fā)明通過將功能進行細化的時序分配,在設計中就考慮了時序約束,易于保證整個軟件系統(tǒng)的時序正確性。本發(fā)明給出了放在中斷處理中的功能模塊的設計準則和處理方式。哪些功能模塊需要放在中斷中處理對系統(tǒng)時序影響很大,需要統(tǒng)籌考慮,如果不合適可能會導致時序錯誤。本發(fā)明中提供的準則指導了中斷中模塊的時序設計,減少了中斷驅(qū)動軟件系統(tǒng)行為的不確定性。
【專利說明】一種并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法
【技術領域】
[0001]本發(fā)明涉及一種并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法,能夠通過應用到實時性要求較高,時序復雜的嵌入式系統(tǒng)設計中,保證系統(tǒng)的時序正確性。主要在航天器控制系統(tǒng)上使用,屬于嵌入式系統(tǒng)【技術領域】。
【背景技術】
[0002]航天器控制系統(tǒng)是一個實時嵌入式系統(tǒng),在這個系統(tǒng)中集中和分布、同構(gòu)和異構(gòu)、同步和異步、順序和并發(fā)、離散和連續(xù)、時間觸發(fā)和事件觸發(fā)并存,其時序問題十分復雜。航天嵌入式軟件是典型的中斷驅(qū)動的軟件系統(tǒng),并發(fā)、中斷導致程序行為的不確定性。其行為多并發(fā),中斷與任務并存且彼此關聯(lián),系統(tǒng)內(nèi)的任務和中斷處理實際上是以交錯的方式在執(zhí)行,這種交錯執(zhí)行必須滿足正確的時序關系,否則系統(tǒng)就會發(fā)生故障。
[0003]傳統(tǒng)的設計方法缺乏針對中斷驅(qū)動軟件系統(tǒng)全面的時序設計,只是給出初步的時間和時序約束,這種設計存在以下不足:(1)時序要求提的太粗,只是針對大的功能,沒有進一步細化到具體的功能模塊,無法針對時序要求進行模塊設計;(2)時序要求的合理性沒有進行分析或分析的不夠,時序要求之間甚至會產(chǎn)生矛盾。導致設計出的軟件難以滿足時序要求;(3)中斷中處理的功能設計準則和處理方式?jīng)]有給出,導致中斷中功能設計不足。
[0004]隨著控制系統(tǒng)的組成部分增多,自主控制的要求逐漸提升,對時序的要求也越來越嚴格,傳統(tǒng)的設計方法已然無法滿足中斷驅(qū)動軟件系統(tǒng)對時序的正確性要求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所解決的技術問題是:克服現(xiàn)有技術的不足,提供一種并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法,保證時序的正確性,保證中斷之間、中斷與任務之間、任務和任務之間的時序協(xié)調(diào)無沖突。
[0006]本發(fā)明技術解決方案,一種并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法,實現(xiàn)步驟如下:
[0007](I)進行功能分配
[0008]將控制軟件的功能分為數(shù)據(jù)采集和處理模塊、姿態(tài)和軌道確定計算模塊、姿態(tài)和軌道控制計算模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊;
[0009](2)功能模塊處理時間確定
[0010]針對姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊,估算出功能模塊中對應的代碼行數(shù),根據(jù)所采用計算機每條指令的處理時間,得到姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊的處理時間;
[0011]針對數(shù)據(jù)采集和處理模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊,分兩部分來計算時間:硬件通訊時間和數(shù)據(jù)處理時間。兩部分時間相加得到數(shù)據(jù)采集和處理模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊的處理時間;
[0012](3)功能模塊調(diào)用時間間隔確定
[0013]針對姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊,調(diào)用時間間隔由算法的調(diào)用周期確定;針對數(shù)據(jù)采集和處理模塊和控制指令的輸出模塊,調(diào)用時間間隔由通訊的頻率確定;針對遙控指令接收和解包處理模塊和遙測打包和發(fā)送處理模塊,調(diào)用時間間隔要求由指令的功能確定;
[0014](4)進行步驟(2)和步驟(3)項時間的合理性分析
[0015]判斷是否滿足功能模塊的處理時間小于調(diào)用時間間隔,如果滿足,執(zhí)行步驟(5);如果不滿足,重新返回步驟(2)和(3)設置時間要求;
[0016](5)中斷處理程序的時序確定
[0017]根據(jù)控制系統(tǒng)計算機的中斷設置,確定中斷處理程序的個數(shù)、優(yōu)先級和調(diào)用的時間間隔;
[0018](6)中斷處理程序中功能模塊組成和處理時間確定
[0019]根據(jù)功能模塊和中斷處理程序調(diào)用間隔時間要求的關系來確定哪些功能模塊在哪個中斷處理程序中處理;按照優(yōu)先級高低順序來確定中斷處理程序中的功能組成;根據(jù)中斷處理程序組成模塊的處理時間,得到了中斷處理程序的處理時間;
[0020](7)中斷處理程序中功能模塊的時序正確性防護確定
[0021]按照中斷處理程序的優(yōu)先級順序來確定;根據(jù)中斷處理程序中功能模塊允許被打斷的時間是否大于高級中斷處理程序的處理時間來確定,如果滿足,則本級中斷處理中功能模塊不需要防護,進行下一級中斷處理程序判斷;如果不滿足,則需對對應的功能模塊進行關中斷的處理或者其它的防護措施,然后再進行下一級中斷處理程序判斷。直到完成所有中斷處理程序中功能模塊的時序正確性防護確定;
[0022](8)任務功能模塊的時序正確性防護設計
[0023]不在中斷處理程序中功能模塊都在任務處理程序中處理。根據(jù)任務處理程序中功能模塊允許被打斷的時間是否大于所有中斷處理程序處理時間之和來確定,如果滿足,則功能模塊不需要防護;如果不滿足,則需對功能模塊進行關中斷的處理或者其它的防護措施。
[0024]本發(fā)明與現(xiàn)有技術相比的有益效果是:
[0025](I)本發(fā)明解決了傳統(tǒng)設計中沒有針對功能模塊進行時序分配的問題。傳統(tǒng)設計中只針對粒度比較大的功能進行了時序約束,沒有考慮具體到各個功能模塊的時序約束。這樣容易因為各個功能模塊沒有滿足時序要求導致系統(tǒng)時序錯誤。而這種錯誤在后期發(fā)現(xiàn)彌補的代價很大。本發(fā)明通過將功能進行細化的時序分配,在設計中就考慮了時序約束,易于保證整個軟件系統(tǒng)的時序正確性。
[0026](2)本發(fā)明解決了傳統(tǒng)設計中時序要求不合理的問題。傳統(tǒng)的設計中只給出了時序要求,但是否合理沒有進行分析。這會導致這些要求可能會難以滿足或相互矛盾。本發(fā)明通過給出各個功能模塊的處理時間、時間間隔等要求,可以給出合理性的判斷準則,有利于系統(tǒng)的時序合理,軟件實現(xiàn)符合系統(tǒng)的預期。
[0027](3)本發(fā)明給出了放在中斷處理中的功能模塊的設計準則和處理方式。哪些功能模塊需要放在中斷中處理對系統(tǒng)時序影響很大,需要統(tǒng)籌考慮,如果不合適可能會導致時序錯誤。本發(fā)明中提供的準則指導了中斷中模塊的時序設計,減少了中斷驅(qū)動軟件系統(tǒng)行為的不確定性。
[0028](4)本發(fā)明給出了需要進行時序正確性防護設計的時機。在中斷驅(qū)動系統(tǒng)中,很多功能盡管響應時間要求不高,但是如果被打斷會影響功能的實現(xiàn)。但功能實現(xiàn)所在中斷的優(yōu)先級和任務都會有不同的處理方式。本發(fā)明給出了在對需要進行時序正確性防護的情況給出了說明,為設計提供了指導和依據(jù)。
【專利附圖】
【附圖說明】
[0029]圖1為本發(fā)明流程圖。
【具體實施方式】
[0030]下面結(jié)合附圖對本發(fā)明的【具體實施方式】進行進一步的詳細描述。
[0031]如圖1所示,本發(fā)明的具體實施步驟如下:
[0032](I)進行功能分配
[0033]將控制軟件的功能分為數(shù)據(jù)采集和處理模塊FunNl、姿態(tài)和軌道確定計算模塊FunN2、姿態(tài)和軌道控制計算模塊FunN3、控制指令的輸出模塊FunN4、遙控指令接收和解包處理模塊FunN5、遙測打包和發(fā)送處理模塊FunN6 ;
[0034]然后將數(shù)據(jù)采集和處理模塊FunNl進一步劃分為各種敏感器數(shù)據(jù)采集與處理,包括慣性敏感器數(shù)據(jù)采集與處理模塊FunNl.1 ;紅外敏感器數(shù)據(jù)采集與處理模塊FunNl.2,太陽敏感器數(shù)據(jù)采集與處理模塊FunNl.3 ;星敏感器數(shù)據(jù)采集與處理模塊FunNl.4 ;
[0035]將姿態(tài)和軌道確定計算FunN2進一步劃分為各種確定計算算法,包括軌道外推計算FunN2.1 ;星歷計算FunN2.2,慣性姿態(tài)確定計算FunN2.3 ;對地姿態(tài)確定算法FunN2.4 ;
[0036]將姿態(tài)和軌道控制計算FunN3進一步劃分為各種控制計算算法,包括相平面控制算法FunN3.1 ;動量輪啟動算法FunN3.2,動量輪PID算法FunN3.3 ;控制力矩陀螺控制算法FunN3.4 ;
[0037]將控制指令的輸出FunM進一步劃分為各種控制指令輸出,包括動量輪電壓輸出FunM.1 ;磁力矩電壓輸出FunM.2,噴氣脈寬輸出FunM.3 ;控制力矩陀螺控制角速度輸出FunN4.4 ;
[0038]將遙控指令接收和解包處理FunN5進一步劃分為各種指令的接收和處理,包括校時指令的接收和處理FunN5.1 ;姿態(tài)數(shù)據(jù)的接收和處理FunN5.2,控制參數(shù)的接收和處理FunN5.3 ;
[0039]將遙測打包和發(fā)送處理FunN6進一步劃分為各種類型數(shù)據(jù)的打包和發(fā)送,包括姿態(tài)數(shù)據(jù)的打包和發(fā)送FunN6.1 ;控制數(shù)據(jù)的打包和發(fā)送FunN6.2,輔助數(shù)據(jù)的打包和發(fā)送FunN6.3 ;
[0040](2)功能模塊處理時間確定
[0041]針對姿態(tài)和軌道確定計算模塊FunN2 (包括FunN2.1?FunN2.4)和姿態(tài)和軌道控制計算模塊FunN3 (包括FunN3.1?FunN3.4),估算出功能模塊中對應的代碼行數(shù),分別為L_FunN2.1?L_FunN2.2和L_FunN3.1?L_FunN3.4。根據(jù)所采用計算機每條指令處理時間為T。則對應的功能模塊時間為T_FunNX.X=L_FunNX.X*T,從而得到T_FunN2.1~T_FunN2.4,T_FunN3.1 ~T_FunN3.4。
[0042]針對數(shù)據(jù)采集和處理模塊FunNl (包括FunNL I~FunNL 4)、控制指令的輸出FunM (包括FunM.1~FunM.4 )、遙控指令接收和解包處理FunN5 (包括FunN5.1~FunN5.4)、遙測打包和發(fā)送處理FunN6 (包括FunN6.1~FunN6.4),分兩部分來計算時間:通訊時間和數(shù)據(jù)處理時間。通訊時間包括指令發(fā)出后硬件的響應時間Tl、字節(jié)的傳輸時間T2、字節(jié)間的時間間隔T3和字節(jié)數(shù)N ;則硬件通訊時間T=T1+(T2+T3)*N。數(shù)據(jù)處理時間的確定是首先估算出數(shù)據(jù)處理對應的代碼行數(shù),根據(jù)所采用計算機每條指令處理時間為T。則對應的數(shù)據(jù)處理時間為行數(shù)與T的乘積;通訊時間和數(shù)據(jù)處理時間之和得到數(shù)據(jù)采集和處理模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊的處理時間;,即 T_FunNl.1 ~T_FunNl.4、T_FunN4.1 ~T_FunN4.4、T_FunN5.1 ~T_FunN5.4和 T_FunN6.1 ~T_FunN6.4。
[0043](3)功能模塊調(diào)用時間間隔確定
[0044]針對姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊,調(diào)用時間間隔由算法的調(diào)用周期確定;記為 INTV_FunN2.1 ~INTV_FunN2.4 和 INTV_FunN3.1 ~INTV_FunN3.4 ;
[0045]針對數(shù)據(jù)采集和處理模塊和控制指令的輸出模塊,調(diào)用時間間隔由通訊的頻率確定;記為 INTV_FunNl.1 ~INTV_FunNl.4 和 INTV_FunN4.1 ~INTV_FunN4.4 ;[0046]針對遙控指令接收和解包處理模塊和遙測打包和發(fā)送處理模塊,調(diào)用時間間隔要求由指令的功能確定;記為INTV_FunN5.1~INTV_FunN5.4和INTV_FunN6.1~INTV_FunN6.4 ;
[0047](4 )進行步驟(2 )和(3 )項時間的合理性分析
[0048]判斷是否滿足功能模塊的處理時間小于調(diào)用時間間隔,即T_FunNX.X<INTV_FunNX.X,如果滿足,執(zhí)行步驟(5);如果不滿足,重新返回步驟(2)和步驟(3)設置時間要求;
[0049](5)中斷處理程序的時序確定
[0050]根據(jù)控制計算機的中斷設置,確定中斷處理程序的個數(shù)、優(yōu)先級和調(diào)用的時間間隔;控制計算機的中斷共有M個,優(yōu)先級序號為I到M,級別由高到低,即序號小的優(yōu)先級高于序號大的。低優(yōu)先級的中斷處理程序在處理過程中,如果有高優(yōu)先級的中斷產(chǎn)生,則會被打斷,先去處理高優(yōu)先級的中斷處理程序,處理完后再繼續(xù)處理低優(yōu)先級的程序。除去中斷處理程序外,就是任務處理程序,這些程序可能被任何中斷打斷。每個中斷處理程序的調(diào)用間隔時間為 INTV_INT1, INTV_INT2,....1NTV_INTM ;
[0051](6)中斷處理程序中功能模塊組成和處理時間確定
[0052]根據(jù)功能模塊和中斷處理程序調(diào)用間隔時間要求的關系來確定哪些功能模塊在哪個中斷處理程序中處理;將功能模塊和中斷處理程序調(diào)用間隔時間分別按小到大排序,分別得到了排序后的功能模塊調(diào)用間隔時間tl_p~t24_p (滿足?1_ρ〈?2_ρ〈...〈?24_ρ)和中斷處理程序調(diào)用間隔時間tl_in~tM_in(滿足tl_in〈t2_in〈…<tM_in)。如果對任意η, η在I到24之間,滿足tn_p〈tl_in,則對應的功能模塊放在對應的中斷處理程序中處理,依次類推,確定了所有的中斷處理程序的功能模塊組成,剩余的功能模塊在任務中處理。根據(jù)中斷處理程序組成模塊的處理時間,將所有的組成模塊的處理時間相加,便得到了中斷處理程序的處理時間;
[0053](7)中斷處理程序中功能模塊的時序正確性防護確定
[0054]按照中斷處理程序的優(yōu)先級順序來確定;根據(jù)中斷處理程序中功能模塊允許被打斷的時間是否大于高級中斷處理程序的處理時間來確定,如果滿足,則本級中斷處理中功能模塊不需要防護,進行下一級中斷處理程序判斷;如果不滿足,則需對對應的功能模塊進行關中斷的處理或者其它的防護措施,然后再進行下一級中斷處理程序判斷。直到完成所有中斷處理程序中功能模塊的時序正確性防護確定;
[0055](8)任務功能模塊的時序正確性防護設計
[0056]根據(jù)任務處理程序中功能模塊允許被打斷的時間是否大于所有中斷處理程序處理時間之和來確定,如果滿足,則功能模塊不需要防護;如果不滿足,則需對功能模塊進行關中斷的處理或者其它的防護措施。
[0057]目前已有部分航天器上使用該方法,經(jīng)過整星測試表明,應用了本發(fā)明方法后,軟件系統(tǒng)的時序合理,行為可預測,有效地保障了航天器時序的正確性。
[0058]本發(fā)明說明書中未作詳細描述的內(nèi)容屬于本領域?qū)I(yè)技術人員的公知技術。
【權(quán)利要求】
1.一種并發(fā)中斷驅(qū)動軟件系統(tǒng)的時序確定方法,其特征在于實現(xiàn)步驟如下: (1)進行功能分配 將控制軟件的功能分為數(shù)據(jù)采集和處理模塊、姿態(tài)和軌道確定計算模塊、姿態(tài)和軌道控制計算模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊; (2)功能模塊處理時間確定 針對姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊,估算出功能模塊中對應的代碼行數(shù),根據(jù)所采用計算機每條指令的處理時間,得到姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊的處理時間; 針對數(shù)據(jù)采集和處理模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊,分兩部分來計算時間:硬件通訊時間和數(shù)據(jù)處理時間,兩部分時間相加得到數(shù)據(jù)采集和處理模塊、控制指令的輸出模塊、遙控指令接收和解包處理模塊、遙測打包和發(fā)送處理模塊的處理時間; (3)功能模塊調(diào)用時間間隔確定 針對姿態(tài)和軌道確定計算模塊和姿態(tài)和軌道控制計算模塊,調(diào)用時間間隔由算法的調(diào)用周期確定;針對數(shù)據(jù)采集和處理模塊和控制指令的輸出模塊,調(diào)用時間間隔由通訊的頻率確定;針對遙控指令接收和解包處理模塊和遙測打包和發(fā)送處理模塊,調(diào)用時間間隔要求由指令的功能確定; (4)進行步驟(2)和步驟(3)的時間的合理性分析 判斷是否滿足功能模塊的處理時間小于調(diào)用時間間隔,如果滿足,執(zhí)行步驟(5);如果不滿足,重新返回步驟(2)和步驟(3)設置時間要求; (5)中斷處理程序的時序確定 根據(jù)控制系統(tǒng)計算機的中斷設置,確定中斷處理程序的個數(shù)、優(yōu)先級和調(diào)用的時間間隔; (6)中斷處理程序中功能模塊組成和處理時間確定 根據(jù)功能模塊和中斷處理程序調(diào)用間隔時間要求的關系來確定哪些功能模塊在哪個中斷處理程序中處理;根據(jù)中斷處理程序組成模塊的處理時間,得到了中斷處理程序的處理時間; (7)中斷處理程序中功能模塊的時序正確性防護確定 按照中斷處理程序的優(yōu)先級順序來確定;根據(jù)中斷處理程序中功能模塊允許被打斷的時間是否大于高級中斷處理程序的處理時間來確定,如果滿足,則本級中斷處理中功能模塊不需要防護,進行下一級中斷處理程序判斷;如果不滿足,則需對功能模塊進行關中斷的處理或者其它的防護措施,然后再進行下一級中斷處理程序判斷,直到完成所有中斷處理程序中功能模塊的時序正確性防護確定; (8)任務功能模塊的時序正確性防護設計 根據(jù)任務處理程序中功能模塊允許被打斷的時間是否大于所有中斷處理程序處理時間之和來確定,如果滿足,則功能模塊不需要防護;如果不滿足,則需對功能模塊進行關中斷的處理或者其它的防護措施。
【文檔編號】G05B19/042GK103699042SQ201310751632
【公開日】2014年4月2日 申請日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】楊孟飛, 顧斌, 綦艷霞, 董曉剛, 陳堯, 王政, 陳睿, 趙雷, 關小川 申請人:北京控制工程研究所