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