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