機載PD火控雷達系統(tǒng)1553B總線驅(qū)動層與傳輸層軟件界面分析
傳輸層與驅(qū)動層軟件通信中的每一個消息緩沖區(qū)都對應(yīng)于一個讀寫鎖,此鎖對發(fā)送方是寫鎖,對接收方是讀鎖,發(fā)送方將一個完整的消息寫入緩沖區(qū)后,置位寫鎖,對接收方而言相當(dāng)于打開讀鎖,此時該緩沖區(qū)只可讀,不可寫;接收方將這個完整的消息讀出緩沖區(qū)后,置位讀鎖,對接收方而言相當(dāng)于打開寫鎖,此時該緩沖區(qū)只可寫,不可讀,這樣便可保證數(shù)據(jù)通信的一致性。
雙緩沖區(qū)機制——在1553B總線系統(tǒng)中,傳輸層消息傳輸與應(yīng)用層消息更新的周期一般設(shè)置為相同,這樣既能夠充分利用總線系統(tǒng)的效率,又可以降低應(yīng)用軟件的計算負荷。但是由于傳輸層和驅(qū)動層軟件位于不同CPU的時鐘管理之下,且各個處理機上每一周期內(nèi)應(yīng)用任務(wù)的時間開銷也不可能完全相同,因此圖6所示的情形是經(jīng)常出現(xiàn)的。
圖6 雙機收發(fā)時序關(guān)系
在圖6中,T為總線傳輸和數(shù)據(jù)更新周期,S1、S2、S3分別為發(fā)送方的數(shù)據(jù)更新事件,R1、R2、R3分別為接收方的查詢采樣事件,由于任務(wù)負載的不均勻性,S1、S2和S3以及R1、R2和R3之間幾乎不可能以等間隔發(fā)生,所以在采用單緩沖區(qū)進行數(shù)據(jù)傳輸時為保證數(shù)據(jù)傳輸?shù)囊恢滦远鴳?yīng)用讀寫鎖機制以后,消息S2將由于S1尚未被接收而被丟棄;采樣R3又由于未收到任何消息而耗費一個周期,在這樣的系統(tǒng)中,理論上數(shù)據(jù)丟失率可能會達到50%,對離散的工作命令,數(shù)據(jù)的丟失將影響系統(tǒng)的正常工作;對連續(xù)變化的狀態(tài)參數(shù),如此高的丟失率實際上使得系統(tǒng)的傳輸率下降一倍,這也會影響系統(tǒng)的工作精度。解決數(shù)據(jù)丟失問題的主要方法是采用雙緩沖區(qū)機制。
雙緩沖區(qū)機制就是對每個消息塊建立A、B兩個緩沖區(qū),A區(qū)寫鎖關(guān)閉、讀鎖打開時,B區(qū)讀鎖關(guān)閉、寫鎖打開??梢宰C明,只要不出現(xiàn)超時,任何消息都可通過A、B兩個緩沖區(qū)中的一個進行傳輸,并且不會被丟失。例如,在圖6中,若消息S1通過A區(qū)被R2接收,則S2會通過B區(qū)被R3接收,不會發(fā)生S2丟失的問題。
采用讀寫鎖和雙緩沖區(qū)機制的傳輸過程可以描述為:
發(fā)送方: 接收方:
if(寫指針指向A區(qū)){ if(A區(qū)讀鎖已打開){
if(A區(qū)讀鎖已關(guān)閉){ 讀A區(qū)消息塊;
發(fā)送消息塊至A區(qū);關(guān)閉A區(qū)讀鎖;
打開A區(qū)讀鎖; }
寫指針指向B區(qū); else if (B區(qū)讀鎖已打開){
}讀B區(qū)消息塊;
else{關(guān)閉B區(qū)讀鎖;
置超時標(biāo)志: }
}
}
else{
if(B區(qū)讀鎖已關(guān)閉){
發(fā)送消息塊至B區(qū);打開B區(qū)讀鎖;
寫指針指向A區(qū);
}
else{
置超時標(biāo)志;
}
}
5 RTC同步機制
機載PD火控雷達是綜合火控系統(tǒng)中最主要的傳感器之一,它一方面依賴于其它機載設(shè)備提供的高精度飛機運動參數(shù)才能進行正常工作,另一方面也要向顯示控制及火控計算機等子系統(tǒng)提供高精度的目標(biāo)數(shù)據(jù),才能進行有效的武器控制,因此精度問題是影響綜合火控系統(tǒng)工作的根本問題之一。
影響數(shù)據(jù)精度的因素很多,如傳感器誤差和子系統(tǒng)的計算方法等。在總線通訊系統(tǒng)設(shè)計中需要考慮的則主要是傳輸延遲引起的誤差,對此系統(tǒng)設(shè)計者必須考慮到幾個主要問題:其一是傳輸延遲的模型問題,其二是系統(tǒng)同步問題,其三是延遲誤差修正算法問題。早期的火控系統(tǒng)往往忽略傳輸延遲或?qū)鬏斞舆t簡單地考慮為固定延遲,因而同步問題和算法問題都可得到簡化,這對慢速運動的載機和目標(biāo)而言是可以接受的。然而,總線通訊中的傳輸延遲除一部分可以預(yù)知的固定延遲外,還有相當(dāng)復(fù)雜的隨機延遲,當(dāng)問題空間中速度和機動提高時,上述的的簡化方法便會引起很大的精度損失,因此必須提供有效的方法以解決延遲誤差,尤其是隨機延遲誤差問題,其中系統(tǒng)同步便是解決其它所有問題的前提。
事實上,航空電子系統(tǒng)的各個子系統(tǒng)都建立了本身的局部時鐘,其精度可達微秒量級,但是由于1553B總線通訊的周期是十毫秒量級的,因此如果通過應(yīng)用軟件之間的消息傳輸來建立系統(tǒng)的全局時鐘機制,那么這樣的時鐘其精度最高也只能是十毫秒量級的,這對系統(tǒng)中一些時間要求較高的處理是不足的。解決此問題的主要途徑是使用總線RTC(Real Time Clock)同步機制。
RTC是一分辨率為20μs并以遞增方式計數(shù)的32位數(shù)據(jù),精度可達±50PPM(Parts per million),在各個MBI加電復(fù)位時RTC置“0”,并開始根據(jù)自己的局部時鐘累積計數(shù),必要時還可利用“不帶數(shù)據(jù)字同步”方式指令對RTC進行復(fù)位。在系統(tǒng)工作過程中,作為BC的子系統(tǒng)CPU加載RTC,并利用每一次消息通訊將其RTC發(fā)送到各RT。因此,在RT的MBI中既有自身的RTC數(shù)據(jù),也有該RTC與BC的RTC之差△RTC,這樣各個子系統(tǒng)便可讀取RTC及△RTC,從而建立起子系統(tǒng)時鐘與全局時鐘之間的對應(yīng)關(guān)系。在數(shù)據(jù)傳輸中,每個發(fā)送子系統(tǒng)可在發(fā)送消息中附上采樣時標(biāo),接收子系統(tǒng)收到此消息時雖已經(jīng)過一定的延遲,利用時標(biāo)能夠準(zhǔn)確地對這些數(shù)據(jù)進行外推處理,盡可能地減少因系統(tǒng)不同步造成的計算誤差,提高系統(tǒng)的精度。所以RTC能夠為航空電子系統(tǒng)的同步提供支持并為系統(tǒng)維護及事后數(shù)據(jù)處理提供依據(jù)。
6 結(jié)束語
1553B總線通訊技術(shù)已經(jīng)在國內(nèi)外機載PD雷達系統(tǒng)中得到充分應(yīng)用,本文所提出的若干分析結(jié)果和設(shè)計思想也已運用于我國自行研制的機載PD火控雷達系統(tǒng)中??梢灶A(yù)見,在今后相當(dāng)長的一段時間內(nèi),1553B總線仍將是機載PD雷達內(nèi)、外部通訊的主要手段之一。隨著微電子技術(shù)的發(fā)展,CPU及1553B協(xié)議芯片正不斷地升級、換代和改型,但是為保證總線通訊軟件的繼承性和復(fù)用性,機載PD雷達中傳輸層和驅(qū)動層軟件之間的接口界面應(yīng)該相對穩(wěn)定,并且這樣的界面設(shè)計完全可以適應(yīng)機載雷達發(fā)展的新的需求。
參考文獻
1 謝希仁等.計算機網(wǎng)絡(luò).北京:電子工業(yè)出版社,1994
2 航空航天部第三○一研究所.MIL-HDBK-1553多路傳輸數(shù)據(jù)總線應(yīng)用手冊.北京:1988年11月
3 阮淑芬.1553B總線在機載火控雷達中的設(shè)計途徑.現(xiàn)代雷達,1996,18(3): 37~45
評論