一種新型1553B備份總線控制器設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:總線控制器是1553B總線的核心,總線控制器出現(xiàn)故障,將導(dǎo)致整個(gè)網(wǎng)絡(luò)癱瘓。工程實(shí)踐中通過設(shè)置備份總線控制器的方法提高總線的可靠性,給出了一種新型備份總線控制器的設(shè)計(jì)方法,其同時(shí)工作于RT模式和MT模式,設(shè)置RT地址為x,RTx功能與其他RT功能相同,MT功能可有選擇的監(jiān)控除RTx以外的總線上的任何消息。與RT或MT作為備份總線控制器的傳統(tǒng)設(shè)計(jì)方法相比,RTMT模式作為備份總線控制器在不增加總線負(fù)載的情況下滿足了新的應(yīng)用需求,已在工程實(shí)踐中得到成功應(yīng)用。
關(guān)鍵詞:1553B總線;總線控制器;備份總線控制器;遠(yuǎn)程終端;監(jiān)控終端
0 引言
1553B總線是在20世紀(jì)70年代末由美國提出的飛機(jī)內(nèi)部電子系統(tǒng)互聯(lián)的標(biāo)準(zhǔn),具有靈活性和高可靠性,廣泛應(yīng)用于三代機(jī)中。經(jīng)過多年的發(fā)展和型號應(yīng)用,1553B軟硬件設(shè)計(jì)技術(shù)已經(jīng)相當(dāng)成熟,但隨著系統(tǒng)性能的提升,系統(tǒng)對1553B總線的性能要求也越來越高,應(yīng)用模式也發(fā)生較大的變化,如何讓1553B總線適應(yīng)新的系統(tǒng)性能要求及新的應(yīng)用模式是當(dāng)前研究的熱點(diǎn)。
BC是1553B總線消息傳輸?shù)慕M織者和發(fā)起者,即總線上所有的消息傳輸都由BC通過發(fā)送1553B命令來實(shí)現(xiàn),RT響應(yīng)BC發(fā)送的命令并執(zhí)行操作。1553B總線是雙冗余的傳輸線,具有A、B兩個(gè)互為備份的通道,增強(qiáng)了系統(tǒng)的可靠性。但是,由于總線上只能存在一個(gè)BC,一旦BC出現(xiàn)故障,則整個(gè)總線將癱瘓。工程實(shí)踐中通過增加BBC的方法來提升系統(tǒng)的可靠性,殷杰波等人提出了利用RT模式作為BBC的設(shè)計(jì)方法,該RT只接收一條BC的特定消息,通過查詢該消息的時(shí)間標(biāo)志寄存器判斷在周期內(nèi)是否收到了該消息,以此判斷BC是否工作正常。此設(shè)計(jì)方法簡單有效,一旦BC故障,BBC可以切換為BC模式,進(jìn)行總線管理與維護(hù)。楊衛(wèi)軍等人提出了利用MT模式作為BBC的設(shè)計(jì)方法;以上設(shè)計(jì)中,BBC僅用于監(jiān)控BC的工作狀態(tài),功能單一。新的應(yīng)用需求中,BBC需要具備三個(gè)功能:監(jiān)控BC的工作狀態(tài)、與其他子系統(tǒng)通信、同步獲取BC與其他子系統(tǒng)之間的應(yīng)用數(shù)據(jù)傳輸,完成系統(tǒng)應(yīng)用的同步解算,傳統(tǒng)RT或者M(jìn)T模式作為BBC的設(shè)計(jì)方法無法滿足系統(tǒng)的要求,本文依據(jù)某1553B協(xié)議芯片,針對新的應(yīng)用模式,給出了一種BBC工作于RTMT模式的設(shè)計(jì)方法。
1 1553B應(yīng)用模式
1553B采用總線型拓?fù)浣Y(jié)構(gòu),節(jié)點(diǎn)按照功能可以劃分為3類:BC、RT及MT,新的應(yīng)用模式下,接口控制文件定義了應(yīng)用相關(guān)的所有RT-BC及BC-RT的消息,如圖1所示,A系統(tǒng)為主,B系統(tǒng)為備份,A系統(tǒng)主機(jī)通過BC負(fù)責(zé)消息的組織與發(fā)送,B系統(tǒng)主機(jī)作為備份具有三個(gè)功能:
(1)通過BBC監(jiān)控A系統(tǒng)的運(yùn)行狀態(tài),一旦A系統(tǒng)故障,B系統(tǒng)復(fù)位BBC并將其切換為BC,控制整個(gè)網(wǎng)絡(luò)的正常運(yùn)行;
(2)BBC要能夠完成與BC及其他RT的數(shù)據(jù)通信;
(3)B系統(tǒng)主機(jī)需要實(shí)時(shí)獲取ICD文件中定義的所有應(yīng)用相關(guān)的消息,用于同步解算。例如,ICD文件中MSG1為一條RT-BC的消息,當(dāng)BC組織此消息時(shí),A系統(tǒng)主機(jī)通過BC獲取到該消息,與此同時(shí),B系統(tǒng)也要通過BBC獲取到該消息。
在以往設(shè)計(jì)模式中,如果BBC工作在RT模式,要滿足功能(3),必須根據(jù)原ICD文件中定義的RT-BC及BC-RT的消息增加相同數(shù)量的RT-BBC及BC-BBC的消息,會導(dǎo)致消息量倍增,無法保證系統(tǒng)的實(shí)時(shí)性,甚至超出1553B協(xié)議可承載的消息數(shù)量;如果BBC工作于MT模式,則無法滿足功能(2)。針對新的應(yīng)用模式,RT功能可以滿足條件(1),(2),MT功能則可以滿足條件(1),(3),若BBC工作于RTMT模式,某一時(shí)刻僅能工作于其中一種工作模式,即作RT時(shí),完成RT功能,MT功能停止,作MT時(shí),有選擇的監(jiān)控總線上的通信數(shù)據(jù),RT功能停止,RTMT功能根據(jù)總線上消息的類型完成自動切換,如果總線上的消息是與BBC的RT地址相關(guān),則工作于RT模式,如果總線上的消息和BBC的RT地址無關(guān),則工作于MT模式,則可以在不增加消息通信量的條件下滿足新的應(yīng)用模式。依據(jù)備份總線控制器工作于RTMT模式的思想,本文基于1553B協(xié)議芯片給出了BBC工作于RTMT模式的設(shè)計(jì)與實(shí)現(xiàn)方法,其應(yīng)用模式如圖1所示。
2 設(shè)計(jì)與實(shí)現(xiàn)
1553B協(xié)議芯片內(nèi)部功能強(qiáng)大,接口靈活、便于控制,可設(shè)置為BC、RT、MT及RTMT模式,在需要主機(jī)較小干預(yù)的情況下,基于RT地址、T/R位及子地址進(jìn)行選擇性消息監(jiān)控。MT模式包含一個(gè)命令棧和一個(gè)數(shù)據(jù)棧,位于共享RAM的固定位置,且與BC或RT的命令棧獨(dú)立,選擇消息監(jiān)控模式下,協(xié)議芯片接收到一個(gè)有效命令,根據(jù)“選擇監(jiān)控表”(RAM中固定位置)決定是否使能該消息,如果指定的BIT位在“選擇監(jiān)控表”內(nèi)是0,命令將不被使能,忽略該消息,如果BIT位為1,命令被使能,進(jìn)入監(jiān)控命令棧并將數(shù)據(jù)內(nèi)容存放到相應(yīng)的監(jiān)控?cái)?shù)據(jù)棧中。
RTMT模式使得協(xié)議芯片除了處理和自己RT地址相關(guān)的消息外,其余時(shí)間用來有選擇的監(jiān)控總線上的數(shù)據(jù),其通過一個(gè)中斷狀態(tài)隊(duì)列實(shí)現(xiàn)RT模式與MT模式的判斷,如圖2所示。
該隊(duì)列按中斷產(chǎn)生的次序記錄中斷條件和中斷事件。中斷狀態(tài)隊(duì)列為64 B長度,可存儲32條監(jiān)控消息中斷。中斷狀態(tài)隊(duì)列的指針存儲在中斷向量隊(duì)列指針寄存器(寄存器地址0x1F)中,該寄存器必須由主機(jī)初始化,并由主機(jī)累加,中斷向量隊(duì)列指針寄存器始終指向下一個(gè)中斷的存儲地址。每個(gè)中斷事件產(chǎn)生,協(xié)議芯片將2 B寫入中斷隊(duì)列,第一個(gè)字為中斷向量,表明哪一類事件導(dǎo)致了中斷。中斷事件被分為2類:消息中斷事件和非消息中斷事件,第二個(gè)字為消息描述塊指針,指向消息描述塊的首地址。
基于以上1553B協(xié)議芯片的特點(diǎn),RTMT功能實(shí)現(xiàn)主要包括兩部分:相關(guān)資源初始化及中斷服務(wù)處理程序的設(shè)計(jì)。
2. 1 協(xié)議芯片初始化
初始化協(xié)議芯片由主機(jī)完成,主要包括協(xié)議芯片固定地址初始化及寄存器初始化,表1給出了在共享RAM為64 KB的硬件環(huán)境下,RTMT的資源分配表,其中標(biāo)明“固定”的表示該地址為1553B協(xié)議芯片單獨(dú)使用,且地址的值不能變更。
2.1. 1 固定地址初始化
RTMT模式中需要初始化的固定地址包括:RT命令棧指針A、監(jiān)控命令棧指針A、監(jiān)控?cái)?shù)據(jù)棧指針A、方式代碼選擇中斷表、方式代碼數(shù)據(jù)、RT查詢表A、忙位查詢表、選擇監(jiān)控查詢表、命令非法表。固定地址初始化步驟及方法如下:雙端口RAM地址0000H-00FFH初始化為0000H,作為RT命令站空間;雙端口RAM地址0100H初始化為0000H,用于設(shè)置RT命令棧指針首地址為0000H;雙端口RAM地址0102H初始化為0400H,用于設(shè)置MT命令棧指針A起始地址為0400H;雙端口RAM地址0103H初始化為0800H,用于設(shè)置MT數(shù)據(jù)棧指針A起始地址為0800H;設(shè)置方式代碼選擇中斷表;雙端口RAM地址0110H~013FH設(shè)置為0000H,用于初始化方式代碼數(shù)據(jù)值為0000H;雙端口RAM地址0240H~0247H設(shè)置為0000H,清除RT的所有子地址忙位;雙端口RAM地址000H~03FFH設(shè)置為FFFFH,設(shè)置命令非法表;初始化RT查找表數(shù)據(jù)指針空間,接收緩沖區(qū)地址從0x6000開始,發(fā)送緩沖區(qū)地址從0x8000開始;每個(gè)數(shù)據(jù)塊長度為40 B,開始的一個(gè)字作為消息塊標(biāo)志字,廣播接收消息與非廣播接收消息共用同一個(gè)緩沖區(qū),具體初始化流程如下:
2.1.2 寄存器初始化
通過配置1553B協(xié)議芯片的寄存器,設(shè)置協(xié)議芯片處于不同的工作模式,RTMT工作模式下的協(xié)議芯片寄存器初始化方法及步驟如下:向啟動/復(fù)位寄存器寫入值0001H,復(fù)位ACE協(xié)議芯片;配置寄存器3寫入8000H,使ACE協(xié)議芯片工作于增強(qiáng)模式;中斷掩碼寄存器1設(shè)置為0201 H,使能握手失敗中斷及消息結(jié)束中斷;配置寄存器1設(shè)置為9880H,使能BUSY,SSFLAG,RTFLAG RT/BM;配置寄存器2設(shè)置為8498H,使能電平中斷,256 B邊界禁止,RT子地址發(fā)送/接收采用單緩沖模式;配置寄存器3設(shè)置為8D5DH,使能方式命令的相關(guān)操作,設(shè)置RT命令棧為256 B,MT命令棧為1 024 B,MT數(shù)據(jù)棧為2 048 B;配置寄存器4設(shè)置為C008H,外部BIT字使能,使能RT地址軟件鎖存方式;將經(jīng)過奇校驗(yàn)RT地址寫入配置寄存器5,作為備份總線控制器的RT地址;配置寄存器6設(shè)置為6172H,設(shè)置時(shí)鐘頻率為20 MHz,使能軟件配置RT地址,使能協(xié)議芯片中斷隊(duì)列操作;將中斷向量隊(duì)列指針寄存器初始化為1000H,表明中斷向量隊(duì)列是從1000H開始的64 B空間;將數(shù)據(jù)棧指針寄存器初始化為080 0H,用于設(shè)置MT數(shù)據(jù)棧指針的起始地址為0800H;讀取配置寄存器1的值或上0400H后寫入配置寄存器1,用于清除RT忙位,使能協(xié)議芯片進(jìn)行通信。
2.2 中斷服務(wù)處理
共享RAM中固定地址及ACE協(xié)議芯片寄存器初始化完成后,協(xié)議芯片即工作于RTMT模式,當(dāng)協(xié)議芯片接收到有效命令,將觸發(fā)消息結(jié)束中斷,中斷服務(wù)程序完成對該條消息的處理。首先,用全局變量CurrQueuePtr記錄尚未處理的中斷隊(duì)列指針,其初始值為中斷隊(duì)列的起始地址0x1000;中斷向量隊(duì)列指針寄存器始終存放的是下一次中斷待寫入的中斷隊(duì)列指針,讀取中斷向量隊(duì)列指針寄存器(1F)內(nèi)下一次待寫入的中斷隊(duì)列指針NextQueuePtr,并進(jìn)行如下處理:
其中Rt_Do_Msg()函數(shù)主要完成RT功能下消息接收或發(fā)送后的相關(guān)處理,如新數(shù)據(jù)標(biāo)志的置位與清除等,方式命令的處理等。Mt_Do_Msg()函數(shù)主要完成MT功能,將數(shù)據(jù)從較小的MT數(shù)據(jù)棧(0x800~0x9FF)根據(jù)監(jiān)控過濾位,將需要監(jiān)控的消息按照特定的格式重新組織并存儲到較大的MT數(shù)據(jù)緩沖區(qū)(0xA000~0xF000)內(nèi),以備用戶使用。
3 應(yīng)用實(shí)例及分析
某項(xiàng)目采用1553B總線作為主干總線,總線上共有RT 13個(gè),RT地址分別為1~13,1個(gè)BC,1個(gè)BBC,工作于RTMT模式下,RT地址為18。系統(tǒng)應(yīng)用的消息類型及條數(shù)見表2,系統(tǒng)應(yīng)用要求BBC應(yīng)能夠與BC同時(shí)獲取BC-RT及RT-BC之間的應(yīng)用數(shù)據(jù)通信內(nèi)容,用于同步解算。根據(jù)應(yīng)用要求,若采用BBC工作于RT模式,排列出的總線消息類型及消息條數(shù)見表3,根據(jù)應(yīng)用需求,共有BC-RT消息24條,為了滿足BBC同時(shí)獲取BC-RT消息的需求,必須增加24條BC到BBC的消息,同樣,共有RT-BC的消息65條,為了滿足BBC同時(shí)獲取RT-BC消息的需求,必須增加65條RT-BBC的消息,BBC需排列接收消息為BC-BBC及RT-BBC的消息綜合,共計(jì)92條,遠(yuǎn)遠(yuǎn)大于BBC作為RT模式,僅能接收消息30條消息的限制,且總線傳輸存在延遲,導(dǎo)致BBC不能與BC同步獲取BC-RT與RT-BC的消息,因此,BBC工作于RT模式無法滿足應(yīng)用需求。若采用BBC工作于MT模式,則無法滿足BC-BBC、BBC-BC及BBC-RT之間的數(shù)據(jù)傳輸要求。
采用新的設(shè)計(jì)方法后,BBC工作于RTMT模式,作為RT18可以滿足BBC-BC、BC-BBC、BBC-RT及RT-BBC之間的消息通信,同時(shí)作為MT可以有選擇的監(jiān)控BC-RT及RT-BC的消息,無需額外增加BC-BBC及RT-BBC的消息,即可讓BBC與BC同步獲取相應(yīng)應(yīng)用數(shù)據(jù)內(nèi)容,在不增加消息量的前提下,滿足了系統(tǒng)應(yīng)用的需求。
4 結(jié)論
本文首先介紹了當(dāng)前1553B方向BBC的最新應(yīng)用模式,并基于1553B協(xié)議芯片給出了工作于RTMT模式下BBC的設(shè)計(jì)與實(shí)現(xiàn)方法,并結(jié)合工程實(shí)例,從實(shí)際應(yīng)用需求出發(fā),分析了RTMT模式與以往RT或MT模式下的應(yīng)用差別,在RT模式或者M(jìn)T模式均不能滿足系統(tǒng)要求的前提下,采用RT MT模式很好的解決了系統(tǒng)對于BBC新的應(yīng)用需求,且無需增加任何總線負(fù)載,具有較強(qiáng)的工程實(shí)踐意義。