摘要:本文基于ARINC664規范第7部分,提出符合該規范的基于AMBA總線接口的AFDX端系統IP核設計方案。目前該IP核已通過RTL級測試與FPGA驗證。通過性能測試,證明該IP核符合AFDX協議標準,具有較高的通信性能及穩定性。完全可以作為一個可重用的IP核。本文網絡版地址:http://www.eepw.com.cn/article/235428.htm
關鍵詞:航空全雙工交換式以太網;端系統;AMBA;IP核
DOI: 10.3969/j.issn.1005-5517.2014.3.014
1 引言
本文介紹了基于AMBA總線接口的AFDX端系統IP核的設計方案,使AFDX端系統的應用不只局限于終端板卡的形式。在片上系統(SoC)芯片中集成AFDX端系統功能,使AFDX端系統的應用更加靈活,以滿足不同的應用需求。基于S698-P4的SoC系統芯片是珠海歐比特公司自主研發的一款32位嵌入式SoC芯片。應用該芯片集成了一個符合ARINC664規范[4]的AFDX端系統IP核,目前該IP核設計已經通過了RTL級驗證和FPGA驗證。
2 AFDX端系統
AFDX端系統嵌入在每個航空電子子系統中,主要提供航空電子設備子系統和AFDX互聯網絡之間的接口,負責消息的發送和接收。AFDX網絡不同于普通以太網的特性主要由端系統實現[5],主要包括:
2.1 虛擬鏈路
AFDX引進了虛擬鏈路(Virtual Link,VL)對帶寬資源進行有效地分隔。虛擬鏈路是AFDX網絡的核心,每條虛擬鏈路都在源端系統和目的端系統之間建立一條單向邏輯鏈路來傳輸數據,同時還允許建立子虛擬鏈路。在發送端采用流量整形機制通過對每條VL定義最大幀長度Lmax(Maximum Frame Size)和帶寬分配間隔(Bandwidth Allocation Gap,BAG)在VL間分配通信資源。
流量整形功能是在單條虛擬鏈路上調整幀的發送時間,使每條虛擬鏈路在各自的BAG內只能發送一個幀。ARINC664第7部分規定AFDX網絡集成者需要根據實際應用需求為每條虛擬鏈路預先配置BAG,BAG的取值需要在1ms~128ms范圍之內,同時滿足公式:BAG = 2k (單位:ms),(k的取值范圍是0~7)。
端系統的每個VL的Max_jitter(最大允許抖動)應該服從下列兩個聯立的公[4]:
3 AMBA總線
AMBA規范[6]是ARM公司設計的一種用于高性能嵌入式系統的總線標準。AMBA規范定義了3種可使用的不同類型的總線:AHB,ASB和APB。
典型的基于AMBA的SoC系統結構如圖1所示[7]。其中高性能系統總線(AHB或ASB)主要用以滿足CPU和存儲器之間的高帶寬要求。CPU、片內存儲器和DMA設備等高速設備連接在其上,而系統的大部分低速外部設備則連接在低帶寬總線APB上。系統總線和外設總線之間用一個橋接器進行連接。
4 AFDX端系統IP核設計
4.1 AFDX端系統IP核體系結構
系統集成的AFDX端系統IP核符合ARINC664規范。該IP核通過AMBA總線與RISC核通信,通過外接一個物理層PHY接口芯片與AFDX網絡相連。AFDX端系統IP核主要技術特征包括:(1)支持ARINC664規范;(2)高性能的AMBA總線接口與RISC間的數據傳輸;(3)提供2個10/100M的RJ45形式的AFDX端口,支持2個端口獨立使用或2個端口互為冗余;(4)軟件實現傳輸層(UPD)、網絡層(IP)協議,硬件實現鏈路層(Virtual Link)及物理層(PHY)層協議 ;(5)硬件實現快速傳輸調度和虛擬鏈接過濾 ;(6)支持采樣(Sampling)和列隊(Queuing)端口;(7)支持發送和接收各128條虛擬鏈路(VL)。AFDX端系統IP核體系結構如圖2所示。
AFDX端系統IP核內部主要有:AMBA總線接口模塊、發送功能模塊、接收功能模塊、媒體介質管理模塊(MAC)、寄存器配置管理模塊。
4.2 AFDX端系統IP核中關鍵模塊設計
4.2.1 AMBA總線接口模塊
該模塊實現了AFDX端系統IP核與RISC間通信功能。當發送或接收數據幀時,總線控制器都要訪問AMBA總線上的SRAM,以讀或寫數據,此時AFDX端系統IP核作為總線Master訪問SRAM(通過AHB總線)。當RISC核(作為總線Master)訪問AFDX端系統IP核寄存器時,該IP核作為總線Slave響應總線Master的傳輸請求(通過APB總線)。
在發送一個數據幀時,RISC核首先寫寄存器以允許AFDX端系統IP核發送數據幀,然后構建好發送緩沖區描述符(TxBD)并寫入SRAM。發送控制器讀取該TxBD并啟動AHB Master從SRAM中直接讀取數據存放到內部的發送緩存RAM,并最終產生發送控制信號(TxCtrls)通知發送模塊等待調度發送。其中,發送緩存分成128個存儲空間,根據不同的虛擬鏈路號(VL)來存儲128個虛擬鏈路的發送數據。接收數據幀的過程類似。
4.2.2 發送功能模塊
發送模塊要實現以下功能:按照端系統的配置,對各條虛鏈路的數據幀進行流量整形;在各虛鏈路之間進行調度以多路復用物理帶寬;然后添加序列號SN,再根據配置信息中各虛鏈路的冗余狀態,將其幀發往MAC A、MAC B模塊。發送模塊主要功能如圖3[8]所示。
(a) 對虛擬鏈路層的所有VL區分為高或低兩個優先級,VL的優先級一旦確定,在傳輸過程中將固定不變。
(b) 將標準AFDX調度模型的流量整形綜合到虛擬鏈路調度。
(c) 虛擬鏈路調度器根據VL的優先級(對于具有同一優先級的VL則根據輪詢策略),讀取虛擬鏈路層VL隊列緩沖的幀到虛擬鏈路多路復用緩沖。
(d) 同時虛擬鏈路調度器采用同步調度對進入多路復用緩沖的各虛擬鏈路的幀進行流量整形并發送。
(2)發送冗余管理:發送冗余管理功能是根據虛擬鏈路的冗余配置狀態確定幀的傳輸方式,包括只在網絡A傳輸、只在網絡B傳輸或者在網絡A和網絡B同時傳輸(冗余傳輸)三種方式,如果需要冗余發送,則復制AFDX幀,并修改AFDX幀的網絡接口標識(Interface_ID),然后通過相應的網絡傳輸到目的端系統。
4.2.3 接收功能模塊
接收模塊要實現以下功能:首先將MAC模塊(MAC1和MAC2)傳來的數據存入自身緩存中,首先經過CRC檢查幀的正確性,如果沒有錯誤,再對數據幀進行完整檢查、冗余管理。接收模塊主要功能如圖4[8]所示。
(1)完整性檢查:AFDX使用SN對虛擬鏈路上傳輸的幀進行順序編號,因此虛擬鏈路層可以根據一定算法對同一虛擬鏈路連續接收的幀的SN進行檢查,判斷虛擬鏈路接收的幀序列是否完整有效。
完整性檢查的應用規則(以下文中簡稱“IC規則”),可以歸納如下:
規則1:RSN=PSN+1,表示當前接收幀的SN符合期望的SN,為上一接收幀的后續幀;
規則2:RSN=PSN+2,表示單個幀的丟失不會影響后續到達幀的接收。
規則3:RSN=0,表示當前接收幀是在源端系統啟動或復位后發送的第一幀。
其中RSN(Received SN)指當前接收幀的SN;PSN(Previous SN)指同一虛鏈路上前一個接收幀的SN;操作符“+”是指在SN的取值范圍內進行循環加計算,SN的取值范圍為1~255,當SN超過最大值時,返回到循環的起始位置,即當PSN=255時, RSN=PSN+1=1。
(2)接收冗余管理:冗余性檢查接收所有經過完整性檢查的合法幀,當它接收到同一個幀的兩份拷貝時,它將先接收到的幀轉發出去,然后刪除冗余幀。
在接收幀時,冗余檢查模塊還依賴于SkewMax(最大偏斜)。SkewMax指接收兩個獨立網絡傳送的互為冗余的幀的最大允許時間間隔。如果互為冗余幀的接收時間間隔在SkewMax之內,那么丟棄冗余幀。如果接收時間間隔超過SkewMax,那么冗余幀被無條件接收,視為有效幀。
5 結束語
本A F D X端系統I P核符合ARINC664規范,可集成于具有AMBA總線接口的SoC中,外接物理層PHY接口芯片便可以接入AFDX網絡。經RTL級和FPGA驗證及功能和性能測試表明,此IP核符合AFDX協議標準,通信性能及穩定性較高,能滿足系統應用需要。
另外,本AFDX端系統IP核具有標準的AMBA總線接口,因此,完全可以作為一個通用的IP核集成在各SoC設計中,并可滿足各種嵌入式通信系統的應用要求,具有廣泛的應用價值。
參考文獻:
[1]陳昕, 周擁軍, 萬劍雄. AFDX端系統關鍵技術的研究與實現[J].計算機工程. 2009, 35 (5): 1-3
[2]Committee of the IEEE Computer Society.IEEE Std. 802.3-2002. LAN/MAN Standards[S]. 2002
[3]羅西. 基于FPGA的AFDX端系統設計[碩士論文]. 長沙:中南大學. 2011
[4]AEEC. ARINC Specification 664 Part 7: Avionics Ful1 Duplex Switched Ethemet (AFDX) Network[S]. 2005
[5]熊華鋼, 李峭, 黃永邦. 航空全雙工交換式以太網標準研究[J]. 航空標準化與質量. 2008, 223: 25-26
[6]ARM Ltd Co AMBA Specification(Rev2.0) [Z]. 1999
[7]李瑞, 張春元, 羅莉. 三種常用SoC片上總線的分析與比較[J]. 單片機與嵌入式系統應用. 2004 (02)
[8]許燕婷. AFDX端系統協議棧虛擬鏈路層分析及仿真研究[碩士論文]. 上海:上海交通大學. 2011