SpaceWire原理介绍及FPGA实现

news2024/10/25 13:21:36

SpaceWire原理及介绍

spacewire特点

SpaceWire 总线具有高速、全双工、点对点、串行传输的特点。它由欧洲航 空局(European Space Agency,简称 ESA)联合欧洲航空公司等共同发起,由 Dundee 大学制定,以 IEEE-1355 接口标准为基础并结合低电压差分技术(Low Voltage Differential Signaling,简称 LVDS)提出了该协议标准。

目的:

  • 促进高性能星载数据处理系统的构建。

  • 帮助降低系统集成成本。

  • 提高数据处理设备和子系统之间的兼容性。

  • 鼓励在多个不同任务中重复使用数据处理设备。

优势:

  • 低复杂度且易实现:接口可在约 5000 - 8000 个逻辑门中实现,可与应用逻辑或微型计算机集成在 FPGA 或 ASIC 中;采用数据 - 选通编码,无需锁相环,对偏斜有良好耐受性。

  • 物理特性良好:双向,每方向使用两对双绞线,物理层采用 LVDS,可在单芯片上实现完整设备,具有容错特性。

  • 高效的分组交换网络:采用虫洞路由交换机,减少路由交换机中所需的缓冲存储器;网络拓扑无限制,可使用组自适应路由实现链路带宽共享或容错;支持向网络所有节点分配时间信息,分辨率可达几微秒。

spacewire介绍

SpaceWire 总线协议是一种高速、全双工、点对点的串行传输 总线。该协议标准总共包含物理层(Physical Level)、信号层(Signal Level)、 字符层(Character Level)、交换层(Exchange Level)、信息包层(Packet Level)、 网络层(Networks Level)六个协议层。

image-20241009191836311

名称介绍
物理层提供物理接口
信号层基本描述LVDS/DS编码技术/传输波特率等方面
字符层描述字符定义、校验方式和控制器接口。分为数据字符与控制字符
交换层负责在两节点之间建立连接和控制它们之间的数据流
信息包层包括了数据由本地向对方节点发送中需要定义的包格式
网络层包括了总线路由器、总线节点和整个节点 网络的定义

SpaceWire的FPGA实现

整体结构说明

image-20241010092741816

  • AHB Master:作为AHB读写需求的主机来负责将读写需求转化为AHB协议规范发送出去。

  • Packet Ctrl:负责读写数据包的请求产生、相关信息和状态的产生以及相应的 CRC 校验。

  • Glue:主要负责寄存器与子模块间的跨时钟异步握手,包括配置寄存器以及相应的状态寄存器和中断信号。

  • APB Config:APB 接口寄存器配置接口,为相关参数配置、状态读取以及中 断产生提供接口。

  • SpaceWire Codec:SpaceWire 的链路节点,负责 SpaceWire 链路建立、数据接收与发送。

  • Loop Generic:主要负责LVDS 环回测试的信号产生以及相关信号接收校验。

  • LVDS:该模块负责数字信号/低压差分信号之间的相互转换,以符合协议信号层规范。

image-20241010092939594

SpaceWire 模块工作流程

子模块 CODEC

CODEC模块主要实现了SpaceWire链路接口,负责对端节点的握手,并将待发送数据(数据包以及Time-Code)以符合 SpaceWire 的编码方式发送出去,同时 也将接收到的数据中的有效数据(数据包以及 Time-Code)恢复出来。它主要由 发送机、接收机和主状态机三部分组成。

image-20241010092512574

SpaceWire 推荐的 CODEC 内部逻辑框图

CODEC中的TRANSMITTER设计

发送机TRANSMITTER 主要实现了SpaceWire 数据的发送,负责数据的编码 工作、接收主机系统的传输命令以及内部状态的状态控制,同时发送相应的数据。

image-20241010093156287

RECEIVER 设计

接收机RECEIVER 主要实现了SpaceWire 数据的接收,负责时钟恢复、数据译码,输出相应的数据和状态。

image-20241010093450472

FSM设计

image-20241010094715783

一共包含 ErrorReset、ErrorWait、Ready、Started、 Connecting、Run 六个工作状态,协议规定转换顺序有且只有这一种。

其他

控制字符

  • FCT(Flow Control Token)

    • 作用:用于流量控制,通知接收方发送方的数据传输能力和接收方的接收能力,以确保数据的稳定传输。

    • 发送时机

      • 发送方:当发送方的发送缓冲区中有数据准备发送,并且接收方的接收缓冲区有足够的空间来接收数据时,发送方会发送 FCT。具体来说,发送方根据接收方通过 FCT 请求的空间大小,来决定发送的数据量。例如,如果接收方通过 FCT 请求发送方发送 8 个更多的 N - Char(正常字符,包括数据字符、EOP 或 EEP),那么发送方就会发送相应数量的数据。

      • 接收方:接收方通过接收 FCT 来了解发送方的发送能力和自己的接收能力,以便进行流量控制。当接收方的接收缓冲区有足够的空间时,会发送 FCT 给发送方,请求发送数据。

    • 接收时机

      • 发送方:发送方在接收到接收方发送的 FCT 后,会根据 FCT 中指示的空间大小来发送数据。

      • 接收方:接收方在接收数据的过程中,如果接收缓冲区已满,会停止接收数据,并发送 FCT 给发送方,通知发送方暂停发送数据,直到接收缓冲区有足够的空间为止。

  • EOP(End of Packet)

    • 作用:表示数据包的结束,用于标记一个数据包的传输结束。

    • 发送时机

      • 发送方:当发送方完成一个数据包的发送时,会在数据包的最后发送 EOP 字符。

    • 接收时机

      • 接收方:接收方在接收数据时,当接收到 EOP 字符时,会知道当前数据包已经结束,开始处理下一个数据包。

  • EEP(Error End of Packet)

    • 作用:表示数据包的异常结束,当数据包在传输过程中出现错误时,会使用 EEP 来终止数据包的传输。

    • 发送时机

      • 发送方:如果在数据包传输过程中检测到错误,发送方会在数据包中插入 EEP 字符来标记数据包的异常结束。

    • 接收时机

      • 接收方:接收方在接收数据时,如果接收到 EEP 字符,会知道当前数据包出现了错误,可能是数据损坏或传输中断等原因导致的。接收方会根据具体情况进行相应的处理,例如重新请求发送数据包或采取其他错误恢复措施。

  • ESC(Escape)

    • 作用:用于转义控制,在特定情况下,用于表示特殊的控制字符或操作。

    • 发送时机

      • 发送方:根据协议规定,在需要发送特定的控制字符或进行特殊操作时,发送方会发送 ESC 字符。

    • 接收时机

      • 接收方:接收方在接收数据时,会根据协议规定来处理 ESC 字符。例如,当接收方接收到 ESC 字符后,会根据后续的字符来确定是否进行特殊操作,如形成更长的控制代码或执行其他特殊功能。

总结:FCT 用于通知收发双方数据传输和接收能力以确保稳定传输,发送方在接收方有空间且自身有数据时、接收方在缓冲区有空间时发送或接收;EOP 表示数据包结束,发送方完成数据包发送时发送,接收方收到该字符知数据包结束;EEP 表示数据包异常结束(如奇校验错误),发送方检测到错误时发送,接收方收到知数据包出错;ESC 是转义符用于转义控制,发送方按协议规定需特殊操作时发送,接收方按规定处理。

image-20241010200956394

参考文献

[1] 李政.基于SpaceWire协议的IP核设计与UVM验证[D].湖南大学,2019.DOI:10.27135/d.cnki.ghudu.2019.000703.

[2] SpaceWire User’s Guide (star-dundee.com)

[3] 邹萌,飞海东,王兴友,等.高速SpaceWire总线电路设计与验证[C]//中国航天电子技术研究院科学技术委员会.中国航天电子技术研究院科学技术委员会2020年学术年会论文集.北京微电子技术研究所;,2020:6.DOI:10.26914/c.cnkihy.2020.036732.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210794.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据治理:挑战与实践

目录 大数据治理:挑战与实践 1. 大数据治理的基本概念 2. 大数据治理的关键要素 3. 大数据治理实施框架 3.1 策略与目标制定 3.2 数据治理工具 3.3 数据生命周期管理 4. 大数据治理的挑战与解决方案 5. 大数据治理的价值与未来趋势 5.1 提升决策质量 5.2…

MySQL初识

在了解什么是MySQL前,我们先了解一下什么是数据库?? 1. 数据库简介 1.1 什么是数据库 数据库是20世纪60年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分⽀。数据库技术主要是⽤来解决数据处理的⾮数值计算问…

【MATLAB代码,带TDOA数据导入】TDOA最小二乘求三维下的位置(1主锚点、3副锚点),多个时间点、输出位置图像

此TDOA(Time Difference of Arrival)最小二乘法三维定位 MATLAB 工具是一个先进的定位解决方案,专为需要高精度位置计算的工程师、研究人员和开发者设计。此工具可以通过多个时间点的测量数据,结合主锚点和副锚点的配合&#xff0…

Hi3061M——不定长串口接收实现

这里写目录标题 前言串口接收流程串口中断函数ReadITCallBack1中断接收函数 补充结果展示 前言 Hi3061M给了很多相关的串口案例,但大多数是定长的,指定长度进行接收读取,而实际需求往往需要用到不定长的接收。 串口接收流程 首先介绍下Hi3…

Android终端GB28181音视频实时回传设计探讨

技术背景 好多开发者,在调研Android平台GB28181实时回传的时候,对这块整体的流程,没有个整体的了解,本文以大牛直播SDK的SmartGBD设计开发为例,聊下如何在Android终端实现GB28181音视频数据实时回传。 技术实现 Andr…

C++——红黑树(带头结点)

红黑树 红黑树的概念红黑树的定义红黑树的性质红黑树的优点操作原理例图: 红黑树的实现红黑树的框架红黑树的插入实现头结点的作用红黑树的插入步骤(简易理解版带图) 红黑树的插入具体代码详解红黑树的旋转代码红黑树的查验 红黑树的概念 红…

基于矢量瓦片技术的GIS引擎

矢量地图是通过对点线面坐标信息集合的管理和渲染实现优于栅格画面质量的一种gis展示技术,涉及不同坐标系变换,视窗比例尺换算等。当你遇到海量坐标数据和属性信息需要管理时你就不得不在有限内存和庞大数据间左右为难,将地图矢量数据进行分块…

LabVIEW提高开发效率技巧----时序分析

一、什么是时序分析? 时序分析是优化LabVIEW程序性能的重要步骤。它通过分析程序各个部分的执行时间,帮助开发者找到程序运行中的瓶颈,并进行有针对性的优化。在LabVIEW中,Profile Performance and Memory工具是进行时序分析的关…

浏览器中使用模型

LLM 参数越来越小,使模型跑在端侧成为可能,为什么要模型跑在端侧呢,首先可以节省服务器的算力,现在 GPU 的租用价格还是比较的高的,例如租用一个 A10 的卡1 年都要 3 万多。如果将一部分算力转移到端侧通过小模型进行计…

Linux中真实的调度算法,进程地址空间,命令行参数

文章目录 Linux中真正的调度算法补充 命令行参数什么是命令行参数?命令行参数的用途如何在不同的编程语言中使用命令行参数命令行参数好处 Linux中真正的调度算法 这是Linux2.6的内核中进程队列的数据结构 其中有这两个指针*active,*expired,而Linux为…

论文及其创新点学习cvpr2022 On the Integration of Self-Attention and Convolution

代码地址 https://github.com/LeapLabTHU/ACmix https://gitee.com/mindspore/models 论文创新点,将注意力机制 和卷积 相结合 # encoding: utf-8author: duhanyue start time: 2024/10/13 10:04 import torch import torch.nn as nn def position(H, W, is_cudaT…

邮票鉴赏系统| 邮票鉴赏系统平台|基于java和vue的邮票鉴赏系统设计与实现(源码+数据库+文档)

邮票鉴赏系统\ 目录 基于java和vue的邮票鉴赏系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,阿里…

用 Gemini Google 生成图片的魔法

用 Gemini Google 生成图片的魔法指南 你是否曾经想过,用一些简单的文本描述来生成一张图片?这听起来像是科幻小说中的魔法,但实际上,这就是 Gemini Google 的魔力!在这篇文章中,我将向你详细介绍如何使用…

【HarmonyOS NEXT】实现页面水印功能

关键词:鸿蒙、水印、Watermark、页面、触摸问题 注:本期文章同样适用 OpenHarmony 的开发 在app开发过程中时常会出现敏感信息页面,为保护信息安全和及时的数据追踪,通常会采用给页面加水印的形式,那么本期文章会介绍…

自回归视觉生成里程碑!比ControlNet 和 T2I-Adapter 快五倍!北大腾讯提出CAR:灵活、高效且即插即用的可控框架

文章链接:https://arxiv.org/pdf/2410.04671 项目链接:https://github.com/MiracleDance/CAR 亮点直击 CAR是首个为自回归模型家族设计的灵活、高效且即插即用的可控框架。CAR基于预训练的自回归模型,不仅保留了原有的生成能力,还…

sherpa-ncnn 语言模型简单对比

在昨天把系统搞崩溃前,对sherpa-ncnn的中文模型做了一个简单的对比。这次使用的分别是sherpa-ncnn-streaming-zipformer-bilingual-zh-en-2023-02-13(以下简称bilingual-zh-en-2023-02-13)和sherpa-ncnn-streaming-zipformer-small-bilingual…

服务器数据恢复—EMC存储RAID5磁盘阵列数据恢复案例

服务器数据恢复环境: 一台EMC某型号存储设备,该存储中有一组由12块(包括2块热备盘)STAT硬盘组建的raid5阵列。 服务器故障: 该存储在运行过程中突然崩溃,raid瘫痪。数据恢复工程师到达现场对故障存储设备进…

GPT联网分析到底有多强?实测效果告诉你答案!

文章目录 零、前言一、gpt-4o操作指导gpt4o 二、感受 零、前言 早上在聊到博主在选择平台时,要选择哪个平台发展。 通过GPT查询并分析了小红书,微信视频号,抖音和B站的用户群体。 由此可举一反三,如何让GPT联网分析,…

部署私有仓库以及docker web ui应用

官方地址:https://hub.docker.com/_/registry/tags 一、拉取registry私有仓库镜像 docker pull registry:latest 二、运⾏容器 docker run -itd -v /home/dockerdata/registry:/var/lib/registry --name "pri_registry1" --restartalways -p 5000:5000 …

如何针对项目中的技术难点准备面试?——黑马点评为例

最核心的,包装和准备 个人项目,怎么包装?一定要写出代码才可以吗? 你可以在系统A中实现就可以,了解其中实现的细节,怎么跟面试官对线等等,这些话术到位了之后,再把它融入到系统B&a…