文獻(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.
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所示,。
圖中節(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)定義:
根據(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)。
從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中下方電路。
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ù)包,,與上述介紹的編解碼器模塊一致。
基于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ù)的讀改寫,。
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,可以得出傳輸速率為:
由此可以看出,,本設(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.