FPGA高速接口设计之SpaceWire——总线协议概述

目录

一、SpaceWire总线协议概述

1、物理层

2、信号层

2.1 低电压差分信号(LVDS)技术

2.2 数据-滤波(DS)编码技术

3. 字符层

3.1 控制字符

3.2 数据字符

3.3 时间接口

4 交换层

4.1 概述

4.2 链路初始化

4.3 链路状态

4.4 流量控制

4.5 发送字符的优先级

4.6链路错误及恢复

5 数据包层

6 网络层

6.1 SpaceWire网络结构

6.2 SpaceWire路由机制

7 同步与容错

7.1  SpaceWire时间码

7.2 SpaceWire 接口错误恢复机制


一、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)。它可以用来形成控制码。有两个控制码已经被确定并且有效&#

  • 7
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值