《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于RMAP機制的SpaceWire星載高速總線設(shè)計與實現(xiàn)
基于RMAP機制的SpaceWire星載高速總線設(shè)計與實現(xiàn)
2016年電子技術(shù)應(yīng)用第1期
閆夢婷1,2,安軍社1,龔泉銘1,2
1.中國科學(xué)院 空間科學(xué)與應(yīng)用研究中心,北京100190;2.中國科學(xué)院大學(xué),北京100190
摘要: 基于RMAP協(xié)議對SpaceWire高速總線進行了架構(gòu)設(shè)計與實現(xiàn)。首先給出了SpaceWire高速總線的整體設(shè)計;其次對SpaceWire編解碼器中的DS編碼進行了優(yōu)化;然后根據(jù)RMAP協(xié)議的基礎(chǔ)要求,設(shè)計了RMAP SpaceWire總線的工作流程與實現(xiàn)方法;最后通過仿真平臺對該設(shè)計進行仿真測試。仿真測試表明:設(shè)計實現(xiàn)了RMAP SpaceWire高速總線的基礎(chǔ)功能,數(shù)據(jù)鏈路傳輸速度可以達到79.84 Mb/s。
關(guān)鍵詞: SoaceWire RAMP DS編解碼 高速總線
中圖分類號: TN95
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.028
中文引用格式: 閆夢婷,安軍社,龔泉銘. 基于RMAP機制的SpaceWire星載高速總線設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(1):108-110,114.
英文引用格式: Yan Mengting,An Junshe,Gong Quanming. Design and implement of SpaceWire on-board high speed bus based on RMAP protocol[J].Application of Electronic Technique,2016,42(1):108-110,114.
Design and implement of SpaceWire on-board high speed bus based on RMAP protocol
Yan Mengting1,2,An Junshe1,Gong Quanming1,2
1.Center for Space Science and Applied Research,Chinese Academy of Science,Beijing 100190,China; 2.University of Chinese Academy Sciences,Beijing 100190,China
Abstract: The structure of SpaceWire high speed bus is designed and realized base on RMAP protocol. The basic design of SpaceWire high speed bus is given first. Method is given for the realization of the functions of encoder and decoder. The working process and realization of RMAP SpaceWire bus is designed according to basic requirements of RMAP protocol. In the final part, the design is tested on a simulation platform. The result shows that our design realize the basic functions of RMAP SpaceWire high speed bus. The transmission speed of the data link can reach 79.84 Mb/s.
Key words : SpaceWire;RMAP;DS(Data-Strobe) encode and decode;high speed bus

0 引言

    SpaceWire高速總線標準是ESA(European Space Agency)于2003年正式通過的一種總線標準。ESA基于IEEE 1355-1995和IEEE 1596.3(LVDS)兩個商用總線標準,并且根據(jù)航天應(yīng)用的特點,在可靠性、功耗等方面進行了改進,實現(xiàn)了一種串行、高速、點對點、全雙工的專用于空間高速數(shù)據(jù)傳輸?shù)目偩€標準。該標準提供了一種統(tǒng)一用來連接傳感器、數(shù)據(jù)處理單元、大容量存儲器的基礎(chǔ)架構(gòu),具有很好的EMC特性,并且在錯誤檢測、異常處理、故障保護和故障恢復(fù)及時間確定性方面也做了相應(yīng)加強。使得SpaceWire能夠滿足新一代航天器電子系統(tǒng)對總線結(jié)構(gòu)的性能要求,具有獨特優(yōu)勢。

    SpaceWire由節(jié)點、鏈路和路由3部分組成,在基礎(chǔ)協(xié)議簇中對這3個重要單元進行了定義和功能設(shè)計,目前已有成熟的IP核、軟件支持和測試設(shè)備等研究成果,使得SpaceWire應(yīng)用于多個空間任務(wù)中。SpaceWire能夠在物理層和數(shù)據(jù)鏈接層滿足空間航天器中標準化的高速率網(wǎng)絡(luò)交互需求,SpaceWire工作組目前致力于高層協(xié)議的研究,擬定首個SpaceWire高層協(xié)議,即RMAP(Remote Memory Access Protocol)。

    國際上擁有SpaceWire協(xié)議IP核產(chǎn)品的公司與科研機構(gòu)主要包括STAR-dundee和ESA等,相關(guān)產(chǎn)品主要包括Codec和Router IP核,不同型號FPGA的實現(xiàn)性能則差異明顯,GRSPW2 IP核集成的Codec模塊在Xilinx基于SRAM的Virtex2系列FPGA中實現(xiàn)的收發(fā)數(shù)據(jù)率可達200 Mb/s,但在Actel公司的反熔絲RTAX系列FPGA實現(xiàn)性能僅為100 Mb/s[1]。目前基于flash技術(shù)FPGA可實現(xiàn)的性能為180 Mb/s,該性能指標為ESA的Codec IP核在速度等級為-2的ProASIC3 系列FPGA中的實現(xiàn)結(jié)果[2]

    目前我國已對SpaceWire開展研究并取得一定成果。文獻[3]完成了SpaceWire鏈路接口IP核和SpaceWire與PCI總線之間的接口卡設(shè)計,SpaceWire鏈路接口工作速度可達100 Mb/s。文獻[4-5]對SpaceWire在運載火箭中的應(yīng)用以及實時分布式中斷系統(tǒng)設(shè)計進行了研究。文獻[6]主要對SpaceWire CODEC IP核進行了設(shè)計,鏈路速度可達80 Mb/s。本文在SpaceWire節(jié)點、鏈路和路由3個重要單元的基礎(chǔ)上,設(shè)計了基于RMAP的SpaceWire路由工作機制。為SpaceWire總線中各節(jié)點間的功能提供了標準化工作機制。

1 SpaceWire總線整體架構(gòu)設(shè)計

    SpaceWire總線網(wǎng)絡(luò)由節(jié)點、鏈路和路由器三種基本單元組成。SpaceWire節(jié)點是指傳輸包的流出設(shè)備或者流向設(shè)備,一般是處理器、存儲單元、傳感器或連接在SpaceWire網(wǎng)絡(luò)上的其它單元。SpaceWire鏈路是指傳送數(shù)據(jù)包的傳輸路徑,連接在各個節(jié)點之間,數(shù)據(jù)包通過鏈路進行傳輸通信。SpaceWire路由則實現(xiàn)了節(jié)點通過鏈路進行數(shù)據(jù)交換機制。本設(shè)計中基于RMAP高層協(xié)議的SpaceWire總線整體架構(gòu)如圖1所示。

jsj4-t1.gif

    圖中節(jié)點(Note)、鏈路(Link)和路由器(Router)是構(gòu)成SpaceWire總線的基本單元。節(jié)點用于連接外接設(shè)備和總線,節(jié)點模塊包括RMAP外設(shè)控制模塊(Ctr_RMAP)和編解碼器模塊(CODEC)。外接設(shè)備數(shù)據(jù)接口連接到節(jié)點中RMAP外設(shè)控制模塊里的FIFO(First-In-First-Out)中,數(shù)據(jù)經(jīng)過RMAP外設(shè)控制模塊處理為符合RMAP傳輸要求的數(shù)據(jù)包后,通過編解碼器進行編碼,鏈路傳輸至SpaceWire總線路由器。圖1中內(nèi)部包含8個編解碼器,編解碼器接收到數(shù)據(jù)包后,通過接收模塊(Re_part)進行譯碼,然后通過RMAP路由器進行路由,送至目的地址,通過目的地址接口的編解碼器進行編碼,輸出總線路由器。編解碼器同時在節(jié)點和路由器中調(diào)用,主要包括接收模塊、發(fā)送模塊以及控制模塊。接收模塊實現(xiàn)接收數(shù)據(jù)包及譯碼功能,發(fā)送模塊實現(xiàn)發(fā)送數(shù)據(jù)包及編碼功能??刂颇K則實現(xiàn)了編解碼器執(zhí)行收發(fā)數(shù)據(jù)包功能的狀態(tài)機。

2 SpaceWire編解碼器優(yōu)化設(shè)計

    SpaceWire基礎(chǔ)協(xié)議定義了信號層、字符層和交換層,這幾個低層協(xié)議定義的功能由編解碼器實現(xiàn)。SpaceWire總線的信號層定義了SpaceWire總線中傳輸信號的電壓水平、噪聲幅度和編碼方式。指定采用低壓差分信號(LVDS)作為信令技術(shù),這是由于LVDS是一種高速數(shù)據(jù)傳輸、省電、抑制噪聲、成本低以及可以采用較高集成度的技術(shù),能夠滿足供電電流低、功率低的要求,有助于降低系統(tǒng)成本。

2.1 DS解碼電路的優(yōu)化設(shè)計

    SpaceWire總線的信號編碼采用DS(Data-Strobe)編碼。DS編碼如式(1)和式(2)定義:

    jsj4-gs1-2.gif

    根據(jù)上述公式,搭建門電路時若用簡單的組合邏輯實現(xiàn)異或,容易產(chǎn)生競爭冒險,導(dǎo)致接收到的數(shù)據(jù)異常。為了對該現(xiàn)象進行改進,探討DS信號變化的內(nèi)在規(guī)律。從圖2中左圖可見,DS信號的每次轉(zhuǎn)換有且只變換其中的1位信號,通過2次變換后DS數(shù)據(jù)都將發(fā)生翻轉(zhuǎn)。

jsj4-t2.gif

    從DS編碼規(guī)律可知,有且只有當時鐘信號為上升沿時,D和S信號發(fā)生從同相至反相的跳變;同理,有且只有當時鐘信號為下降沿時,D和S信號發(fā)生從反相至同相的跳變。根據(jù)上述分析結(jié)論設(shè)計的DS數(shù)據(jù)時鐘恢復(fù)電路如圖3所示。圖3電路是由異或門、鎖存器以及觸發(fā)器構(gòu)成。當時鐘信號為上升沿時,同相狀態(tài)的data數(shù)據(jù)將保持不變,如圖3中上方電路;當時鐘信號為下降沿時,反相狀態(tài)的data數(shù)據(jù)將保持不變,如圖3中下方電路。

jsj4-t3.gif

2.2 SpaceWire的數(shù)據(jù)字符與控制字符

    SpaceWire總線標準的字符層定義了數(shù)據(jù)字符、控制字符和控制碼、奇偶校驗以及時間碼等內(nèi)容,此外為了更好地支持路由和網(wǎng)絡(luò)協(xié)議,還提供了Time-Code來支持在網(wǎng)絡(luò)層傳播系統(tǒng)時間。字符層定義有數(shù)據(jù)字符和控制字符。數(shù)據(jù)字符包含8位有效數(shù)據(jù)位,一位奇偶校驗位、一位為0的標志位??刂谱址?個,分別是FCT、EOP、EEP和ESC,編碼由4個位構(gòu)成,包含一位奇偶校驗位,一位為1的標志位和兩位控制數(shù)據(jù)。協(xié)議中還有兩個重要的控制碼NULL和Time-Code,其中NULL是由控制字符ESC加上FCT組成的。當鏈接不傳送數(shù)據(jù)或控制字符時,SpaceWire端口通過傳送NULL字符維持鏈路連接。

3 SpaceWire路由器設(shè)計

    本設(shè)計中的8口基于RMAP的SpaceWire路由器如圖4所示,8個編解碼器用于接收和發(fā)送數(shù)據(jù)包,與上述介紹的編解碼器模塊一致。

jsj4-t4.gif

    基于RMAP的SpaceWire路由器中核心模塊為RMAP路由控制器,路由矩陣實現(xiàn)了各個接口之間的鏈路搭建。RMAP路由管理器實現(xiàn)功能控制和工作協(xié)調(diào),路由表用于地址索引,Time-Code管理模塊用于Time-Code碼的廣播,減少時間誤差。配置端口模塊用于實現(xiàn)對路由表配置等工作。SpaceWire的路由地址表用于配合邏輯地址的索引,使用路徑地址來表示目的地址時,目的地址由一系列路由器的輸出端口標識符組成,通過這一系列路由標識符來決定包在網(wǎng)絡(luò)中的傳播路徑,將包從發(fā)送端傳輸?shù)侥康牡刂贰?/p>

    RMAP協(xié)議提供了一個標準化的方案,使得一個SpaceWire節(jié)點能夠?qū)α硪粋€SpaceWire節(jié)點進行讀寫操作、傳輸數(shù)據(jù)。協(xié)議中包含3種操作,即寫操作、讀操作以及讀改寫操作。

    寫操作包括非數(shù)據(jù)校驗非應(yīng)答寫、非數(shù)據(jù)校驗應(yīng)答寫、數(shù)據(jù)校驗非應(yīng)答寫、數(shù)據(jù)校驗應(yīng)答寫4種不同的寫操作。數(shù)據(jù)校驗類寫操作為了實現(xiàn)對數(shù)據(jù)的檢查校驗,需要在寫操作之前在目的節(jié)點將數(shù)據(jù)緩存。但由于存儲單元數(shù)量有限,無法滿足大量的緩存需求,因此此類寫操作應(yīng)該用于相對短的數(shù)據(jù)。非數(shù)據(jù)校驗可用于數(shù)據(jù)量較長的寫操作,目的節(jié)點接到寫操作指令后立即執(zhí)行寫數(shù)據(jù)的動作,無需緩存數(shù)據(jù)進行校驗。

    讀操作機制提供了一個策略給源節(jié)點,源節(jié)點根據(jù)該策略去讀取目的節(jié)點存儲區(qū)域內(nèi)的一個或者多個字節(jié)的數(shù)據(jù)。讀取的數(shù)據(jù)將被封裝在一個數(shù)據(jù)包中返回到源節(jié)點。當它到達源節(jié)點時,源節(jié)點用戶將從數(shù)據(jù)包中得到所讀取的數(shù)據(jù)。

    讀改寫指令讀取一個寄存器或者存儲器的數(shù)據(jù),返回它的值,并對寄存器寫入一個新的值,新的值被確定在指令中。RMAP讀修改寫操作的發(fā)起方能夠?qū)⒕W(wǎng)絡(luò)中其它節(jié)點指定存儲區(qū)域的數(shù)據(jù)讀出,并進行修改后重新寫入該存儲區(qū)。1次最大可實現(xiàn)4 B數(shù)據(jù)的讀改寫。

jsj4-t5.gif

4 仿真與總結(jié)

    在Modelsim6.2g下,通過Xilinx Virtex-4 FPGA開發(fā)平臺上搭建仿真平臺,對SpaceWire總線進行仿真測試,波形如圖6所示。圖中顯示優(yōu)化后的DS編碼波形圖,D和S信號能夠精確跳變實現(xiàn)DS編解碼功能。通過仿真波形可以看出,RMAP SpaceWire總線在工作時,能夠進行連續(xù)大數(shù)據(jù)量的時間碼與數(shù)據(jù)包收發(fā),運行正常。數(shù)據(jù)發(fā)送的起始時間Tstart與接收完成時間Tend分別為40 μs和6 581 μs,可以得出傳輸速率為:

    jsj4-gs3.gif

jsj4-t6.gif

    由此可以看出,本設(shè)計基于RMAP這一先進的高層通信協(xié)議設(shè)計實現(xiàn)的SpaceWire總線平臺能夠完成數(shù)據(jù)包的路由通信,傳輸速率達到高速總線的使用需求。

參考文獻

[1] WORSFOLD P.Evolution of the MARC SpaceWire and power disstribution architecture from concept to tested hardware[C].International SpaceWire Conference,2010.

[2] WALKER P.IEEE 1394 compared with SpaceWire.4Links Ltd.,Milton Keynes,2004.

[3] Asaf Baron.Benchmarking SpaceWire Networks[C].International SpaceWire Conference,2007.

[4] Philippe Fourtier.Simulation of a SpaceWire Network[C].International SpaceWire Conference,2010.

[5] WOLFRAM K D.A new radiation-hardened satellite on board LAN based on IEEE Std 1394,AIAA 2004-5869,2004.

[6] 楊志,李國軍,李芳,等.SpaceWire星載網(wǎng)絡(luò)通信協(xié)議設(shè)計[J].宇航學(xué)報,2012,33(2):200-209.

[7] 田園,張杰.基于SpaceWire的鏈路狀態(tài)算法研究與設(shè)計[J].計算機工程,2011,37(23):113-115.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。