FPGA单芯片实现SpaceWire节点接口设计与校验
需积分: 49 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节点接口设计方案,不仅详细讨论了校验和时间码的实现,还展示了如何在多时钟域环境下保证高效的数据通信。
2020-11-29 上传
2021-03-18 上传
2021-01-06 上传
2024-03-28 上传
2018-08-10 上传
2022-09-12 上传
2021-05-09 上传
2021-03-23 上传
臧竹振
- 粉丝: 48
- 资源: 4062
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫