目录
一、SpaceWire总线协议概述
SpaceWire总线(ECSS-E-ST-50-12C标准)是一种高速、双向、全双工、点对点的串行总线,其传输速率为2Mbps~400Mbps。
根据协议标准规定,SpaceWire按照功能划分为六层,分别是物理层、信号层、字符层、交换层、数据包层和网络层,对应OSI参考模型中的物理层和数据链路层,与OSI模型各层间的关系如图1所示。
图1 SpaceWire协议与OSI模型对应关系
随着越来越多的传输层协议加入了SpaceWire协议簇,SpaceWire实现的功能也是越来越完备了。
1、物理层
ECSS-E-50-12 标准物理层包括电缆,连接,电缆组和 PCB 板:
SpaceWire 电缆由四对双绞线组成,每对双绞线外部都有屏蔽层,整体外部也设有屏蔽层。为了在十米甚至十米以上的距离得到高信号传输率,其电缆横截面积如图2所示。SpaceWrie 具有以下特点:
- 特征阻抗与线终点阻抗相匹配;
- 在差分对信号之间和DS对之间有低信号歪斜;
- 低信号衰减;
- 良好的电磁兼容性。
图2 SpaceWire电缆内部结构图
SpaceWire 连接器采用的是 9 针 D 型连接器,其中 8 根信号线,1 根是地线。8根信号线即数据-选通(Data-Strobe)编码中的四对差分信号线。连接器各引脚的信号定义如图 3 所示。
图3 SpaceWire连接器信号定义
2、信号层
2.1 低电压差分信号(LVDS)技术
ECSS-E-50-12 标准信号层主要包括 LVDS 技术与 DS 编码技术。SpaceWire 的数据传输采用 LVDS 技术,其电气特性在 ANSI/TIA/EIA-644中有详细定义。LVDS 传输有如下优点:
- 驱动电流不变,采用了恒定3.5mA的电流源,使传输更加稳定;
- 驱动端和接收端对外表现高阻抗,这样会减少因两端地线电压不同而产生的影响;
- 两根正负电缆线紧缠在一起,减少了串扰噪声;
- 电磁产生少,因为小的等量电流会使产生的电磁场相互抵消;
- 传输功耗低;
- 时序定位精确,差分信号开关变化位于两信号的交点。
2.2 数据-滤波(DS)编码技术
SpaceWire标准中采用数据-选通(Data-Strobe)编码方案。即将时钟和数据共同编码成选通信号,在接收端对这两个信号进行简单的异或,即可恢复出时钟信号。在数据传输过程中,如果Data信号连续两个bit的值不变,那么Strobe信号的值将在第二个时钟周期内发生反转,否则Strobe信号在这段时间保持不变。
SpaceWire链路包括两对差分信号,一对在一个方向上传输D和S信号,另一对在相反方向传输D和S信号。每个双向链路总共需要八条电线。DS编码的逻辑结构图可由下图表示:
图4 DS编码逻辑图
当Reset信号为1时,Data和Strobe均要复位为0。经过编码输出的Data信号要比其输入延迟3个时钟周期;只有在连续两个时钟周期的时间范围内Data 信号相同的情况下Strobe信号才会在第二个时钟到来时发生翻转,因此在相邻两个时钟内Data和Strobe中只有一个信号会发生变化,图5是NULL字符的DS编码信号。
图5 NULL字符的DS编码形式
下面归纳总结了DS编码的性质和逻辑关系:
①当reset信号置位时,Data信号和Strobe信号都需要复位。可表达为:若某时刻reset值为1,那么此时的Dataout和Strobe都为0;
②如果3 个时钟周期内没有有效的复位信号到达,那么Data 信号输出的值等于3个时钟周期之前其输入的值。可表达为:如果 reset 信号的值在 t +1 或者 t +2 或者t+3时值为1,那么dataout在t+3时为0,否则它等于datain在t时刻的值;
③在没有有效复位信号到达的情况下,如果相邻两个时刻的 Data 信号值相同,则此时的 Strobe 信号就要发生改变,否则它的值保持不变。可以表达为: 若 reset 信号的值在 t + 1 时刻为1,那么strobe在t +1时刻为0,否则,如果dataout 在t +1 和 t 时刻的值相同, t +1 时刻的 strobe 就变为它在 t 时刻的相反值,否则它保持t时刻的值不发生变化。
3. 字符层
SpaceWire协议中共定义了两种字符类型:控制字符和数据字符。
3.1 控制字符
控制字符包含两个控制位。每个控制字符分别由奇偶校验位,数据控制标识以及两个控制位构成。数据控制标识置1时代表当前字符为控制字符。控制字符分为四种,其中一个控制字符表示转义码(ESC)。它可以用来形成控制码。有两个控制码已经被确定并且有效,它们是NULL和时间码。ESC和流控制令牌(FCT)共同形成NULL,控制码中间的奇偶校验位(P)设为零。只要链路没有发送数据或控制令牌,就发送NULL使链路保持活动并支持链路断开检测。时间控制码(Time-Code)应由ESC后跟一个数据字符形成,用于分配系统时间信息和时间码分配的同步控制标志。时间码中间的奇偶校验位(P