基于FPGA的AFDX終端系統(tǒng)模塊設(shè)計(jì)
1 引言
本文在研究航空全雙工交換式以太網(wǎng)(Avionics Full Duplex Switched Ethernet,AFDX)實(shí)時(shí)傳輸協(xié)議的基礎(chǔ)上,分析了基于CPCI接口的雙冗余AFDX終端測(cè)試系統(tǒng)通訊模塊的設(shè)計(jì)原理,重點(diǎn)介紹了支持熱插拔的CPCI接口電源電路分析、FPGA與PCI9030接口模塊時(shí)序分析和在Windriver軟件環(huán)境下的驅(qū)動(dòng)程序的開發(fā),為AFDX上位機(jī)底層驅(qū)動(dòng)接口的開發(fā)和軟件界面的開發(fā)以及AFDX交換機(jī)的研發(fā)打下了良好的基礎(chǔ)。
2 AFDX終端系統(tǒng)模塊設(shè)計(jì)
本文設(shè)計(jì)的AFDX終端通訊系統(tǒng)包括FPGA控制模塊、PCI接口模塊、雙冗余PHY模塊。為了設(shè)計(jì)高可靠性的AFDX終端系統(tǒng),設(shè)計(jì)了2個(gè)獨(dú)立的雙冗余交換網(wǎng)絡(luò),從而保證系統(tǒng)的可靠性信息傳輸。系統(tǒng)硬件架構(gòu)如圖1所示。
2.1 CPCI接口模塊
CPCI接口模塊由2個(gè)部分組成,第一部分主要實(shí)現(xiàn)PCI總線協(xié)議功能,實(shí)現(xiàn)FPGA與上位機(jī)進(jìn)行數(shù)據(jù)的通信;第二部分主要實(shí)現(xiàn)從CPCI接口采電,并在板上進(jìn)行電源管理,對(duì)整個(gè)板卡實(shí)現(xiàn)支持熱插拔的電源供應(yīng)。
2.2 FPGA控制模塊
FPGA控制模塊是整個(gè)板卡的控制核心,它包含了AFDX協(xié)議棧的IP硬核,實(shí)現(xiàn)了AFDX協(xié)議棧特有的,如流量整形、虛擬鏈路調(diào)度、完整性檢查、冗余管理、以太網(wǎng)MAC層硬件實(shí)現(xiàn)等功能以及其它如與PCI9056通信、內(nèi)部數(shù)據(jù)的緩存管理等功能。支持10/100Mbps標(biāo)準(zhǔn)的航空實(shí)時(shí)以太網(wǎng)數(shù)據(jù)的可靠性傳輸。
以數(shù)據(jù)下傳為例介紹FPGA控制模塊的工作流程:首先在PC機(jī)上運(yùn)行上層測(cè)試軟件,通過它來(lái)設(shè)置發(fā)送通道的相應(yīng)參數(shù),該信息通過CPCI接口傳送至可編程芯片,可編程芯片內(nèi)的處理器單元根據(jù)PC機(jī)下傳的參數(shù)來(lái)設(shè)置發(fā)送通道的相關(guān)寄存器參數(shù),同時(shí)該消息經(jīng)過流量整形模塊,進(jìn)行規(guī)劃化處理,使其輸出的數(shù)據(jù)幀是規(guī)整的、沒有時(shí)延抖動(dòng)的。來(lái)自流量整形模塊的數(shù)據(jù)幀由虛擬調(diào)度模塊添加序列號(hào)(SN)后,發(fā)往冗余管理模塊。冗余管理模塊將需要發(fā)送消息復(fù)制發(fā)送到2個(gè)獨(dú)立的冗余MAC鏈路層中。 MAC模塊對(duì)數(shù)據(jù)幀添加幀序列校驗(yàn),發(fā)往PHY模塊。PHY層模塊將可編程芯片內(nèi)的MAC層的數(shù)據(jù)幀進(jìn)行電平轉(zhuǎn)換后傳送至其他標(biāo)準(zhǔn)航空以太網(wǎng)PHY設(shè)備中。
2.3 雙冗余PHY物理接口
雙冗余的PHY模塊實(shí)現(xiàn)以太網(wǎng)物理層的接口功能,實(shí)現(xiàn)AFDX航空以太網(wǎng)的可靠性傳輸,F(xiàn)PGA內(nèi)部的航空以太網(wǎng)MAC層通過MII接口與PHY連接,完成數(shù)據(jù)流的通信。MII (Media Independent Interface 介質(zhì)無(wú)關(guān)接口) 接口,即媒體獨(dú)立接口,它是IEEE-802.3定義的以太網(wǎng)行業(yè)標(biāo)準(zhǔn)。它包括一個(gè)數(shù)據(jù)接口,以及一個(gè)MAC和PHY之間的管理接口。數(shù)據(jù)接口包括分別用于發(fā)送器和接收器的兩條獨(dú)立信道。每條信道都有自己的數(shù)據(jù)、時(shí)鐘和控制信號(hào)。MII數(shù)據(jù)接口總共需要16個(gè)信號(hào)。管理接口是個(gè)雙信號(hào)接口:一個(gè)是時(shí)鐘信號(hào),另一個(gè)是數(shù)據(jù)信號(hào)。通過管理接口,上層能監(jiān)視和控制PHY.本設(shè)計(jì)中采用的是雙PHY芯片共用一個(gè)25MHz的外部晶振提供工作時(shí)鐘,這樣可以保證雙冗余的PHY完全工作同步。
3 CPCI接口電源電路分析
熱插拔功能主要用于CPCI設(shè)備,熱插拔功能允許板卡隨意從設(shè)備中插拔而不影響設(shè)備操作系統(tǒng)的正常運(yùn)行。如圖2所示,LTC1643L是一個(gè)允許CPCI型設(shè)備進(jìn)行安全插入和拔出的電源管理控制器,將系統(tǒng)的CPCI插槽電源接入到AFDX板卡,圖中IRF7413是一個(gè)N型MOS管,用于控制3.3V和5V的電源供應(yīng),而-12V和+12V電源由片上開關(guān)供應(yīng),所有的電壓的上升時(shí)間可以達(dá)到一個(gè)可編程的速率,同時(shí)還有電源過流故障時(shí)的短路保護(hù)。
PCI9030的引腳BD_SEL#是CPCI接口中最小的插針之一,BD_SEL#連接LTC1643L的使能引腳,低電平時(shí)有效開啟LTC1643L工作并同時(shí)給板卡供電。R10是一個(gè)0.018歐姆,0.5W,精度為1%的精密電阻,用于過流保護(hù)的電壓檢測(cè)電阻。當(dāng)板卡發(fā)生故障導(dǎo)致電流超過額定值之后,R10兩端的壓差將增大,SENSE引腳將此過流信息反饋至LTC1643L電源管理器,同時(shí)切斷電源供應(yīng),起到電源過流保護(hù)的功能。
4 FPGA與PCI9030接口模塊時(shí)序分析
在PCI9030與本地FPGA之間的通信分為直接主模式(Direct Master Mode)、直接從模式(Direct Slave Mode)和DMA模式。由于PCI通信要AFDX網(wǎng)絡(luò)的10M/100M通訊速率,這里采用直接從模式,工作時(shí)序如圖3所示,PCI9030為主,F(xiàn)PGA為從。LHOLD為輸出,聲明使用本地地址數(shù)據(jù)總線,LHOLDA為本地總線申請(qǐng)使用成功的返回信號(hào)。LBE[3:0]#為本地總線使能控制引腳,這里選擇32位寬的數(shù)據(jù)總線。LA[31:2]為地址總線,在本地總線申請(qǐng)使用成功信號(hào)返回且本地總線位寬使能有效后,開始輸出地址信號(hào)。ADS#為起始信號(hào),表明地址總線有效且開始一個(gè)有效的總線訪問,同時(shí)一個(gè)周期后就可以讀數(shù)據(jù)或者寫數(shù)據(jù)了,LW/R#低電平為讀高電平為寫。為了與PCI9030進(jìn)行高效的數(shù)據(jù)通信,F(xiàn)PGA里面必須有相應(yīng)的本地?cái)?shù)據(jù)通信接口。
5 WinDriver軟件的驅(qū)動(dòng)生產(chǎn)
通過PLXMON軟件對(duì)PCI9056的配置芯片進(jìn)行配置后,可以利用Windows操作系統(tǒng)中WinDriver自動(dòng)生成PCI驅(qū)動(dòng)程序,步驟如下:首先啟動(dòng)WinDriver Wizard,從開始菜單,選擇“程序 | WinDriver | Driver Wizard”;然后在Driver Wizard 菜單,單擊“File | New Project”菜單來(lái)新建一個(gè)工程,從即插即用列表中選擇顯示卡,通過生產(chǎn)商的名字來(lái)選定。單擊“Memory”標(biāo)簽。該顯示卡的三個(gè)內(nèi)存范圍顯示出來(lái)。內(nèi)存范圍中的BAR2映射的是FPGA內(nèi)的RAM緩存塊和專用寄存器,根據(jù)FPGA內(nèi)核對(duì)這些緩存塊和寄存器的可讀寫定義,可以在BAR2映射的區(qū)域里進(jìn)行讀寫,若寫進(jìn)去的數(shù)值跟讀出來(lái)的數(shù)值一致,表面CPCI接口通信正常。最后一步為生成驅(qū)動(dòng)代碼:?jiǎn)螕簟癇uild | Generate code”菜單, Driver Wizard 將產(chǎn)生操作硬件資源的函數(shù),可以在用戶模式下在應(yīng)用程序中直接使用這些函數(shù),這個(gè)向?qū)н€會(huì)產(chǎn)生一個(gè)樣本程序來(lái)使用這些函數(shù)操作硬件,上層界面的開發(fā)可以直接調(diào)用這些API函數(shù)。
6 總結(jié)
本論文中設(shè)計(jì)的帶有CPCI接口的AFDX終端板卡通訊模塊的設(shè)計(jì),充分利用PCI總線傳輸速度快和CPCI接口支持熱插拔的特點(diǎn),使得設(shè)計(jì)能滿足雙冗余AFDX的高速數(shù)據(jù)傳輸,使用方便和設(shè)備體積相對(duì)較小,便于攜帶,該板卡已經(jīng)實(shí)現(xiàn)AFDX通信協(xié)議并批量生產(chǎn)銷售。此論文的研究為AFDX網(wǎng)絡(luò)交換機(jī)的研發(fā)打下了良好的基礎(chǔ)。
評(píng)論