4.3.3 SpaceWire总线

4.3.3 SpaceWire总线

4.3.3.1 SpaceWire总线简述

未来航天器对数据总线的传输速率、实时性、可靠性及容错能力、低功耗及低成本都提出了更高的要求。基于此,欧洲航天局在2003年制定了SpaceWire标准协议。SpaceWire是在两个商用标准IEEE 1355—1995和LVDS技术的基础上,吸收当前比较成熟的以太网技术和ATM技术的优点,同时为满足航空航天设备的应用需求而制定的。其不仅在电磁兼容(EMC)方面进行了加强,而且在故障检测和恢复、时间确定性和可靠性等方面具有突出优势,可以满足未来航天器对数据传输的需求。SpaceWire是一种具有高速、点对点、全双工特点的串行数据总线,通用性好,可以构建十分灵活的拓扑结构。协议规定的链路工作速率为2~400 Mbit/s,受限于信号的偏移和抖动,目前国内外能实现稳定运行且具有良好EMC特性的器件上,实际传输速率可达200 Mbit/s,能够满足航天电子系统中可扩展、高速传输、低功耗、低成本的要求,满足航天器中传感器、大容量存储单元、处理单元和下行电子系统的数据接口要求。

4.3.3.2 SpaceWire总线特性

1)总线结构

SpaceWire总线网络由节点(node)、路由器和链路(link)组成,节点之间通过链路和路由器(可选)连接。一个最简网络,由两个节点和一条链路组成(图4-12);一个较为复杂的网络,由多个节点、路由器及多条链路组成。其中,链路为全双工、串行、点到点传输线路,传输介质为屏蔽双绞线。网络中的信息交互以数据包的方式进行传输,数据包的源及目的设备均为节点。

图4-12 SpaceWire最简网络示意图

2)总线协议

根据协议标准规定,SpaceWire按功能划分为六层,分别是物理层、信号层、字符层、交换层、数据包层和网络层,对应OSI参考模型中的物理层和数据链路层,与OSI模型各层间的对应关系如图4- 13所示。

图4-13 SpaceWire协议与OSI模型对应关系

(1)物理层。SpaceWire电缆由四对双绞线组成,每对双绞线外部都有一个屏蔽层,整体电缆外部也设有屏蔽层,这样可以保证信号的准确传输,降低信号之间的串扰及外部干扰。

SpaceWire电缆内部结构如图4- 14所示。

图4-14 SpaceWire电缆内部结构

SpaceWire连接器采用的是9针D型连接器,其中8根信号线、1根地线,8根信号线即数据-选通编码中的四对差分信号线。连接器各引脚的信号定义如图4- 15所示。

图4-15 SpaceWire连接器信号定义

连接器的第3个引脚与电缆中的屏蔽层相连,然后连接到信号地,以满足电磁兼容特性。

(2)信号层。SpaceWire信号层主要是对信号的传输方式、信号的编解码及噪声容限进行了规范定义。

①低电平差分信号传输。SpaceWire采用低电平差分信号(low voltage differential signalling,LVDS)进行数据传输。LVDS不同于一般的电压驱动型数据传输技术,它采用的是电流驱动模式,具有很宽的噪声容限,在抑制噪声方面有比较明显的优势。

②数据-选通(data-strobe,DS)编解码机制。在已发布的IEEE 1355技术标准中,就使用了DS编解码方式。DS编码是一种高速数据传输方案,特别是在航天电子设备的数据传输中,表现出抗干扰能力强、易于实现、可靠性高等特点。在点对点连接中,DS编码的优点是,发送端不需要将时钟信息发送到接收端,接收端也不需要知道对端发送过来的数据波特率,只要在不超出最大工作速率的前提下,接收端都能够恢复出发送时钟,然后可以准确地恢复出数据。

在采用LVDS传输技术和DS编解码机制的条件下,SpaceWire链路传输的最大速率可达400 Mbit/s(现已实现的最大速率为200 Mbit/s),链路重启或断开后以10 Mbit/s的速率进行初始化。

(3)字符层。字符层协议在IEEE 1355标准的基础上,增加了时间码(time-code)的概念,系统通过周期性地发送时间码,时间信息在SpaceWire链路上传输到每一个节点,从而实现系统同步。SpaceWire字符层标准规定了两种不同类型的字符,分别是数据字符和控制字符。同时,为保证字符的准确传输,每个字符都设有校验位。

(4)交换层。交换层规定了链路的建立过程、流量控制机制、容错机制及链路断开恢复重连等内容,通过字符层定义的字符实现。SpaceWire协议将两种字符具体分为LChar(link-characters)和N-Char(normal-characters)两种。L-Char只在交换层中传输,用于维护链路的正常工作;N-Char除在交换层中传输外,还可传递到数据包层进行处理,包括所有的数据字符、数据包结束符等。

SpaceWire交换层使用静默交换机制,链路传输的状态转换条件十分严格,如果收到不应该收到的字符,就表示链路出现了问题,需要重新进行链路的建立。在交换层可以检测出链路断开错误、校验错误等五种错误,一旦出现错误,此时链路的另一端由于收不到数据,也判断出现了链路错误,这一过程就称为“静默交换”。然后链路两端各自进行初始化,直到链路建立,继续进行数据传输。

(5)数据包层。SpaceWire数据包层规定了数据在链路上的传输方式,即封装成数据包,并定义了数据包的格式及结构。SpaceWire数据包由目的地址、载荷和数据包结束标识(EOP或EEP)三部分组成(图4- 16)。

图4-16 SpaceWire数据包结构

(6)网络层。SpaceWire网络由一定数量的链路、节点和路由器三部分组成。链路是数据包在节点间传输的媒介。节点是SpaceWire数据包的源和目的地,节点间通过直接的点对点连接,或者通过路由器间接连接,把数据包从一个节点传送到另一个节点。路由器是网络的核心内容,网络中的节点通过路由器相连,实现数据在节点间的任意传输。SpaceWire网络结构示意图如图4-17所示。

路由交换有静态和动态两种方式,静态路由是指路由表固定,而动态路由需要不断地更新路由表。SpaceWire网络采用的是动态路由中的虫孔路由机制或自适应路由,相比传统的存储转发,虫孔路由可以节省路由器的存储空间。自适应路由是一种有效分配链路带宽的方法,主要依赖于链路组信息的维护,链路分为组后,将输入的数据包路由到空闲的组内输出端口,降低等待的时延。

图4-17 SpaceWire网络结构示意图

4.3.3.3 SpaceWire总线设计

一种典型高速SpaceWire总线电路的总体结构如图4-18所示,电路提供三个全双工SpaceWire端口,兼容SpaceWire标准ECSS-E-50-12A/ECSS-E-ST-50-12C,传送速率为2~400 Mbit/s。其由三个SpaceWire通道、主机接口(HOCI)、通信存储器接口(COMI)、协议命令接口(PRCI)、链路控制模块、配置寄存器模块及PLL等功能灵活的电路模块组成,具有透明传输(可以配置为简单路由模式)、协议、远程控制等模式。本电路用于构建功能多样的SpaceWire节点,实现信源数据在SpaceWire总线上的传输。

图4-18 高速SpaceWire总线电路结构框图