原 芳,黎玉剛,閆 鋒
(西安現(xiàn)代控制技術(shù)研究所, 西安 710065)
空地導(dǎo)彈發(fā)控系統(tǒng)可以用于完成空地導(dǎo)彈地面電氣聯(lián)試和飛行試驗(yàn)驗(yàn)證,主要模擬直升機(jī)綜合火控系統(tǒng)的功能,負(fù)責(zé)給空地導(dǎo)彈提供工作電源,并完成與空地導(dǎo)彈之間的數(shù)據(jù)通訊,實(shí)現(xiàn)導(dǎo)彈工作狀態(tài)的顯示、操作并控制導(dǎo)彈發(fā)射等。
隨著空地導(dǎo)彈武器系統(tǒng)性能的提高,功能復(fù)雜度不斷提升,發(fā)控系統(tǒng)需要交聯(lián)的外圍設(shè)備和信息量越來(lái)越多,控制邏輯越來(lái)越復(fù)雜,這要求發(fā)控系統(tǒng)具有豐富的外部接口,并具有高可靠性和強(qiáng)大的數(shù)據(jù)處理與計(jì)算能力。
當(dāng)前機(jī)載航電系統(tǒng)中多采用ARINC429接口。ARINC429規(guī)范又稱(chēng)Mark33數(shù)字信息傳輸系統(tǒng)(DITS),是專(zhuān)為航空電子系統(tǒng)通訊而規(guī)定的航空工業(yè)標(biāo)準(zhǔn),它采用異步雙極性歸零碼進(jìn)行數(shù)據(jù)編碼,通過(guò)一對(duì)雙絞線差分傳輸,具有很強(qiáng)的抗干擾性能,是目前機(jī)載電子設(shè)備間一種常用的數(shù)據(jù)通信總線標(biāo)準(zhǔn)[1-3]。
因此,為滿足空地導(dǎo)彈武器系統(tǒng)多功能、高性能的要求,設(shè)計(jì)一種實(shí)時(shí)性強(qiáng)、可靠性高的多通道ARINC429通訊系統(tǒng)是保證空地導(dǎo)彈發(fā)控系統(tǒng)成功的關(guān)鍵。
ARINC429總線具有數(shù)據(jù)傳輸靈活、傳輸載體輕便、抗干擾性強(qiáng)等優(yōu)點(diǎn)。我國(guó)航空電子領(lǐng)域多采用ARINC429總線實(shí)現(xiàn)設(shè)備和系統(tǒng)間數(shù)據(jù)傳輸[4-6]。
ARINC429總線是一種串行總線標(biāo)準(zhǔn),采用32位數(shù)據(jù)字為傳輸單位,傳輸數(shù)據(jù)為差分信號(hào),傳輸距離較遠(yuǎn)。ARINC429總線系統(tǒng)有星型和總線型兩種拓?fù)浣Y(jié)構(gòu),傳輸時(shí)采用單工傳播方式,即一條總線只能實(shí)現(xiàn)從發(fā)送設(shè)備向接收設(shè)備的單向傳輸,且只能有一個(gè)發(fā)送設(shè)備,至多可以有20個(gè)接收設(shè)備,接收設(shè)備的多少主要是從負(fù)載角度考慮的。ARINC429數(shù)據(jù)傳輸速率有兩種:高速傳輸速率為100 kbit/s,低速傳輸速率為12.5 kbit/s。16位CPU串行數(shù)據(jù)信號(hào)和32位ARINC429總線間的映射關(guān)系如圖1所示。
圖1 32位ARINC429總線數(shù)據(jù)映射圖
為保證多設(shè)備、大容量的信息交互,發(fā)控系統(tǒng)采用基于PowerPC+FPGA的主從處理器的架構(gòu)形式。
主處理器為PowerPC,選用MPC8280通用雙核處理器,應(yīng)用嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks,主要完成板卡初始化、數(shù)據(jù)收發(fā)控制和數(shù)據(jù)解析處理。MPC8280處理器能力強(qiáng)勁、性能優(yōu)異,能將定點(diǎn)計(jì)算、浮點(diǎn)計(jì)算和程序流控制分開(kāi),允許各個(gè)功能單元執(zhí)行獨(dú)立的指令,以完成任務(wù)所需時(shí)間最短為目標(biāo)。從處理器為FPGA,選用Xilinx公司的Spartan6,做為16位數(shù)據(jù)總線和ARINC429總線的中轉(zhuǎn)站完成信號(hào)轉(zhuǎn)換,控制協(xié)議處理芯片完成數(shù)據(jù)的發(fā)送和接收過(guò)程。主從處理器間通過(guò)60x總線進(jìn)行通訊,這種主從處理器結(jié)構(gòu),將MPC8280的高速處理能力和FPGA豐富的外圍接口結(jié)合在一起,充分利用VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)多任務(wù)實(shí)時(shí)處理的強(qiáng)大能力和FPGA大容量、高吞吐量、并行處理的優(yōu)勢(shì),有效提高了資源利用率。
文中設(shè)計(jì)的空地導(dǎo)彈發(fā)控系統(tǒng)實(shí)現(xiàn)的多通道ARINC429通訊系統(tǒng)具有4路發(fā)送和8路接收功能,即發(fā)控系統(tǒng)可以同時(shí)接收4路ARINC429數(shù)據(jù)串行輸入,由CPU進(jìn)行實(shí)時(shí)處理,同時(shí)可將CPU輸出的數(shù)字量轉(zhuǎn)化為8路ARINC429數(shù)據(jù)串行輸出,控制外部設(shè)備。發(fā)控系統(tǒng)可實(shí)現(xiàn)與武器外掛單元、導(dǎo)航系統(tǒng)、穩(wěn)瞄系統(tǒng)、數(shù)據(jù)鏈等多個(gè)外部設(shè)備同時(shí)進(jìn)行數(shù)據(jù)通訊的要求,總線傳輸速率可調(diào),數(shù)據(jù)收發(fā)靈活、可靠,實(shí)現(xiàn)了適配多種類(lèi)型導(dǎo)彈發(fā)射的要求,提高了總線數(shù)據(jù)傳輸?shù)姆€(wěn)定性和可靠性。
基于PowerPC+FPGA的發(fā)控系統(tǒng)多通道ARINC429硬件結(jié)構(gòu)設(shè)計(jì)框圖如圖2所示。
圖2 基于PowerPC+FPGA的發(fā)控系統(tǒng)ARINC429結(jié)構(gòu)示意圖
ARINC429數(shù)據(jù)傳輸模塊由4組數(shù)據(jù)收發(fā)模塊和4組數(shù)據(jù)驅(qū)動(dòng)模塊構(gòu)成,可以實(shí)現(xiàn)4路發(fā)送和8路接收功能,每組芯片可獨(dú)立編程,設(shè)定其波特率和數(shù)據(jù)格式。
每一組數(shù)據(jù)傳輸模塊由1片DEI1016和1片BD429配套組成,共同完成數(shù)據(jù)緩存、收發(fā)數(shù)據(jù)時(shí)的串并、并串轉(zhuǎn)換和差分信號(hào)驅(qū)動(dòng)等功能。
DEI1016是ARINC429協(xié)議處理芯片,每片具有2路接收通道和1路發(fā)送通道,2路接收通道之間相互獨(dú)立,接收通道是直接連接到ARINC429總線上,發(fā)送通道是經(jīng)過(guò)BD429發(fā)送驅(qū)動(dòng)芯片電平轉(zhuǎn)換后再連接到ARINC429總線上。DEI1016芯片是通過(guò)FPGA控制其數(shù)據(jù)發(fā)送和接收過(guò)程的。圖3所示為一組ARINC429數(shù)據(jù)傳輸模塊的硬件原理圖,其余幾路的電路結(jié)構(gòu)相同。
圖3 一組ARINC429數(shù)據(jù)傳輸模塊硬件原理圖
FPGA是將CPU的地址線、片選信號(hào)、讀寫(xiě)控制信號(hào)等進(jìn)行邏輯編碼,生成DEI1016的接收和發(fā)送控制信號(hào),完成ARINC429的數(shù)據(jù)傳遞。
DEI1016內(nèi)部有一個(gè)16位的控制字寄存器,F(xiàn)PGA通過(guò)查詢其控制信號(hào)/LDCW的引腳狀態(tài)執(zhí)行控制字寄存器的操作。當(dāng)/LDCW=0時(shí),控制字由數(shù)據(jù)總線鎖存到控制字寄存器,此時(shí)的16位總線是作為控制總線,而非數(shù)據(jù)總線??刂谱旨拇嫫鲗⒏鞣N控制信息傳輸給發(fā)送模塊或接收模塊,完成字長(zhǎng)選擇、奇偶校驗(yàn)、傳輸速率設(shè)置等。在文中的設(shè)計(jì)中采用32位數(shù)據(jù)字,100 kbit/s的高速接口和奇校驗(yàn)方式。
CPU發(fā)送ARINC429數(shù)據(jù)時(shí),先把要發(fā)送的數(shù)據(jù)寫(xiě)入到FPGA內(nèi)部緩存中,然后通過(guò)中斷通知FPGA來(lái)取要發(fā)送的數(shù)據(jù)。FPGA根據(jù)TXR引腳電平的狀態(tài),判斷發(fā)送是否準(zhǔn)備好。當(dāng)TXR為高電平時(shí),表示芯片準(zhǔn)備好,F(xiàn)PGA將內(nèi)部發(fā)送緩存中的數(shù)據(jù)發(fā)送到DEI1016芯片內(nèi)部緩沖區(qū),一個(gè)32位的數(shù)據(jù)傳輸需要執(zhí)行兩次發(fā)送才能完成。數(shù)據(jù)發(fā)送流程如圖4所示。
圖4 數(shù)據(jù)發(fā)送流程圖
CPU接收ARINC429數(shù)據(jù)時(shí),F(xiàn)PGA是通過(guò)查詢DEI1016芯片/DR1和/DR2的引腳狀態(tài)判斷接收緩沖區(qū)是否有數(shù),當(dāng)/DR1和/DR2為低電平時(shí)表示接收緩沖區(qū)有數(shù),F(xiàn)PGA發(fā)送讀接口時(shí)序,將WORD1和WORD2數(shù)據(jù)依次送至16位數(shù)據(jù)總線,存放在FPGA的接收緩沖區(qū)中,CPU響應(yīng)中斷讀取FPGA內(nèi)部緩沖區(qū)中的ARINC429數(shù)據(jù)。數(shù)據(jù)接收如圖5所示。
圖5 數(shù)據(jù)接收流程圖
FPGA中接收和發(fā)送通道都設(shè)有大容量FIFO,以減輕收發(fā)數(shù)據(jù)時(shí)對(duì)CPU總線的負(fù)擔(dān),防止CPU來(lái)不及響應(yīng)中斷而丟失數(shù)據(jù)。429芯片的接收和發(fā)送是共享一條數(shù)據(jù)總線D[15:0],不能同時(shí)進(jìn)行讀寫(xiě)操作,需由FPGA內(nèi)部完成讀寫(xiě)流程的輪詢。
文中的設(shè)計(jì)有4組收發(fā)單元,每組收發(fā)單元有1個(gè)發(fā)送通道,共有4個(gè)數(shù)據(jù)發(fā)送通道。發(fā)送數(shù)據(jù)采用定時(shí)中斷的方式,即每一個(gè)發(fā)送通道對(duì)應(yīng)一個(gè)發(fā)送函數(shù),在中斷中進(jìn)行調(diào)用。
下面以設(shè)計(jì)4個(gè)20 ms周期發(fā)送和1個(gè)12.5 ms周期發(fā)送為例,闡述實(shí)現(xiàn)方式。具體操作是在軟件中創(chuàng)建2個(gè)定時(shí)中斷函數(shù),一個(gè)為5 ms中斷函數(shù),完成4路20 ms的周期發(fā)送;一個(gè)為12.5 ms中斷函數(shù),完成1路12.5 ms的周期發(fā)送。20 ms周期的實(shí)現(xiàn)方式為:在5 ms中斷函數(shù)中設(shè)置一個(gè)靜態(tài)變量T,初始值為0,取值為0~3,中斷響應(yīng)一次T值累加一次,一個(gè)T值對(duì)應(yīng)一個(gè)發(fā)送通道,T計(jì)數(shù)到3后清零繼續(xù)循環(huán),一個(gè)輪詢后正好實(shí)現(xiàn)20 ms周期發(fā)送。
比如T=0表示武器外掛單元,T=1表示穩(wěn)瞄裝置,以此類(lèi)推。當(dāng)T=0時(shí)即為第一個(gè)5 ms中斷,發(fā)送通道1的數(shù)據(jù),調(diào)用發(fā)送給武器外掛單元的ARINC429函數(shù);當(dāng)T=1時(shí)即為第二個(gè)5 ms中斷,發(fā)送通道2的數(shù)據(jù),調(diào)用發(fā)送給穩(wěn)瞄裝置的ARINC429函數(shù),……。當(dāng)T=3時(shí)即為第四個(gè)5 ms中斷,發(fā)送通道4的數(shù)據(jù)。當(dāng)4個(gè)發(fā)送通道全部完成一次發(fā)送操作后,時(shí)間累計(jì)到20 ms,定時(shí)器復(fù)位清零,此時(shí)又開(kāi)始執(zhí)行通道1的發(fā)送,進(jìn)而完成第二輪4個(gè)通道的ARINC429數(shù)據(jù)發(fā)送,從而實(shí)現(xiàn)20 ms周期發(fā)送的要求。部分代碼示意如下:
void _int_5MS_time(void) //20 ms周期
{
switch(T1)
{
case 0:
//發(fā)送通道1的數(shù)據(jù)
semGive(semFSZZ);
_429SEND_FSZZ_DATA();
T1++;
break;
case 1:
//發(fā)送通道2的數(shù)據(jù)
semGive(semWM);
_429SEND_WM_DATA();
T1++;
break;
……
}
}
void _int_125_time()
//12.5 ms周期
{
semGive(semDH);
_429SEND_FSZZ_DATAFromDH();
}
文中所述的發(fā)控系統(tǒng)設(shè)計(jì)有4個(gè)發(fā)送通道,相互之間獨(dú)立,可以配置成不同的時(shí)鐘周期,實(shí)現(xiàn)方式靈活多變。
文中設(shè)計(jì)有4組數(shù)據(jù)傳輸模塊,每組都有2個(gè)接收通道,共有8個(gè)數(shù)據(jù)接收通道。以4個(gè)數(shù)據(jù)接收通道為例,實(shí)現(xiàn)方式為:CPU首先創(chuàng)建4個(gè)同等優(yōu)先級(jí)的接收任務(wù),接收任務(wù)的調(diào)用是由數(shù)據(jù)接收周期確定的。當(dāng)某一通道上有數(shù)據(jù)輸入時(shí),CPU接收到FPGA給出的中斷信號(hào),F(xiàn)PGA通過(guò)查詢/DR信號(hào)確定獲取接收數(shù)據(jù)的通道,CPU就從相應(yīng)通道上讀取數(shù)據(jù),并調(diào)用接收函數(shù)將接收到的數(shù)據(jù)放入到對(duì)應(yīng)的數(shù)組中。
應(yīng)用程序?qū)RINC429數(shù)據(jù)的解析處理是先取其低8位,即標(biāo)志位LABLE,然后判斷其是否有效,只有符合協(xié)議要求的數(shù)據(jù)才被保留并進(jìn)行解析處理。
根據(jù)文中所述的軟、硬件設(shè)計(jì)實(shí)現(xiàn)的發(fā)控系統(tǒng)與武器外掛單元、穩(wěn)瞄裝置、導(dǎo)航系統(tǒng)等進(jìn)行周期通訊,圖6(a)是采集的4路ARINC429數(shù)據(jù)傳輸波形圖,圖6(b)是波形的局部放大圖。圖中ch1是發(fā)控系統(tǒng)給武器外掛單元發(fā)送的數(shù)據(jù);ch2是發(fā)控系統(tǒng)給穩(wěn)瞄裝置發(fā)送的數(shù)據(jù);ch3是發(fā)控系統(tǒng)給導(dǎo)航系統(tǒng)發(fā)送的數(shù)據(jù);ch4是發(fā)控系統(tǒng)接收到武器外掛單元的數(shù)據(jù)。其中ch1和ch2兩個(gè)通道數(shù)據(jù)長(zhǎng)度不同,但通訊周期都是20 ms,ch3是發(fā)控給導(dǎo)航系統(tǒng)發(fā)送的數(shù)據(jù),數(shù)據(jù)量比較大,通訊周期為12.5 ms,ch4是發(fā)控接收武器外掛通道的數(shù)據(jù),通訊周期也為20 ms。
圖6 多路ARINC429數(shù)據(jù)傳輸波形采集圖
經(jīng)過(guò)長(zhǎng)時(shí)間大量系統(tǒng)試驗(yàn)表明,在4通道并行及通訊周期不同的工作情況下,發(fā)控系統(tǒng)多通道ARINC429數(shù)據(jù)傳輸穩(wěn)定可靠、無(wú)誤碼、抗干擾能力強(qiáng),滿足武器系統(tǒng)對(duì)數(shù)據(jù)傳輸實(shí)時(shí)性和高精度的要求。
文中設(shè)計(jì)的發(fā)控系統(tǒng)多通道ARINC429通訊系統(tǒng)采用PowerPC+FPGA的架構(gòu)形式,使總線具有更大的數(shù)據(jù)吞吐率和通信速率,增強(qiáng)了數(shù)據(jù)處理和傳輸能力,同時(shí)減小了模塊體積和種類(lèi)。
仿真結(jié)果驗(yàn)證了文中設(shè)計(jì)方法的有效性,經(jīng)武器系統(tǒng)聯(lián)調(diào)測(cè)試,可以保證100%的數(shù)據(jù)傳輸正確率,滿足機(jī)載武器對(duì)發(fā)控系統(tǒng)數(shù)據(jù)傳輸?shù)囊蟆D壳?,采用該設(shè)計(jì)研制的發(fā)控系統(tǒng)已配合完成多彈種、多系列空地導(dǎo)彈的各項(xiàng)地面飛行試驗(yàn),經(jīng)驗(yàn)證該系統(tǒng)性能優(yōu)越、穩(wěn)定可靠,能夠滿足不同階段數(shù)據(jù)通信可靠性的要求。