FPGA单芯片实现SpaceWire节点接口设计与校验

需积分: 49 10 下载量 54 浏览量 更新于2024-08-10 收藏 544KB PDF 举报
"本文介绍了基于FPGA的SpaceWire节点接口设计,实现了从物理层到数据包层的协议。设计中详细阐述了奇校验功能的实现和时间码模块的设计,同时考虑了多时钟域的问题。在Altera的EPIC6Q240C8芯片上进行了硬件验证,测试结果显示单向最高数据传输速率可达100Mbps。" SpaceWire是一种高速星载数据总线,主要用于复杂航天任务。在设计SpaceWire节点接口时,遵循了最新的ECSS-E-ST-50-12C规范。接口设计的核心在于实现从物理层到数据包层的通信协议,确保数据的准确性和可靠性。 在实现校验功能方面,采用了奇校验方法。校验位被放置在每个字符的最低位,接收器和发送器都会参与校验过程。接收器通过异或操作检测校验错误,如果接收完成后,存放校验结果的寄存器p的值为1,表示校验和为奇数,即校验成功;否则,表明存在错误。发送器同样使用相同的算法生成校验位,但在考虑系统因果性时,需要根据当前发送的数据类型(数据字符或控制字符)决定是否对校验位进行取反处理,以确保正确地包含数据/控制标志位。 时间码模块是SpaceWire的一个关键特性,它支持系统时间的发布,时间码以广播方式从主节点传递到非主节点。设计时需要确保在任何时候网络中只有一个主节点。时间码模块需要与主机系统的应用层协调一致。为了防止高速时钟连续采样同一高电平的TICK IN信号导致发送多余的时间码,TICK IN的检测应基于上升沿触发。同时,非主节点的TICK OUT信号应为电平而非脉冲,主机系统读取一次信号后,TICK OUT立即清零,以避免重复读取同一时间码。 设计中还应用了多时钟域的思想,这对于高速数据传输至关重要。此外,接收和发送状态机(FSM)进行了优化,DS解码算法也得到了改进,提高了数据处理效率。 在实际验证阶段,使用了基于EPlC6Q240C8 FPGA的CPCI板卡、软件工具Quartus II、SignalTap和NI.VISA的PC机,以及SpaceWire链路和示波器进行测试。通过两个节点之间的交叉连接模拟了网络通信,测试结果显示,设计的SpaceWire节点接口单向数据传输速率可达到100Mbps,证明了设计的有效性和可靠性。 本文提供了一个完整的基于FPGA的SpaceWire节点接口设计方案,不仅详细讨论了校验和时间码的实现,还展示了如何在多时钟域环境下保证高效的数据通信。