《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > SpaceWire高速總線節(jié)點(diǎn)控制器的設(shè)計(jì)與實(shí)現(xiàn)
SpaceWire高速總線節(jié)點(diǎn)控制器的設(shè)計(jì)與實(shí)現(xiàn)
2018年電子技術(shù)應(yīng)用第11期
柳 萌1,,2,,安軍社2,史毅龍1,,2,,江源源2,姜文奇3
1.中國(guó)科學(xué)院大學(xué),,北京100190;2.國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)綜合電子與信息技術(shù)實(shí)驗(yàn)室,,北京100190,; 3.龍芯中科技術(shù)有限公司,北京100095
摘要: 針對(duì)空間應(yīng)用中有效載荷對(duì)數(shù)據(jù)高速傳輸?shù)囊?,根?jù)SpaceWire(SpW)協(xié)議提出了一種SpaceWire節(jié)點(diǎn)控制器的設(shè)計(jì)方案,。使用Verilog可編程語(yǔ)言進(jìn)行邏輯設(shè)計(jì),實(shí)現(xiàn)了節(jié)點(diǎn)控制器IP,,以XC4VSX55 FPGA做原型驗(yàn)證,,驗(yàn)證了系統(tǒng)整體設(shè)計(jì)的可行性。在專(zhuān)用集成芯片龍芯1E300中實(shí)現(xiàn)了該知識(shí)產(chǎn)權(quán)核(Intellectual Property,,IP),,搭建測(cè)試環(huán)境,驗(yàn)證了數(shù)據(jù)傳輸過(guò)程中的同步性和準(zhǔn)確性,,ASIC實(shí)際測(cè)試結(jié)果表明設(shè)計(jì)的節(jié)點(diǎn)控制器信號(hào)傳輸速率可達(dá)200 Mb/s,,滿(mǎn)足協(xié)議規(guī)定的功能。
中圖分類(lèi)號(hào): TP336
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180529
中文引用格式: 柳萌,,安軍社,,史毅龍,等. SpaceWire高速總線節(jié)點(diǎn)控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,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 引言

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

    本文研究該標(biāo)準(zhǔn)下節(jié)點(diǎn)控制器IP[2]的實(shí)現(xiàn)方法,通過(guò)FPGA進(jìn)行原型驗(yàn)證,,最后在專(zhuān)用集成芯片龍芯1E300中實(shí)現(xiàn)了該節(jié)點(diǎn)控制器,,實(shí)際測(cè)試信號(hào)傳輸率可達(dá)200 Mb/s~260 Mb/s。

1 系統(tǒng)總體設(shè)計(jì)

1.1 系統(tǒng)結(jié)構(gòu)框圖

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

wdz1-t1.gif

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

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

wdz1-t2.gif

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

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

    SpaceWire進(jìn)行數(shù)據(jù)通信前要求兩端的節(jié)點(diǎn)先通過(guò)NULL字符和FCT字符交換完成鏈路建立過(guò)程,,鏈路在運(yùn)行過(guò)程中可能由于鏈路主動(dòng)或被動(dòng)斷開(kāi),、數(shù)據(jù)傳輸錯(cuò)誤等原因?qū)е骆溌窢顟B(tài)變化。鏈路運(yùn)行的狀態(tài)機(jī)如圖3所示,,圖中實(shí)線表示鏈路初始化的過(guò)程,,鏈路正確初始化后處于Run狀態(tài)。在應(yīng)用中,,鏈路兩端節(jié)點(diǎn)都可以被配置為主動(dòng)或者被動(dòng)模式[4],,有如下條件:

    Link_Enabled=(Not[Link_Disabled])And

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

wdz1-t3.gif

2.2 發(fā)送端

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

wdz1-t4.gif

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

2.3 接收端

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

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

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

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

     wdz1-gs1-2.gif

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

wdz1-t5.gif

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

wdz1-t6.gif

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

2.4 數(shù)據(jù)緩存

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

wdz1-t7.gif

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

wdz1-t8.gif

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

2.5 流量控制機(jī)制

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

2.5.1 信譽(yù)量計(jì)數(shù)值

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

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

    信譽(yù)量計(jì)數(shù)最大值根據(jù)接收緩存的大小設(shè)置(1個(gè)FCT對(duì)應(yīng)接收緩存中8個(gè)N-Char的存儲(chǔ)空間),,不超過(guò)56(即7個(gè)FCT)。當(dāng)信譽(yù)計(jì)數(shù)值達(dá)到或已經(jīng)接近其最大值(即距最大值小于8)時(shí)又接收到一個(gè)FCT,,那么信譽(yù)計(jì)數(shù)值不會(huì)再增長(zhǎng),,同時(shí)會(huì)通過(guò)標(biāo)志報(bào)信譽(yù)額度錯(cuò)誤。

2.5.2 未償付計(jì)數(shù)值

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

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

3 測(cè)試與驗(yàn)證

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

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

wdz1-t9.gif

4 結(jié)束語(yǔ)

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

參考文獻(xiàn)

[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時(shí)序設(shè)計(jì)[J/OL].微計(jì)算機(jī)信息,,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編程藝術(shù)[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] 閆夢(mèng)婷,安軍社,,龔泉銘.基于RMAP機(jī)制的SpaceWire星載高速總線設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2016,42(1):108-110,,114.

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

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




作者信息:

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

(1.中國(guó)科學(xué)院大學(xué),,北京100190;2.國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)綜合電子與信息技術(shù)實(shí)驗(yàn)室,,北京100190,;

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

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