《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA和PCI的AFDX終端接口卡設計
基于FPGA和PCI的AFDX終端接口卡設計
來源:電子技術應用2011年第8期
郭利鋒, 王 勇, 尹 路, 李俊鵬
(空軍工程大學 工程學院, 陜西 西安 710038)
摘要: 航空電子全雙工交換式以太網(AFDX)是在商用以太網的基礎上經過改進實時性和可靠性建立起來的。依據ARINC664規范第7部分對終端接口卡時延和抖動的性能要求,提出基于FPGA和PCI的AFDX終端接口卡的整體設計方案,對發送和接收模塊等關鍵模塊進行了設計,并分析了PCI接口驅動程序。測試結果表明,該接口卡實時性好、傳輸速率高、穩定可靠,符合AFDX協議標準。
中圖分類號: TN915.03
文獻標識碼: A
文章編號: 0258-7998(2011)08-124-04
The design of AFDX end system card based on FPGA and PCI
Guo Lifeng, Wang Yong, Yin Lu, Li Junpeng
The Engineering College, Air Force Engineering University, Xi’an 710038, China
Abstract: Avionics full duplex switched Ethernet was based on the commercial Ethernet, which was established by improving real-time and reliability. According to the time-delay and the jitter performance demand of the ARINC 664 specification Part 7, this paper put forward a holistic scheme of the AFDX end system card based on FPGA and PCI. Also, introduced the key module’s design of the transmitter and the receiver etc., and analyzed the driver procedure of the PCI interface. Testing result shows that this card has better real-time performance, high communication performance and stability, meets the standard of the AFDX protocol.
Key words : AFDX; end system card; virtual link


    航空電子系統的發展已成為現代飛機性能不斷提高的重要因素。以ARINC429和1553B為代表的現役機載總線已不能滿足現代航空電子系統對通信速度和帶寬的要求。美國航空電子技術委員會(AEEC)提出了航空電子全雙工交換式以太網AFDX(Avionics Full Duplex Switched Ethernet),它是在商用交換式以太網的基礎上,經過實時性和可靠性等方面的改進建立起來的,符合IEEE802.3和ARINC664規范。
    AFDX是一種全雙工、高數據率、雙冗余的總線,具有傳輸速度快、易擴展、可維護性好等優點,可以有效減少系統布線,減輕飛機重量。不僅能滿足航空電子系統數據通信對帶寬的需求,并已成功應用于A380和B787,也是我國新研制大型客機的理想選擇[1]。作為AFDX的重要組成部分,終端接口卡性能的好壞直接影響到AFDX網絡的整體性能。因此,設計可靠性高、實時性好、滿足實際應用需求的AFDX終端接口卡具有廣闊的應用前景和良好的經濟、軍事效益。
1 AFDX終端接口卡總體設計
    依據ARINC664規范對終端系統的要求,在參考了參考文獻[2]對終端協議芯片的設計和相關成熟產品的基礎上,提出一種AFDX終端接口卡的設計方案。該接口卡性能特點為:采用Stratix II系列FPGA芯片實現協議棧主要功能,可以實現256個傳輸虛鏈路(最多2 048個接收虛鏈路);獨立的MAC核簡化了設計,保證了系統的穩定性和100 Mb/s的傳輸速率;PCI總線可實現132~264 Mb/s的高速數據傳輸,最大限度地滿足接口卡對時延的性能要求;2個100/10 Mb/s端口,實現全雙工的雙冗余通道。AFDX終端接口硬件框圖如圖1所示。

    FPGA模塊是系統的核心協議芯片,實現AFDX協議棧的主要功能,包括流量整形、虛鏈路調度、完整性檢查、冗余管理等。MAC模塊連接物理層和FPGA,為數據的發送和接收提供數據接口和控制接口,控制PHY進行發送和接收。PHY模塊實現以太網的物理層接口功能。PCI接口電路是主機連接AFDX終端接口卡的橋梁,提供主機和接口卡間高速、雙向交互數據的接口。CPU模塊是系統的核心控制模塊,協調各模塊之間的工作,實現AFDX協議棧UDP、IP層的功能。
2 AFDX終端接口卡的關鍵模塊設計
2.1 FPGA芯片設計

    航空電子系統的運行環境特殊,對AFDX終端接口卡芯片的性能參數、工作溫度和穩定性的要求高,因此,應選用集成度高、邏輯資源和存儲器資源豐富、速度快、可以完成復雜的時序與組合邏輯電路功能的芯片。普通商業級的FPGA無法勝任,必須要采用工業級FPGA。綜合考慮各方面因素,本接口卡選用Altera公司Stratix II EP2S180系列FPGA。FPGA芯片的內部功能結構如圖2所示。

 

 

    配置數據存儲器在片內控制器的作用下完成終端接口卡的初始化,對有關硬件進行配置。初始化完成后,即可進行數據的發送和接收工作。發送數據時,CPU模塊經PCI接口通過DMA方式,將航空電子系統中的數據幀傳送到發送數據緩存器中;發送模塊按照調度算法將數據幀調度到相應VL中,為數據幀添加序列號(SN)后,同時發往MAC A和MAC B;接收數據時,PHY模塊將數據幀發送至MAC模塊(MAC A和MAC B),經MAC模塊CRC校驗后發送至接收模塊。接收模塊將MAC模塊傳來的數據存入自身緩存中,并進行完整性檢查和冗余管理;CPU檢測到已收到新數據幀后啟動DMA,將數據幀送至航空電子系統。數據緩存器用于存儲發送和接收過程中的數據。
2.1.1  接收模塊
 數據接收模塊負責接收從MAC送來的數據,實現完整性檢查,消除從冗余通道接收的重復有效幀。該模塊包括完整性檢查模塊、冗余檢查模塊、SN表和包分棟器。
    完整性檢查模塊校驗每個從MAC模塊傳來的接收幀是否具有該VL所期待的SN。冗余檢查模塊接收所有經過完整性檢查的合法幀,若接收到兩個具有相同SN號的幀時,將轉發先接收到的,然后丟棄第二個。SN表存儲接口卡各接收虛鏈路最后收到幀的SN,用于完整性檢查[2]。VL號映射表存儲各接收VL的邏輯VL號與物理VL號的對應關系。查詢該映射表,可得到VL的邏輯VL號所對應的物理VL號。包分揀器根據VL號判斷到來的幀屬于哪條虛鏈路,并將該幀存入該虛鏈路對應的數據接收緩存中[3]。
2.1.2 發送模塊
    發送模塊實現流量整形、多路復用及傳輸端冗余控制(TRC)功能。該模塊包括:寄存器模塊、虛鏈路調度模塊、傳輸端冗余控制。
    寄存器模塊存儲發送模塊所用到的信息,如VL的BAG值(帶寬分配間隔)、Lmax值(最大幀長度)等。虛鏈路調度模塊由整形模塊和多路復用模塊組成。為消除虛鏈路相互競爭引入的抖動,本設計的虛鏈路調度方案使用周期為125 μs的靜態調度方法。整形模塊負責確保每一條VL都遵守它所分配的帶寬限制,控制并監視BAG和Jitter定時器,使數據流以比較均勻的速度向外發送,限制VL上的突發流量。通過多路復用技術將整形后的虛鏈路的幀合并到一條物理鏈路上,并確保多路復用后輸出的抖動在可接受的范圍內。傳輸端冗余控制(TRC)模塊的主要作用是根據調度模塊的輸入決定將要傳送幀的目的地,可以只傳送給MAC A和MAC B中的一個,也可以同時傳送給MAC A和MAC B。
2.2 MAC模塊
 為簡化設計,本系統采用ACTEL公司的兩個Core10/100 Ethernet IP核建立兩個獨立的通道。該IP核具有100 Mb/s的傳輸速率,已經在實驗和實際應用中多次驗證符合IEEE802.3標準和ARINC664規范,可較好地實現MAC功能,其主要組成模塊及關系如圖3所示[4]。

    控制、狀態寄存器及控制邏輯(CSR)模塊向外部模塊提供控制接口和MII管理接口,包含控制寄存器、狀態寄存器及控制邏輯。主機通過CSR模塊實現對Core10/100的中斷控制和電源管理,從而達到控制IP核的目的。數據控制模塊將外部模塊需要發送的數據存入內部的發送FIFO中,等待發送,并自動使用CPU間隙將接收FIFO中收到的數據發往外部模塊。發送、接收FIFO分別用于暫存待發送的數據和接收到的數據,為外部存儲器工作于FIFO模式提供接口。發送及接收控制模塊作為發送及接收的MII接口,控制PHY芯片進行數據的發送與接收。發送控制模塊從發送FIFO中讀取待發送數據,形成幀,并通過MII接口發送數據幀;接收控制模塊通過接收MII把數據從外部PHY設備傳送到接收數據存儲器中,并完成地址過濾。
     主機與IP核之間的數據交換是通過FIFO緩存器進行的。數據交換包括發送和接收兩個獨立的過程,這兩個過程都存在三種狀態:運行、終止和暫停。發送和接收進程各有一個描述符列表,位置由CSR中的寄存器來定義。Core10/100執行載波監聽多路訪問/沖突檢測(CSMA/CD)算法來解決沖突[4]。其算法流程如圖4所示。

2.3 PCI接口模塊
2.3.1  硬件設計

    為避免設計所有PCI總線協議需要的接口邏輯,減輕工作難度,本設計采用PLX公司的64 bit總線控制器PCI9656。PCI9656與FPGA連接如圖5所示。

    PCI9656符合PCI V2.2協議,支持32/64 bit、33/66 MHz時鐘,采用流水線架構技術可以支持7個外部主控器,支持多路復用,可直接生成所有的控制、地址和數據信號以驅動PCI總線,而不需要額外驅動電路。
    根據需要,將PCI地址空間劃分為用戶配置空間、發送緩沖空間和接收緩沖空間。EEPROM作為配置信息存儲器,在控制器的作用下完成對PCI設備的初始化配置。本設計采用0類配置空間,需配置的信息包括設備的廠商、類別、設備所申請的存儲器和I/O空間、設備的中斷信息及工作方式等。
 申請局部總線控制權時,PCI9656使LHOLD變高;FPGA檢測到LHOLD變高后,立即回應LHOLDA,總線申請成功。讀數據時,PCI9656先使LW/R變低,下一個周期使ADS變低,并根據地址高兩位進行譯碼,選擇要訪問的SDRAM控制器模塊,使能SDRAM;當FPGA發出REDAY信號有效后,從SDRAM中讀數據。寫數據時,PCI9656使LW/R變高,下一個周期使ADS變低,此時地址有效,并根據地址高兩位進行譯碼,選擇要訪問的SDRAM控制器模塊,使能SDRAM;當FPGA發出REDAY信號有效后,把數據寫到SDRAM中。當數據傳輸結束時,PCI9656使REDAY信號無效、LW/R變高,下一個時鐘周期撤銷LHOLD,再下一個周期FPGA會撤銷LHOLDA信號,至此取消總線成功。
2.3.2 驅動程序
    本設計設備驅動程序采用微軟的WDM驅動程序模式,實現即插即用。驅動程序的開發和調試采用DriverStudio開發工具包中的DriverWorks和SoftICE作為主要的工具。
    設計驅動程序主要需要考慮四方面因素:PCI設備的硬件訪問;中斷處理;DMA數據傳輸和安全性、穩定性、可靠性。為實現AFDX對數據傳輸實時性的要求,設備驅動程序采用中斷方式。為滿足快速傳送數據、I/O響應時間短和CPU額外開銷小的需求,采用DMA的塊傳輸方式進行數據傳輸。為保證驅動程序的可靠性和穩定性,設計采用Windows 98/2000/XP內核模式的標準驅動程序例程。
 驅動程序可分為兩部分,一部分用于PCI9656各個配置寄存器賦值并初始化;另一部分用于主程序,用來完成PCI9656與主機CPU之間的數據交互。使用DriverStudio中的DriverWizard創建PCI驅動程序框架,采用VC++6.0的面向對象設計思想創建了接口芯片抽象類C_PCI9656,將PCI9656芯片的屬性和需實現的操作封裝起來。在頭文件Register_PCI9656.h中定義PCI9656提供的內部寄存器,包括PCI配置寄存器、DMA寄存器、運行時間寄存器和消息隊列寄存器等。資源分配通過IRP(I/O Request Packe)例程實現。DMA傳輸流程如圖6所示[5]。

    首先在應用程序中創建一個事件對象,將該事件傳遞給驅動程序并產生中斷,中斷例程判讀中斷來源。若是Local中斷,則應用程序發送DMA讀寫命令,該操作將IRP傳遞給驅動調用SerialRead()或SerialWrite()例程,運行回調例程OnDmaReady()判定是否符合DMA傳輸條件并開啟StartDMA()例程實現DMA傳輸,產生DMA中斷;若是DMA中斷,則調用OnDmaReady()例程判定DMA傳輸是否結束,未結束則再一次開啟StartDMA()例程繼續DMA傳輸并產生中斷。如此循環一直到完成所有的DMA傳輸,應用程序結束線程。為提高設備驅動程序的安全性和可靠性,在設計中采用自旋鎖來保護共享數據和設備寄存器,編寫程序時嚴格遵循編程規范和C++語言標準語法格式。
3 仿真與測試
  基于本文的設計方案,借助Altera公司的Quartus II軟件對AFDX接口卡的關鍵模塊進行了功能和時序仿真。發送模塊時序仿真如圖7所示。當主機需要發送數據時,通過給發送模塊發送一個脈沖信號TxStartFrm來指示數據幀發送的開始,發送模塊檢測到這個脈沖后使發送使能MTxEn有效,開始數據的發送。由圖7可知,發送模塊發送的數據與待發送數據一致,較好地完成了發送模塊的功能。

    接收模塊時序仿真如圖8所示。當接收開始信號RxStartFrm有效時,RxValid信號被置為可用狀態,開始數據的接收過程。接收MRxD表示從MAC發送過來的數據。由圖8可知,接收模塊工作正常,較好地完成了接收模塊的功能,滿足設計的要求。

    在對系統的功能和時序進行仿真并保證仿真正確的基礎上,將協議芯片的設計下載到Altera公司生產的Stratix II系列的EP2S180F1020C5中,并使用Sniffer協議分析軟件進行在線系統驗證。驗證表明,該協議芯片最高工作頻率可達152.64 MHz,滿足AFDX協議對時延和抖動的要求,且能正確、完整地完成發送和接收功能,通信正常。使用SoftICE調試了PCI驅動程序,結果表明,驅動程序能正確加載,能實現對硬件的正確驅動和控制管理,中斷正常,當PCI傳輸大量的數據時,數據傳輸也正確。
    本文根據ARINC664規范和AFDX協議對接口卡時延和抖動的性能要求,提出了一種基于FPGA和PCI的AFDX終端接口卡設計方案,給出了關鍵模塊的詳細設計,編寫了總線接口驅動程序。使用Quartus II軟件對各功能模塊進行了功能和時序仿真,并搭建測試平臺進行初步測試驗證。結果表明,本文提出的設計方案可行性好,穩定性高,傳輸速度快,時延小,抖動始終小于最大抖動,符合要求,為下一步的研究開發提供了可借鑒經驗。
參考文獻
[1] 徐科華. AFDX總線網絡數據傳輸分析[J].民用飛機設計與研究,2009(3):35-40.
[2] 張志,翟正軍,姚方圓. 基于FPGA的AFDX端系統協議芯片的設計與實現[J].計算機測量與控制,2010,18(2):422-442.
[3] 任向隆,馬捷中. 航空電子全雙工交換式以太網終端系統研究[J].計算機測量與控制,2009,17(5):924-926.
[4] Actel Corporation.Core 10/100 ethernet media access controller,actel corporation [EB/OL].http://www.actel.com.2005.
[5] 尹朕昊,詹亞鋒. PCI總線中DMA高速數據傳輸的設計與實現[J].電腦開發與應用,2009,22(11): 31-32.
 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 妖精色av无码国产在线看| 欧美乱妇在线观看| 国产午夜无码片在线观看| 99久久精品美女高潮喷水| 无套进入30p| 乱色熟女综合一区二区三区| 特黄特色一级特色大片中文| 国产AV无码专区亚洲AV漫画| 国产又污又爽又色的网站| 国产麻豆精品在线观看| 一本无码人妻在中文字幕免费| 日韩AV无码一区二区三区不卡| 亚洲国产欧洲综合997久久| 男女啪啪高清无遮挡免费| 国产一级做a爰片在线| 欧美jizz18性欧美年轻| 国模精品一区二区三区| 一区二区三区在线|欧| 日日躁夜夜躁狠狠躁超碰97| 亚洲av日韩综合一区二区三区| 波多野结衣电车痴汉| 午夜亚洲乱码伦小说区69堂| 青青青在线观看视频免费播放| 国产精品亚洲专区无码WEB| 99在线免费视频| 小嫩妇又紧又嫩好紧视频| 久久久久人妻精品一区蜜桃| 极品尤物一区二区三区| 亚洲欧洲日产国码av系列天堂 | 精品国产一区二区三区色欲| 国产午夜精品一区二区三区| 亚洲综合久久一本伊伊区| 国模欢欢炮交啪啪150| yellow高清在线观看完整视频在线| 手机看片在线精品观看| 久久天天躁狠狠躁夜夜呲| 李小璐三级在线视频| 亚洲成a人片在线观看天堂无码| 特级全黄一级毛片视频| 再深点灬用力灬太大了| 色多多在线视频|