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