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