(上海航天電子技術研究所,上海 201109)
在可靠性要求較高的航空、航天等領域,當前廣泛采用MIL-STD-1553B總線作為高可靠互連數據總線。隨著航天器電子系統的不斷發(fā)展,星上數據處理任務日益復雜化多樣化,傳統1553總線1 Mbps的數據傳輸速率已經遠不能滿足快速增長的數據吞吐需求。此外,隨著星載電子系統綜合集成的復雜度不斷提高,航天器對來自系統內外的各類電磁輻射越來越敏感,而由于傳統1553總線采用電纜作為傳輸介質,易受電磁環(huán)境的輻射干擾,從而限制了它的進一步擴展與應用[1]。
FC-AE-1553協議由美國國家標準協會(American National Standards Institute,ANSI)制定[2],它基于光纖通道-航空電子環(huán)境(Fibre Channel-Avionics Environment,FC-AE)協議,是傳統1553協議在光纖通道上的映射,為光纖1553總線設備的具體實現提供了相應的協議支撐。雖然FC-AE-1553仍采用基于命令/響應式交互的總線通信模式,但是其相對于傳統1553總線在傳輸速率、總線設備容量、傳輸介質可靠性等方面均有很大的提高。FC-AE-1553總線另一個重要特性是支持現有傳統1553總線設備的橋接接入,實現傳統1553總線的平滑升級,從而最大限度保留現存1553總線設備,節(jié)約資源。FC-AE-1553各類優(yōu)異特性使其成為總線技術的研究熱點,是高可靠航天數據總線的重要發(fā)展方向[3]。
本文在分析FC-AE-1553協議基礎上,提出了一種基于中止序列協議(Abort Sequence Protocol,ABTS)的FC-AE-1553交換管理模塊設計方案,根據總線交換模型對交換處理流程進行了分析和研究,并基于FPGA硬件平臺完成模塊的工程實現和仿真,最后搭建測試系統對FC-AE-1553總線交換和總線差錯處理功能進行了驗證,在硬件平臺上實現了FC-AE-1553總線數據的5 Gb/s光纖傳輸。
光纖通道(Fibre Channel,FC)標準協議體系采用分層架構,包含一系列復雜的子標準,由相應的標準化組織開發(fā)。協議層與層之間通過固定接口或服務類進行交互,從而保證各層相互獨立,并為設計者留有足夠的拓展空間。FC協議共分為五層,其中FC-0,FC-1,FC-2層規(guī)定了光纖通道的物理和信號接口,是光纖通道協議的基本層,FC-3和FC-4定義為服務層和協議映射層,屬于協議拓展層。
FC-AE-1553總線基于光纖通道標準,將傳統1553總線映射到光纖通道FC-4層,其映射關系如圖1所示[4]。
圖1 FC-AE-1553協議映射
FC-AE-1553采用網絡型拓撲結構,其總線容量、靈活性和可擴展能力大大提升,總線包含網絡控制器(Network Controller,NC)和網絡終端(Network Terminal,NT)兩種總線單元。NC是總線網絡的管理者,負責總線任務的分配和調度管理,所有總線交換均由NC發(fā)起。NT屬于總線終端設備,是總線交換的參與者,在NC的統一管理下與其它總線單元進行數據交換,FC-AE-1553協議支持多個NC同時工作。在FC-AE-1553交換的的命令幀和狀態(tài)幀中定義了MIL-STD-1553B遠程終端的屬性[5],方便FC-AE-1553總線單元與傳統1553設備進行數據交互,從而支持傳統1553總線設備的橋接接入,實現平滑升級。
FC-AE-1553交換與傳統1553交換類似,可分為NC向NT傳輸、NT向NC傳輸、NT向NT傳輸和方式命令等四大類。FC-AE-1553新增對大量數據突發(fā)傳輸的支持,協議中定義了“NT突發(fā)數據傳輸請求”位和“延遲突發(fā)數據傳輸請求”位,用于NT的突發(fā)傳輸請求。同時,協議新增了“抑制”(Suppress)位,用戶可以抑制NT的狀態(tài)回復與確認,以適應實時性和可靠性需求不同的數據傳輸,充分利用總線帶寬。
下面以NT到NT傳輸類型交換為例,分析FC-AE-1553交換具體過程,如圖2所示,其它類型交換與之類似。在此交換中,“NT突發(fā)傳輸請求”位置‘0’,“延遲NT突發(fā)傳輸請求”位置‘0’。
圖2 NT到NT傳輸過程示意圖
該交換涉及三個總線單元,分別為NC、發(fā)送NT和接收NT。交換過程如下:
1)NC根據上層交換任務需求,發(fā)起“原始”交換,向發(fā)送NT發(fā)送“發(fā)送”命令序列,通知發(fā)送NT準備進行發(fā)數,該“發(fā)送”命令序列中包含了交換類型(“NT-NT 傳輸”標志)、接收NT的目標地址和子地址等“響應交換”所需的信息。
2)發(fā)送NT收到命令序列后,從中提取接收NT目標地址、子地址和數據量等交換信息,并向相應接收NT發(fā)送“接收”命令序列,發(fā)起“響應”交換。
3)發(fā)送NT向接收NT發(fā)送數據序列,傳送規(guī)定大小的數據。若總數據量超過一個數據序列的容量,則發(fā)送NT將數據進行拆分后通過多個數據序列傳送,直至數據傳輸結束。
4)最后,由于命令序列中“抑制”位為‘0’,發(fā)送NT和接收NT均需根據自身此次交換過程中的狀態(tài)信息反饋狀態(tài)序列,結束“響應”交換和“原始”交換,完成NT到NT的數據傳輸。
此外,FC-AE-1553支持NC的交換監(jiān)測屬性,此交換中,當NC將命令序列中“NC監(jiān)控”(NC Monitor for NT-to-NT Transfer)位置位時,可對整個NT到NT的傳輸過程進行監(jiān)測。
基于對FC-AE-1553協議的分析,FC-AE-1553總線數據通信以交換為基本通信單元,交換過程中以“序列”作為指令、數據、狀態(tài)和服務傳送的最小單元[6],據此對FC-AE-1553交換管理模塊進行設計,模塊設計框圖如圖3所示。
圖3 交換管理模塊原理框圖
交換管理模塊由序列級和交換級兩大功能部分組成,交換級主要包括NT模式管理、NC模式管理模塊,序列級主要包括序列接收管理、序列接收解析、序列發(fā)送管理、序列組幀模塊。此外,設計了讀寫緩存控制模塊,用于與用戶層的高速數據交換與緩沖。
NT模式管理和NC模式管理是FC-AE-1553交換管理的核心功能模塊,兩者分別實現FC-AE-1553的NT和NC兩種總線單元的交換處理功能,上層用戶可通過模式引腳選擇當前工作模式。模塊采用狀態(tài)機設計,基本狀態(tài)轉換圖如圖4所示。模塊上電后默認處于空閑態(tài),在收到上層用戶的交換開始指令后進入交換信息提取狀態(tài),然后根據提取信息的不同進入不同的交換模式處理流程,在所有交換過程階段中,一旦發(fā)生交換異常,則立即進入ABTS協議處理流程并結束交換,若交換正常則直接結束交換。
圖4 交換管理模塊狀態(tài)機
在NT模式管理和NC模式管理模塊中包含了ABTS協議處理邏輯,基于FC-3層提供的鏈路基本服務實現。當某個總線單元端口發(fā)現交換出現錯誤時,通過ABTS請求幀通知對應端口進行差錯處理,目的端口收到ABTS請求后進行回復,若接受請求則回復BA_ACC幀,若拒絕則回復BA_RJT幀。ABTS協議處理邏輯設計了四種差錯處理策略,分別為丟棄多個序列、丟棄單個序列、終止整個交換和具有無限緩沖的處理,可根據需求設置不同的策略應用在不同的場合。
序列發(fā)送管理和序列組幀模塊實現序列發(fā)送處理功能,將待發(fā)送數據以序列為單元進行打包。序列發(fā)送管理模塊收到待發(fā)送數據后,根據對應序列信息位為其分配序列資源,包括序列號(SEQ_ID)、序列計數(SEQ_CNT)和相應的緩存資源等,并建立序列狀態(tài)塊追蹤序列狀態(tài)。序列發(fā)送端支持命令序列、數據序列、狀態(tài)序列和服務序列四種類型序列的組幀。
序列接收管理和序列解析模塊實現序列接收處理功能,其核心是按照序列接收規(guī)則進行序列信息處理,包括序列緩存、序列類型識別、建立序列狀態(tài)塊、序列分類等。同時,序列接收端根據序列號和序列計數,可以對接收的序列進行重裝,從而支持亂序傳輸,也可以檢測序列丟失情況,在出現序列丟失時通知上層進行差錯處理。序列接收端同樣支持上述發(fā)送端四種類型序列的識別處理。
在交換管理模塊中定義了一個狀態(tài)/配置寄存器和一個交換狀態(tài)塊,其中配置寄存器包含了鏈路同步完成、響應超時、交換差錯、數據接收許、數據發(fā)送允許等狀態(tài)及標志,用戶可直接查詢接口狀態(tài)并對接口工作方式進行配置;交換狀態(tài)塊維護了當前交換處理狀態(tài)的信息,交換管理模塊據此對交換狀態(tài)進行追蹤,并采取相應的控制策略。
交換管理模塊對外接口包括與FC-4層用戶接口和FC-2層鏈路接口兩部分。其中,與FC-4層用戶的發(fā)送緩存接口和接收緩存接口用于交換管理模塊與上層用戶間原始應用數據和狀態(tài)的交換,而狀態(tài)/配置接口則用于工作狀態(tài)查詢及工作模式配置;與FC2層數據鏈路接口用于交換管理模塊與數據鏈路層之間的FC-AE-1553原始序列交換。
以NC模式為例說明交換管理模塊處理流程,該模式下交換管理模塊以總線NC單元的方式控制安排FC-AE-1553網絡數據傳輸,對網絡上其它總線單元進行管理。NC模式下交換處理流程如圖5所示。
由于NC是網絡上交換的發(fā)起者,因此發(fā)送的第一個序列只可能為服務序列或者命令序列,而命令序列又包含方式指令和非方式指令兩種模式,因此在處理流程設計時按照序列類型對流程分支進行了劃分。端口上電后,NC處于空閑狀態(tài),當上層用戶有序列發(fā)送請求時,開始發(fā)起交換,根據上層用戶請求類型,交換管理模塊分別進入三個分支[7],分別為服務序列處理分支、方式指令處理分支和數據交換處理分支。數據處理分支中,按照總線傳輸類型,又可分為NT到NC傳輸、NC到NT普通模式傳輸、NC到NT延遲突發(fā)模式傳輸和NT到NT傳輸。三個分支的處理流程設計說明如下:
1)服務序列處理分支:根據服務類型,NC模式下的服務發(fā)起請求為“注冊”(PLOGI)或“注銷”(LOGO)。注冊功能用于實現端口間各種協議參數的交換,如支持的服務類型、使用的差錯策略等,方便NC對鏈路進行管理;注銷功能則用于端口退出通信鏈路,釋放注冊所占用的資源。NC鏈路服務發(fā)起后,根據對方的回復情況(接受為LS_ACC回復,拒絕為LS_RJT回復)判斷注冊或注銷是否成功。
圖5 NC模式交換處理流程
2)方式指令處理分支:根據預定義的方式指令含義進行響應或動作,NC發(fā)送命令序列時應判斷該方式指令是否需要回復數據,當需要回復數據,則等待NT回復帶數據的狀態(tài)序列,當不需回復數據時判斷命令序列中“抑制”位,據此確定是否需等待NT回復狀態(tài)序列,所有等待過程超過一定時限或狀態(tài)反饋不正確時發(fā)起ABTS協議進行差錯處理[8];
3)數據交換處理分支:根據命令字中“NT突發(fā)數據傳輸請求”和“延遲NT突發(fā)數據傳輸請求”位的值,分別進入普通傳輸模式、突發(fā)數據傳輸模式和延遲突發(fā)數據傳輸模式。普通模式下若為非NT到NT傳輸,則需根據“發(fā)/收”(T/R*)位狀態(tài)確定交換的收發(fā)狀態(tài),分別進入相應收發(fā)操作流程,若為NT到NT傳輸,則向“發(fā)送NT”發(fā)送命令序列發(fā)起“原始交換”,并可在過程中監(jiān)測“響應交換”狀態(tài);突發(fā)數據傳輸模式用于大量數據的突發(fā)傳送,該模式下發(fā)送命令序列后,等待返回狀態(tài)序列在NT狀態(tài)反饋確認可支持突發(fā)傳輸后,發(fā)送數據序列,不斷重復直至數據發(fā)送完畢,期間若NT出現忙狀態(tài),則直接結束交換;延遲突發(fā)數據傳輸模式下,發(fā)送命令序列后立即發(fā)送第一個數據序列,后續(xù)流程與突發(fā)傳輸模式一致。所有交換等待過程超過一定時限或狀態(tài)反饋不正確則發(fā)起ABTS協議進行差錯處理,結束交換。
在FPGA平臺上對FC-AE-1553交換管理模塊IP核進行了開發(fā)、仿真和實現,采用兩塊XILINX公司ML507開發(fā)板搭建驗證系統,分別模擬NC和NT對模塊交換進行驗證[9]。IP核在XC5VFX70T FPGA中實現,SLICE占用率為63%,時鐘主頻為125 MHz,通過FPGA內部高速RocketIO進行串并轉換,最終通過光纖串行通信的傳輸速率達5 Gbps。
對系統通信過程中的協議實現情況進行驗證,其中NT向NC傳送數據實測波形如圖6所示(數據幀為3幀)。
圖6 交換驗證NC端波形圖
圖中,NC接收到上層用戶請求后發(fā)起交換并對命令序列進行解析,由于傳輸模式為NT到NC傳輸,因此進入交換流程中相應的數據處理分支。NC在發(fā)送命令序列后等待NT的狀態(tài)序列回復,一段時間后,收到NT的狀態(tài)序列,對序列中相關狀態(tài)位進行判斷,確認NT狀態(tài)正確后開始接收后續(xù)數據序列,直至接收完畢結束交換。
交換管理模塊IP核支持ABTS差錯恢復協議,在測試系統的通信過程中模擬鏈路中斷情況,對ABTS差錯恢復功能進行了驗證,實測波形如圖7所示。
圖7 ABTS差錯恢復波形
圖中,同樣是NT到NC傳輸,NC首先發(fā)起一個命令序列,此時由于鏈路故障,等待NT回復狀態(tài)序列發(fā)生超時,觸發(fā)了模塊ABTS差錯恢復功能。模塊采用終止整個交換的差錯處理策略,NC發(fā)送ABTS請求幀,要求NT終止當前交換,一段時間后,鏈路恢復正常,NC收到NT回復的ABTS應答幀,確認之前交換已經終止,ABTS協議完成。由于上一交換沒有成功,NC立刻重新發(fā)起交換,開始新的交換流程。
經驗證,總線交換管理模塊實現了基于ABTS的FC-AE-1553總線交換管理功能,支持各類復雜交換管理模式,總線光纖傳輸線速率達5 Gbps。采用NC到NT傳輸文件模式,交換過程中模擬三種數據包長,分別對模塊線速率、傳輸效率、誤碼率等關鍵性能指標進行了測試[10],結果如表1所示。
表1 交換管理模塊關鍵性能指標測試
從上表指標可以看出,模塊傳輸效率隨著交換數據長度和數據幀數的增大而提高,基于交換管理模塊的FC-AE-1553總線在傳輸速率、傳輸效率和誤碼率等指標上均遠優(yōu)于傳統1553總線。
本文分析了新一代航電FC-AE-1553總線的優(yōu)勢,基于FC-AE-1553總線交換模型的分析完成了核心交換管理模塊的原理設計和處理流程設計,基于FPGA硬件平臺設計實現了模塊IP核,并搭建系統驗證了FC-AE-1553總線數據交換功能和協議差錯處理功能,進行了關鍵性能指標測試。
經驗證,總線交換管理模塊實現了基于ABTS的FC-AE-1553總線交換管理功能,且支持各類復雜交換管理模式,支持NC和NT終端類型。模塊采用IP軟核實現方式,因此能夠方便地進行功能擴展和平臺移植。
驗證結果表明,本文提出的技術方案設計合理可行,設計的模塊集成度高,支持多種交換類型和交換模式,具有較強的通用性和可移植性,相對于傳統1553總線可靠性和傳輸速率大大提高,可用于現有1553總線的光纖升級和新型FC-AE-1553總線系統網絡的搭建。