《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > SpaceWire高速總線節(jié)點控制器的設計與實現(xiàn)
SpaceWire高速總線節(jié)點控制器的設計與實現(xiàn)
2018年電子技術應用第11期
柳 萌1,2,安軍社2,史毅龍1,2,江源源2,姜文奇3
1.中國科學院大學,北京100190;2.國家空間科學中心 復雜航天系統(tǒng)綜合電子與信息技術實驗室,北京100190; 3.龍芯中科技術有限公司,北京100095
摘要: 針對空間應用中有效載荷對數(shù)據高速傳輸?shù)囊螅鶕paceWire(SpW)協(xié)議提出了一種SpaceWire節(jié)點控制器的設計方案。使用Verilog可編程語言進行邏輯設計,實現(xiàn)了節(jié)點控制器IP,以XC4VSX55 FPGA做原型驗證,驗證了系統(tǒng)整體設計的可行性。在專用集成芯片龍芯1E300中實現(xiàn)了該知識產權核(Intellectual Property,IP),搭建測試環(huán)境,驗證了數(shù)據傳輸過程中的同步性和準確性,ASIC實際測試結果表明設計的節(jié)點控制器信號傳輸速率可達200 Mb/s,滿足協(xié)議規(guī)定的功能。
中圖分類號: TP336
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.180529
中文引用格式: 柳萌,安軍社,史毅龍,等. SpaceWire高速總線節(jié)點控制器的設計與實現(xiàn)[J].電子技術應用,2018,44(11):1-4.
英文引用格式: Liu Meng,An Junshe,Shi Yilong,et al. The design and implementation of SpaceWire high speed bus interface controller[J]. Application of Electronic Technique,2018,44(11):1-4.
The design and implementation of SpaceWire high speed bus interface controller
Liu Meng1,2,An Junshe2,Shi Yilong1,2,Jiang Yuanyuan2,Jiang Wenqi3
1.University of Chinese Academy of Science,Beijing 100190,China; 2.National Space Science Center, Key Laboratory of Integrated Avionics and Information Tecnology for Complex Aerospace Systems, Beijing 100190,China; 3.Loongson Technology Corporation Limited,BeiJing 100095,China
Abstract: In view of the requirement of high-speed transmission of payload data in space application, a design scheme of SpaceWire interface controller is proposed according to the SpaceWire protocol. The logic is designed by Verilog programming language, and the interface controller IP is implemented. The prototype is verified by XC4VSX55 FPGA, and the feasibility of the whole design is verified. The IP is implemented in the ASIC LoongSon 1E300. The testing environment is setup, and the synchronization and accuracy of the data transmission process is verified. The actual test results of the ASIC show that the interface′s signaling rates can reach 200 Mb/s, which satisfies the functions stipulated by the protocol.
Key words : SpaceWire;interface controller;Codec;high-speed data transmission

0 引言

    隨著空間探測領域的逐漸擴大,航天器上的載荷設備對系統(tǒng)的數(shù)據通信需求也相應的越來越高。同時星載電子設備產生和待處理的數(shù)據總量迅猛增長,對數(shù)據總線處理能力提出更高的要求。數(shù)據總線的速度、可靠性和靈活性直接影響航天器的整體性能。歐洲航天局(European Space Agency,ESA)為滿足航空航天應用提出了一種專門用于空間高速數(shù)據傳輸的點對點串行總線標準SpaceWire[1]。它具有數(shù)據率高,便于擴展,方便重復利用的特點,有利于航天器、衛(wèi)星快速整合總裝,這為航天器和衛(wèi)星載荷的設計帶來極大方便,應用前景廣闊。

    本文研究該標準下節(jié)點控制器IP[2]的實現(xiàn)方法,通過FPGA進行原型驗證,最后在專用集成芯片龍芯1E300中實現(xiàn)了該節(jié)點控制器,實際測試信號傳輸率可達200 Mb/s~260 Mb/s。

1 系統(tǒng)總體設計

1.1 系統(tǒng)結構框圖

    SpaceWire是一種點對點全雙工串行數(shù)據傳輸協(xié)議,節(jié)點控制器在協(xié)議中主要負責解決數(shù)據包點對點傳輸問題。本文設計的SpaceWire IP核使用FIFO作為用戶數(shù)據接口,并將數(shù)據發(fā)送和接收緩存包括在內。系統(tǒng)主要功能包括節(jié)點配置、鏈路狀態(tài)控制和數(shù)據收發(fā)功能,總體設計如圖1所示。

wdz1-t1.gif

1.2 系統(tǒng)時鐘域劃分

    本設計必須使用到不同的時鐘,系統(tǒng)時鐘域的劃分[3]是設計的重點之一。如圖2所示,clk_sys是本設計中的頻率最高的時鐘域,同步系統(tǒng)控制器,并為系統(tǒng)提供定時功能。clk_main是來自上位機的時鐘,同步發(fā)送緩存的寫入和接收緩存的讀取操作。clk_tx指的是發(fā)送時鐘域,是同步發(fā)送端對發(fā)送數(shù)據的相關操作。clk_rx指的是恢復時鐘域,是由鏈路數(shù)據進行時鐘數(shù)據恢復所得到的時鐘,用來同步接收端對恢復數(shù)據的相關操作。根據SpaceWire協(xié)議,接收端在接收到首位數(shù)據以前還沒有產生恢復時鐘,而鏈路斷開檢測在首位數(shù)據接收時就已經開始,這里采用系統(tǒng)時鐘進行鏈路斷開檢測。

wdz1-t2.gif

2 系統(tǒng)原理實現(xiàn)

2.1 系統(tǒng)狀態(tài)機

    SpaceWire進行數(shù)據通信前要求兩端的節(jié)點先通過NULL字符和FCT字符交換完成鏈路建立過程,鏈路在運行過程中可能由于鏈路主動或被動斷開、數(shù)據傳輸錯誤等原因導致鏈路狀態(tài)變化。鏈路運行的狀態(tài)機如圖3所示,圖中實線表示鏈路初始化的過程,鏈路正確初始化后處于Run狀態(tài)。在應用中,鏈路兩端節(jié)點都可以被配置為主動或者被動模式[4],有如下條件:

    Link_Enabled=(Not[Link_Disabled])And

    ([LinkStart] Or ([AutoStart] And gotNull))

wdz1-t3.gif

2.2 發(fā)送端

    鏈路在初始化過程中,可能發(fā)送NULL字符和FCT字符,鏈路從初始化到運行的各個狀態(tài)轉換中,需要不間斷發(fā)送字符。SpaceWire協(xié)議規(guī)定的鏈路初始化速率為10 Mb/s,而運行速率可以是2 Mb/s~400 Mb/s,故要求發(fā)送時鐘速率可切換,發(fā)送端發(fā)送的比特流在數(shù)據發(fā)送頻率變化的時候保持不間斷,一種可用的時鐘切換[5]電路圖如圖4所示。

wdz1-t4.gif

    DFF_2和DFF_4保證clk_a和clk_b時鐘選擇輸出的變化都只發(fā)生在下降沿處,同時可以使得輸出變化為某一時鐘時,另一時鐘的輸出已經關閉,該方法可避免時鐘切換時候產生毛刺。DFF_1和DFF_3分別加到and_1和and_3后面,防止sel、DFF_2輸出和DFF_4輸出的信號同時變化可能造成的DFF_2和DFF_4輸出的亞穩(wěn)態(tài)。

2.3 接收端

    SpaceWire鏈路層采用DS編碼方案,選通信號伴隨著串行數(shù)據信號發(fā)送,接收端簡單地通過異或數(shù)據和選通信號可以提取出時鐘信號。該方法將接收偏差(skew)裕量從傳統(tǒng)的時鐘、數(shù)據方式的0.5比特時間提高到接近1比特時間,具有更好的抖動(jitter)容差。但由于接收數(shù)據的時鐘是由接收的DS編碼信號異或得到的,造成接收器的數(shù)據時鐘信號不同步,恢復困難。

    為實現(xiàn)數(shù)據時鐘恢復,一種方法是基于Xilinx FPGA,選擇采用可編程絕對延遲單元iodelay實現(xiàn)對DS異或后的信號執(zhí)行指定的延遲,可以正確地恢復出時鐘,根據圖5分析DS信號的特點[6]后,得到一種更通用的方法:

    DS編碼如式(1)和式(2)定義:

    發(fā)送端的邏輯公式為:

     wdz1-gs1-2.gif

式中D為數(shù)據信號,S為選通信號,CLK為數(shù)據時鐘。根據DS信號變化的特點可以發(fā)現(xiàn)DS信號的每次轉換有且只變換其中的1位信號,通過2次變換后則DS數(shù)據都將發(fā)生翻轉,右圖能夠更清楚說明這一現(xiàn)象。

wdz1-t5.gif

    從圖5可知,當且僅當時鐘信號為上升沿時,data和strobe信號發(fā)生從同相至反相的跳變,如圖5右半部分中右象限;同理,當且僅當時鐘信號為下降沿時,data和strobe信號發(fā)生從反相至同相的跳變,如圖5右半部分中左象限。根據上述分析結論設計的DS數(shù)據時鐘恢復電路[7]如圖6所示。 

wdz1-t6.gif

    圖6中電路由異或門、鎖存器、觸發(fā)器構成,當時鐘信號為上升沿時,同相狀態(tài)的data數(shù)據將保持不變,當時鐘信號為下降沿時,反相狀態(tài)的data數(shù)據將保持不變,從而保證了后級觸發(fā)器時鐘跳變時,觸發(fā)器數(shù)據信號的建立時間。觸發(fā)器輸出的2位數(shù)據即是同步接收的數(shù)據信號,輸出至后級接收模塊進行處理。

2.4 數(shù)據緩存

    根據SpaceWire字符層定義,協(xié)議鏈路可能傳送5種字符和2種控制碼,其格式如圖7所示。

wdz1-t7.gif

    由于最長的時間控制碼字符包含14比特位,本設計中發(fā)送方采用2組7比特位數(shù)據緩存完成數(shù)據格式的轉換,采用DDR數(shù)據傳輸方式在時鐘的上升沿和下降沿分別發(fā)送其中的一組緩存數(shù)據,如圖8所示。在上次數(shù)據發(fā)送完成前的第二個時鐘周期計算校驗位,前一個時鐘周期向該發(fā)送緩存填充待發(fā)送字符后進行數(shù)據發(fā)送。接收方采用5對移位寄存器組,首先判定接收字符的起始位置,在進行奇偶校驗的同時,判別接收的字符類型,并保存至接收FIFO中。

wdz1-t8.gif

    圖7和圖8中標識為“p”或下標為“p”的比特位表示該位為字符的校驗位,標識為“c”或下標為“c”的比特位表示該位為字符的控制位,箭頭表示字符中比特位在鏈路上傳輸?shù)南群箜樞颉?/p>

2.5 流量控制機制

    為避免因主機接收緩存溢出而導致的數(shù)據丟失,鏈路的一端(B端)向另一端(A端)發(fā)送FCT表示B端已經準備好,可以再接收一定量的數(shù)據。

2.5.1 信譽量計數(shù)值

    發(fā)送端要維護一個授權它可發(fā)送的N-Char數(shù)量的信譽計數(shù)值(Credit Count),具體如下。

    ErrorReset狀態(tài)下,信譽計數(shù)值為零,鏈路接口每接收到一個FCT,信譽量計數(shù)值就加8[8],每發(fā)送一個N-Char,信譽計數(shù)值就減1。信譽計數(shù)值為零時將停止發(fā)送N-Char,但可繼續(xù)發(fā)送L-Char,直到它再次接收到FCT使信譽計數(shù)增長到8。

    信譽量計數(shù)最大值根據接收緩存的大小設置(1個FCT對應接收緩存中8個N-Char的存儲空間),不超過56(即7個FCT)。當信譽計數(shù)值達到或已經接近其最大值(即距最大值小于8)時又接收到一個FCT,那么信譽計數(shù)值不會再增長,同時會通過標志報信譽額度錯誤。

2.5.2 未償付計數(shù)值

    鏈路接口要維護一個它預期接收但未償付的N-Char數(shù)量的計數(shù)值(Outstanding Count),即它通過發(fā)送FCT請求要發(fā)送的數(shù)量,具體如下。

    復位時,初始未償付計數(shù)值為0,鏈路出錯時,未償付計數(shù)值被保存并在下次重啟時加載為初始值,每發(fā)送完一個FCT,未償付計數(shù)值就加8,每接收到一個N-Char,未償付計數(shù)值就減1。未償付計數(shù)值最大為56(即7個FCT)。除非未償付計數(shù)器有余量多計8個未償付N-Char,同時接收緩存有容納這8個N-Char的空間,否則發(fā)送器不能發(fā)送FCT。

3 測試與驗證

    本系統(tǒng)FPGA選用Xilinx公司的Virtex 4系列 xc4vsx55作為主控芯片,使用Verilog語言編程[9]進行邏輯設計和驗證,在FPGA上同時例化兩個節(jié)點控制器,通過讀寫配置寄存器控制SpaceWire節(jié)點收發(fā)數(shù)據。從仿真結果可見,節(jié)點控制器實現(xiàn)了協(xié)議規(guī)定的鏈路初始化和數(shù)據傳輸功能,控制字符和數(shù)據在鏈路上的傳輸正確。

    在專用集成芯片龍芯1E300中實現(xiàn)了該控制器,搭建測試環(huán)境,采用StarDundee公司的標準測試設備SpaceWire鏈路分析儀,與節(jié)點控制器芯片相互傳輸數(shù)據,驗證了數(shù)據傳輸過程中的同步性和準確性。鏈路分析儀測試結果如圖9所示,表明ASIC設計的節(jié)點控制器信號傳輸速率可達200 Mb/s,數(shù)據傳輸正常,滿足協(xié)議規(guī)定的功能。

wdz1-t9.gif

4 結束語

    SpaceWire作為航天領域新興的高速總線標準之一,具有數(shù)據率高、接口簡單、擴展方便等諸多優(yōu)點。本文提出的一種SpaceWire節(jié)點控制器實現(xiàn)方法解決了設計中多時鐘域劃分、數(shù)據時鐘恢復、時鐘切換和流量控制方面的難點。該設計方法經FPGA仿真驗證正確,在專用集成芯片中成功實現(xiàn),該節(jié)點控制器的研發(fā)設計具有較強的工程實用性。

參考文獻

[1] ECSS,ECSS-E-ST-50-12C.SpaceWire-links,nodes,routers and networks[S].Noordwijk,The Netherlands:ESA-ESTEC Requirements & Standards Division,2003.

[2] JULIUSSON D.The swift codec development[C].Space-Wire-2013 Proceedings of the 5th International SpaceWire Conference.Gothenburg,Sweden:Space Technology Centre,University of Dundee,2013:316-318.

[3] 唐萍,李慧軍.SpaceWire Codec接收端FPGA時序設計[J/OL].微計算機信息,2009,25(2):178-179,198.

[4] CHRIS MCCLEMENTS,STEVE PARKES. SpaceWire standard:low speed signalling rates[C].SpaceWire-2008 Proceedings of the 2nd International SpaceWire Conference.Nara,Japan:Space Technology Centre,University of Dundee,2008:41-44.

[5] 魏家明.Verilog編程藝術[M].北京:電子工業(yè)出版社,2014.

[6] NOMACHI M,ISHII S,KURODA Y,et al. Race condition free SpaceWire decoder for FPGA[C].SpaceWire-2010 Proceedings of the 3rd International SpaceWire Conference.St.Petersburg,Russia:Space Technology Centre,University of Dundee,2010:173-175.

[7] 閆夢婷,安軍社,龔泉銘.基于RMAP機制的SpaceWire星載高速總線設計與實現(xiàn)[J].電子技術應用,2016,42(1):108-110,114.

[8] 趙云富,吳一帆,孫強,等.SpaceWire總線的流量控制機制研究[J/OL].微電子學與計算機,2016,33(1):1-5.

[9] 夏宇聞.Verilog數(shù)字系統(tǒng)設計(第4版)[M].北京:北京航空航天大學出版社,2017.




作者信息:

柳  萌1,2,安軍社2,史毅龍1,2,江源源2,姜文奇3

(1.中國科學院大學,北京100190;2.國家空間科學中心 復雜航天系統(tǒng)綜合電子與信息技術實驗室,北京100190;

3.龍芯中科技術有限公司,北京100095)

此內容為AET網站原創(chuàng),未經授權禁止轉載。