APP下载

SpaceWire高速串行总线低信号速率建立链路的研究

2018-10-09安军社周昌义

电子设计工程 2018年18期
关键词:花费字符链路

柳 萌,安军社,周昌义

(1.中国科学院大学北京100049;2.国家空间科学中心复杂航天系统综合电子与信息技术重点实验室,北京100190)

随着空间探测领域的逐渐扩大,探测设备和仪器性能不断提高,星载电子设备产生和待处理的数据总量迅猛增长,对数据总线处理能力提出更高的要求。SpW高速数据总线标准是ESA(欧洲航天局)提出的一种高速、点对点、全双工的串行总线协议,以IEEE1355-1995和LVDS两个商业标准为基础,吸取了1394技术、ATM技术、以太网技术的优点,同时根据空间应用的特点,对故障检测与时间确定性方面做了加强。它是目前在航天领域应用较广泛的高速数据总线,方便高性能板载数据处理系统的构建、降低系统集成成本、提高数据处理系统和子系统之间的兼容性、方便不同航天任务中数据处理设备的复用。

2003年ESA正式通过的SpW标准规定协议链路初始化启动速率为10 Mbps,这使得必须为SpW接口提供10 MHz的时钟(DDR数据传输模式下为5 MHz)。在追求超低功耗、输入接口时钟改变等某些特殊的应用场景下,不能为该接口提供该指定速率的时钟,直接降低初始化速率会导致链路无法成功建立连接[3]。如图1是SpW协议编解码器(Codec)结构框图,文中基于实验室开发的Codec IP核,通过对协议分析,提出一种改进方法,通过该方法可以在低于标准初始化速率(10 Mbps)甚至两端初始化速率不同的情况下成功建立链路,最低初始化速率达2 Mbps。

1 SpW链路节点的结构

SpW进行数据通信前要求先由链路节点(Codec)建立链路,节点主要由发送端,接收端和控制器三大子模块组成,其原理框图如图1。数据通信时用户将待发送数据暂存至发送缓存(TXFIFO),由发送端处理并转化为符合链路要求的低电压差分信号对(LVDS)经链路发送。接收端从链路接收LVDS信号,进行时钟数据信号恢复,并解析数据存入接收缓存(RXFIFO),同时将链路数据接收状态反馈给控制器。控制器根据定时器、接收端、发送端以及用户外部输入控制链路接收端和发送端的运行。

图1 SpW编解码器结构框图

2 SpW链路初始化基本流程

SpW链路共有6种状态,其状态转换及相应的转换条件如图2所示。

图2 SpW协议链路状态机图

完成链路的建立,两端的节点需要交换NULL字符和FCT字符,链路完成建立后,两端节点都进入Run状态。根据协议状态机,链路初始化的时候,接收方获得字符的类型和接收时间、接收方对接收字符的处理以及超时延迟不符合要求都会导致链路建立失败。

通常节点在链路建立时,有两种启动模式:主动模式和被动(Auto)模式。在主动模式时,节点在进入Ready状态后会立即跳转至Started状态,同时向对方发送NULL字符尝试建立链路。在被动模式时,节点在进入Ready状态后要判断Link_Enabled条件是否成立,若不满足,则等待和接收对方字符,继续判断该条件是否满足,直至发生超时或者链路接收错误。自动启动功能使得系统可以实现链路一端等待另一端主动连接来建立链路,状态机中的链路跳转条件Link Enabled和RxErr分别表示链路的使能有效条件和接收错误条件,它们描述如下述两式:

这里,Link Disabled、LinkStart和 AutoStart都是由用户软件或硬件设置的信号量,Link Disabled的置位将导致用户链路禁止,LinkStart和AutoStart分别表示链路的主动启动模式和被动启动模式。

3 链路启动分析

在应用中,链路两端节点都可以被配置主动或者被动模式,如果链路两端节点都配置为被动模式,则由于两端都无法进入Started状态完成第一次的NULL字符交换,故无法建立链路,这种情况比较简单。链路在初始化及运行过程中,会进行链路断开超时检测,协议规定标准的超时计数值为850 ns,该值与链路最低信号速率的关系是:

链路最低信号速率的变化会影响该值,该机制在链路初始化的时候也会影响到链路是否能成功建立,在本例2 Mbps的情况下,可以保持该值不变。接收方在收到对方发来的第一个比特位后即开启链路断开检测机制,由于实验采用的Codec在接收1bit时间后判断超时结果,考虑到一定的误差,将超时值取为:

下面讨论链路至少一端采用主动模式的情况,两端节点在链路建立时等价,为方便说明假设SpW总线应用于卫星平台和载荷之间数据传输的典型情况。平台端固定采用主动模式,载荷端则分别采用主动模式或者被动模式。

3.1 载荷端采用被动模式

载荷端为被动模式时,平台端由Ready自动进入Started状态主动发送NULLs字符。重启时链路两端节点按时间发生如图3事件:

图3 载荷端被动模式下链路初始化事件图

图中:

Tdis为链路断开检测所花费时间。

TA1、TA2、TB1、TB2分别为两端 Codec内部数据NULL和FCT准备时间。

Ta、Tb为启动时双向链路上各传送1比特时间(NULL字符为8比特,FCT字符为4比特)。

Tpa、Tpb为奇偶校验所花费时间。

Tsyna、Tsynb为信号同步所花费时间。

Ttransa、Ttransb为状态转换所花费时间。

据上图可知以下必要条件:

为取得最大值,在2 Mbps互联时,Tb=Ta=Tbit_max。

TA1、TA2、TB1、TB2准备时间包括计算奇偶校验值,对数据发送缓存存取操作等。

综上所述代入:

在Started超时计数不变的情况下,2 Mbps互联链路两端的状态转换和数据准备时间要求不超过2.8 μs,这几乎是不能实现的。要实现低速链路启动,必须增加Started超时计数值。

3.2 载荷端采用主动模式

载荷端为主动模式时,链路两端都可以由Ready自动进入Started状态主动发送NULLs字符,双方交换NULL字符进入Connecting状态不存在困难。两端只要再接收到FCT字符,完成FCT字符交换,就能完成链路初始化。启动时链路两端节点按时间发生如下图4事件:

图中:

图4 载荷端主动模式下链路初始化事件图

Tdis为链路断开检测所花费时间。

TA1、TA2、TB1、TB2分别为两端Codec内部数据NULL和FCT准备时间。

Ta、Tb为启动时双向链路上各传送1比特时间。

Tpa、Tpb为奇偶校验所花费时间。

Tsyna、Tsynb为信号同步所花费时间。

Ttransa、Ttransb为状态转换所花费时间。

据上图可知以下必要条件:

将Tdis、TA1、Ta等代入上述两式:

设协议规定的 6.4 μs、12.8 μs 超时值分别为t6_4和t12_8,即这里Tstarted=Tconnecting=t12_8,对于上述两个必要条件是易于满足的。不难发现链路在主动模式下比被动模式下对Tstarted和Tstarted要求更低,即SpW链路在载荷端主动模式下比被动模式下更容易建立链路。

4 仿真测试结果

以实验室开发的IP核进行仿真验证,固定一端(平台端)为主动启动模式,分别设置另一端(载荷端)为被动启动模式和主动启动模式。以低速率建立链路时,增加Started和Connecting超时值,并修改链路断开检测超时值,针对链路断开检测超时Tdis和协议原有的 6.4 μs、12.8 μs超时值t6_4和t12_8 进行的更改如下表1:

表1 链路时间参数变更表

仿真结果如下图5和图6,图中反映了被动模式下链路两端节点从ErrorReset状态到Run状态的初始化过程。结果表明链路两端实现了低速率(2 Mbps)互连启动,也可以不同的速率启动,这里只展示了2 Mbps与2 Mbps和2 Mbps与10 Mbps互连启动仿真结果,主动模式以及两端节点其它速率组合情况类似,在此不再赘述。

图5 自动模式下链路两端均以2 Mbps启动

5 结论

图6 自动模式下链路两端分别以2 Mbps和10 Mbps启动

SpW链路在低于协议规定的初始化速率下存在无法建立的情况。本文在文献[3]的基础上,提出的通过增加对标准规定的链路断开超时检测值和延长链路状态机中标准12.8 μs超时计数值,经仿真验证可以有效扩展SpW链路初始化建立速率的范围,对工程应用有较强的指导意义。

猜你喜欢

花费字符链路
天空地一体化网络多中继链路自适应调度技术
新春开拍小礼物
情况不同,“花费”不一样
字符代表几
一种USB接口字符液晶控制器设计
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
基于数据包分割的多网络链路分流系统及方法
2014年世界杯会花费多少?
基于3G的VPDN技术在高速公路备份链路中的应用