《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于RMAP機(jī)制的SpaceWire星載高速總線設(shè)計(jì)與實(shí)現(xiàn)
基于RMAP機(jī)制的SpaceWire星載高速總線設(shè)計(jì)與實(shí)現(xiàn)
2016年電子技術(shù)應(yīng)用第1期
閆夢(mèng)婷1,2,,安軍社1,,龔泉銘1,2
1.中國(guó)科學(xué)院 空間科學(xué)與應(yīng)用研究中心,北京100190,;2.中國(guó)科學(xué)院大學(xué),,北京100190
摘要: 基于RMAP協(xié)議對(duì)SpaceWire高速總線進(jìn)行了架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)。首先給出了SpaceWire高速總線的整體設(shè)計(jì),;其次對(duì)SpaceWire編解碼器中的DS編碼進(jìn)行了優(yōu)化,;然后根據(jù)RMAP協(xié)議的基礎(chǔ)要求,設(shè)計(jì)了RMAP SpaceWire總線的工作流程與實(shí)現(xiàn)方法,;最后通過(guò)仿真平臺(tái)對(duì)該設(shè)計(jì)進(jìn)行仿真測(cè)試,。仿真測(cè)試表明:設(shè)計(jì)實(shí)現(xiàn)了RMAP SpaceWire高速總線的基礎(chǔ)功能,數(shù)據(jù)鏈路傳輸速度可以達(dá)到79.84 Mb/s,。
關(guān)鍵詞: SoaceWire RAMP DS編解碼 高速總線
中圖分類號(hào): TN95
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.01.028
中文引用格式: 閆夢(mèng)婷,,安軍社,龔泉銘. 基于RMAP機(jī)制的SpaceWire星載高速總線設(shè)計(jì)與實(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高速總線標(biāo)準(zhǔn)是ESA(European Space Agency)于2003年正式通過(guò)的一種總線標(biāo)準(zhǔn),。ESA基于IEEE 1355-1995和IEEE 1596.3(LVDS)兩個(gè)商用總線標(biāo)準(zhǔn),,并且根據(jù)航天應(yīng)用的特點(diǎn),在可靠性,、功耗等方面進(jìn)行了改進(jìn),,實(shí)現(xiàn)了一種串行,、高速、點(diǎn)對(duì)點(diǎn),、全雙工的專用于空間高速數(shù)據(jù)傳輸?shù)目偩€標(biāo)準(zhǔn),。該標(biāo)準(zhǔn)提供了一種統(tǒng)一用來(lái)連接傳感器、數(shù)據(jù)處理單元,、大容量存儲(chǔ)器的基礎(chǔ)架構(gòu),,具有很好的EMC特性,并且在錯(cuò)誤檢測(cè),、異常處理,、故障保護(hù)和故障恢復(fù)及時(shí)間確定性方面也做了相應(yīng)加強(qiáng)。使得SpaceWire能夠滿足新一代航天器電子系統(tǒng)對(duì)總線結(jié)構(gòu)的性能要求,,具有獨(dú)特優(yōu)勢(shì),。

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

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

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

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

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

jsj4-t1.gif

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

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

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

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

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

    jsj4-gs1-2.gif

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

jsj4-t2.gif

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

jsj4-t3.gif

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

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

3 SpaceWire路由器設(shè)計(jì)

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

jsj4-t4.gif

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

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

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

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

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

jsj4-t5.gif

4 仿真與總結(jié)

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

    jsj4-gs3.gif

jsj4-t6.gif

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

參考文獻(xiàn)

[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] 楊志,,李國(guó)軍,,李芳,等.SpaceWire星載網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)[J].宇航學(xué)報(bào),,2012,,33(2):200-209.

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

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