您的位置 首页 模拟

一种SpaceWire节点控制器完成办法全面介绍

一种SpaceWire节点控制器实现方法全面介绍-随着空间探测领域的逐渐扩大,航天器上的载荷设备对系统的数据通信需求也相应的越来越高。同时星载电子设备产生和待处理的数据总量迅猛增长,对数据总线处理能力提出更高的要求。数据总线的速度、可靠性和灵活性直接影响航天器的整体性能。欧洲航天局(European Space Agency,ESA)为满足航空航天应用提出了一种专门用于空间高速数据传输的点对点串行总线标准SpaceWire[1]。它具有数据率高,便于扩展,方便重复利用的特点,有利于航天器、卫星快速整合总装,这为航天器和卫星载荷的设计带来极大方便,应用前景广阔。

0 导言

跟着空间勘探范畴的逐步扩展,航天器上的载荷设备对体系的数据通信需求也相应的越来越高。一起星载电子设备产生和待处理的数据总量迅猛增加,对数据总线处理才能提出更高的要求。数据总线的速度、可靠性和灵活性直接影响航天器的全体功用。欧洲航天局(European Space Agency,ESA)为满意航空航天运用提出了一种专门用于空间高速数据传输的点对点串行总线规范SpaceWire[1]。它具有数据率高,便于扩展,便利重复运用的特色,有利于航天器、卫星快速整合总装,这为航天器和卫星载荷的规划带来极大便利,运用远景宽广。

本文研讨该规范下节点操控器IP[2]的完结办法,经过FPGA进行原型验证,最终在专用集成芯片龙芯1E300中完结了该节点操控器,实践测验信号传输率可达200 Mb/s~260 Mb/s。

1 体系总体规划

1.1 体系结构框图

SpaceWire是一种点对点全双工串行数据传输协议,节点操控器在协议中首要担任处理数据包点对点传输问题。本文规划的SpaceWire IP核运用FIFO作为用户数据接口,并将数据发送和接纳缓存包括在内。体系首要功用包括节点装备、链路状况操控和数据收发功用,总体规划如图1所示。

一种SpaceWire节点操控器完结办法全面介绍

1.2 体系时钟域区分

本规划有必要运用到不同的时钟,体系时钟域的区分[3]是规划的要点之一。如图2所示,clk_sys是本规划中的频率最高的时钟域,同步体系操控器,并为体系供给守时功用。clk_main是来自上位机的时钟,同步发送缓存的写入和接纳缓存的读取操作。clk_tx指的是发送时钟域,是同步发送端对发送数据的相关操作。clk_rx指的是康复时钟域,是由链路数据进行时钟数据康复所得到的时钟,用来同步接纳端对康复数据的相关操作。依据SpaceWire协议,接纳端在接纳到首位数据曾经还没有产生康复时钟,而链路断开检测在首位数据接纳时就现已开端,这儿选用体系时钟进行链路断开检测。

一种SpaceWire节点操控器完结办法全面介绍

2 体系原理完结

2.1 体系状况机

SpaceWire进行数据通信前要求两头的节点先经过NULL字符和FCT字符交流完结链路树立进程,链路在运转进程中或许因为链路自动或被迫断开、数据传输过错等原因导致链路状况改变。链路运转的状况机如图3所示,图中实线标明链路初始化的进程,链路正确初始化后处于Run状况。在运用中,链路两头节点都能够被装备为自动或许被迫模式[4],有如下条件:

Link_Enabled=(Not[Link_Disabled])And

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

一种SpaceWire节点操控器完结办法全面介绍

2.2 发送端

链路在初始化进程中,或许发送NULL字符和FCT字符,链路从初始化到运转的各个状况转化中,需求不间断发送字符。SpaceWire协议规则的链路初始化速率为10 Mb/s,而运转速率可所以2 Mb/s~400 Mb/s,故要求发送时钟速率可切换,发送端发送的比特流在数据发送频率改变的时分坚持不间断,一种可用的时钟切换[5]电路图如图4所示。

一种SpaceWire节点操控器完结办法全面介绍

DFF_2和DFF_4确保clk_a和clk_b时钟挑选输出的改变都只产生在下降沿处,一起能够使得输出改变为某一时钟时,另一时钟的输出现已封闭,该办法可防止时钟切换时分产生毛刺。DFF_1和DFF_3别离加到and_1和and_3后边,防止sel、DFF_2输出和DFF_4输出的信号一起改变或许形成的DFF_2和DFF_4输出的亚稳态。

2.3 接纳端

SpaceWire链路层选用DS编码方案,选通信号伴跟着串行数据信号发送,接纳端简略地经过异或数据和选通信号能够提取出时钟信号。该办法将接纳误差(skew)裕量从传统的时钟、数据办法的0.5比特时刻提高到挨近1比特时刻,具有更好的颤动(jitter)容差。但因为接纳数据的时钟是由接纳的DS编码信号异或得到的,形成接纳器的数据时钟信号不同步,康复困难。

为完结数据时钟康复,一种办法是依据Xilinx FPGA,挑选选用可编程肯定推迟单元iodelay完结对DS异或后的信号履行指定的推迟,能够正确地康复出时钟,依据图5剖析DS信号的特色[6]后,得到一种更通用的办法:

DS编码如式(1)和式(2)界说:

发送端的逻辑公式为:

一种SpaceWire节点操控器完结办法全面介绍

式中D为数据信号,S为选通信号,CLK为数据时钟。依据DS信号改变的特色能够发现DS信号的每次转化有且只改换其间的1位信号,经过2次改换后则DS数据都将产生翻转,右图能够更清楚阐明这一现象。

一种SpaceWire节点操控器完结办法全面介绍

从图5可知,当且仅当时钟信号为上升沿时,data和strobe信号产生从同相至反相的跳变,如图5右半部分中右象限;同理,当且仅当时钟信号为下降沿时,data和strobe信号产生从反相至同相的跳变,如图5右半部分中左象限。依据上述剖析定论规划的DS数据时钟康复电路[7]如图6所示。

一种SpaceWire节点操控器完结办法全面介绍

图6中电路由异或门、锁存器、触发器构成,当时钟信号为上升沿时,同相状况的data数据将坚持不变,当时钟信号为下降沿时,反相状况的data数据将坚持不变,然后确保了后级触发器时钟跳变时,触发器数据信号的树立时刻。触发器输出的2位数据便是同步接纳的数据信号,输出至后级接纳模块进行处理。

2.4 数据缓存

依据SpaceWire字符层界说,协议链路或许传送5种字符和2种操控码,其格局如图7所示。

一种SpaceWire节点操控器完结办法全面介绍

因为最长的时刻操控码字符包括14比特位,本规划中发送方选用2组7比特位数据缓存完结数据格局的转化,选用DDR数据传输办法在时钟的上升沿和下降沿别离发送其间的一组缓存数据,如图8所示。在上次数据发送完结前的第二个时钟周期核算校验位,前一个时钟周期向该发送缓存填充待发送字符后进行数据发送。接纳方选用5对移位寄存器组,首要断定接纳字符的开始方位,在进行奇偶校验的一起,判别接纳的字符类型,并保存至接纳FIFO中。

一种SpaceWire节点操控器完结办法全面介绍

图7和图8中标识为“p”或下标为“p”的比特位标明该位为字符的校验位,标识为“c”或下标为“c”的比特位标明该位为字符的操控位,箭头标明字符中比特位在链路上传输的先后顺序。

2.5 流量操控机制

为防止因主机接纳缓存溢出而导致的数据丢掉,链路的一端(B端)向另一端(A端)发送FCT标明B端现已准备好,能够再接纳一定量的数据。

2.5.1 诺言量计数值

发送端要保护一个授权它可发送的N-Char数量的诺言计数值(Credit Count),详细如下。

ErrorReset状况下,诺言计数值为零,链路接口每接纳到一个FCT,诺言量计数值就加8[8],每发送一个N-Char,诺言计数值就减1。诺言计数值为零时将中止发送N-Char,但可持续发送L-Char,直到它再次接纳到FCT使诺言计数增加到8。

诺言量计数最大值依据接纳缓存的巨细设置(1个FCT对应接纳缓存中8个N-Char的存储空间),不超越56(即7个FCT)。当诺言计数值到达或现已挨近其最大值(即距最大值小于8)时又接纳到一个FCT,那么诺言计数值不会再增加,一起会经过标志报诺言额度过错。

2.5.2 未偿付计数值

链路接口要保护一个它预期接纳但未偿付的N-Char数量的计数值(Outstanding Count),即它经过发送FCT恳求要发送的数量,详细如下。

复位时,初始未偿付计数值为0,链路犯错时,未偿付计数值被保存并在下次重启时加载为初始值,每发送完一个FCT,未偿付计数值就加8,每接纳到一个N-Char,未偿付计数值就减1。未偿付计数值最大为56(即7个FCT)。除非未偿付计数器有余量多计8个未偿付N-Char,一起接纳缓存有包容这8个N-Char的空间,不然发送器不能发送FCT。

3 测验与验证

本体系FPGA选用Xilinx公司的Virtex 4系列 xc4vsx55作为主控芯片,运用Verilog言语编程[9]进行逻辑规划和验证,在FPGA上一起例化两个节点操控器,经过读写装备寄存器操控SpaceWire节点收发数据。从仿真成果可见,节点操控器完结了协议规则的链路初始化和数据传输功用,操控字符和数据在链路上的传输正确。

在专用集成芯片龙芯1E300中完结了该操控器,建立测验环境,选用StarDundee公司的规范测验设备SpaceWire链路剖析仪,与节点操控器芯片彼此传输数据,验证了数据传输进程中的同步性和准确性。链路剖析仪测验成果如图9所示,标明ASIC规划的节点操控器信号传输速率可达200 Mb/s,数据传输正常,满意协议规则的功用。

一种SpaceWire节点操控器完结办法全面介绍

4 结束语

SpaceWire作为航天范畴新式的高速总线规范之一,具有数据率高、接口简略、扩展便利等许多长处。本文提出的一种SpaceWire节点操控器完结办法处理了规划中多时钟域区分、数据时钟康复、时钟切换和流量操控方面的难点。该规划办法经FPGA仿真验证正确,在专用集成芯片中成功完结,该节点操控器的研制规划具有较强的工程实用性。

参考文献

[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]。北京:电子工业出版社,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星载高速总线规划与完结[J]。电子技术运用,2016,42(1):108-110,114.

[8] 赵云富,吴一帆,孙强,等.SpaceWire总线的流量操控机制研讨[J/OL]。微电子学与核算机,2016,33(1):1-5.

[9] 夏宇闻.Verilog数字体系规划(第4版)[M]。北京:北京航空航天大学出版社,2017.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/343246.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部