新闻  |   论坛  |   博客  |   在线研讨会
5SHX2645L0004 所有通信都以数据包的形式进行
15359029662 | 2023-04-11 16:53:52    阅读:295   发布文章

5SHX2645L0004 所有通信都以数据包的形式进行ABB-YPK112A-3ASD573001A13-(2).jpg

通常,我在我的设计中使用串行端口 和我称之为“调试总线”的东西来处理这类问题:一种在该串行端口上运行的协议,它允许我读取或写入总线上的任何地址FPGA。 我们之前已经讨论过这个协议,作为参考,你可以在左边的图 3 中看到这个协议的基本组成部分:命令被分组为字,解压缩,放入一个 FIFO,然后这些命令用于控制公共汽车。巴士返回然后回来。复位确认和中断被添加到返回流中,然后在通过串行端口返回之前被压缩并拆分回字节 总的来说,这很管用,而且我已经使用这种方法很多年了。更妙的是,拥有完整的总线访问权使得调试 FPGA 变得非常容易——只要您能保证调试总线协议和总线本身都不会对您造成故障。

这对于 串行端口协议非常有用,其中字符不会(通常)丢失并且消息不会意外重复。

但是网络协议呢?

那么,今天的讨论将讨论一种网络协议,它可以用来做同样的事情,但接口足够简单,可以在 FPGA 中实现。

理解问题

因此,让我们回顾一下,花点时间了解该协议的目标和目的,以及网络环境的一些独特之处。这将使我们了解本协议需要处理的一些相关问题。

所有网络流量都发生在数据包中

网络的第一条规则是所有通信都以数据包的形式进行。更好的是,由于我们将使用以太网,每个以太网数据包都 以基于循环冗余校验 (CRC) 的四字节帧校验序列 结束这四个字节由应用于数据包内容的函数生成。然后,在接收时,接收端也可以计算相同的函数。如果结果与数据包中找到的四字节帧校验序列相匹配,那么您就可以确信数据包是通过接口无误地接收到的。

数据包可能会丢失

这是我们的第一个问题:如果网络出现问题——可能某个地方太拥塞,也许 FPGA 仍在响应其他一些数据包,那么数据包可能会被丢弃。事实上,我们最近讨论了这种想法。在网络实现中,丢弃数据包被认为是一种“正常”现象,并且在网络上运行的任何协议都需要能够从丢失的数据包中恢复。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客