打印
[FPGA]

关于千兆以太网,UDP传输漏包的问题

[复制链接]
1641|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 sunnysnow 于 2017-5-18 09:19 编辑

      FPGA千兆以太网发送数据,数据来自AD采集(有60MHz),经FIFO缓存。采用的UDP协议,一帧一帧传输数据,最后通信成功,但是漏包严重,后来发现是因为:AD不停地采集数据,但每一帧UDP数据包还需要传输包头、地址、端口号等,这段时间里采集的数据就丢失了。请问大家有没有什么解决办法呢?补充:我用的FIFO,它缓存不了数据:

括号里是一个周期的正弦波信号。很明显写和读数据的长度是一致的,但箭头指向的就是数据漏掉的部分。我必须给一个读使能无效的信号,刚无效几个时钟后,就写满了?不可能啊?我的fifo读、写时钟频率和数据位宽是一致的,深度4096.

相关帖子

沙发
bbjj123| | 2017-5-15 15:23 | 只看该作者
发的没有采集的快,肯定漏

使用特权

评论回复
板凳
sunnysnow|  楼主 | 2017-5-15 19:22 | 只看该作者
bbjj123 发表于 2017-5-15 15:23
发的没有采集的快,肯定漏

你说的对,但我的不是这个问题,我的问题是UDP包的发送是有格式的,它在添加包头等信息时,采集的数据就漏掉了。发送和采集的频率刚好是合适的。

使用特权

评论回复
地板
bbjj123| | 2017-5-16 10:04 | 只看该作者
本帖最后由 bbjj123 于 2017-5-16 10:06 编辑

缓存数据

使用特权

评论回复
5
bbjj123| | 2017-5-16 10:06 | 只看该作者
或者搞个乒乓操作

使用特权

评论回复
6
Yan.hong.yu| | 2017-5-16 16:45 | 只看该作者
经过FIFO缓存,还丢数据,要么FIFO数据深度不够,要么就是发的比采集的慢

使用特权

评论回复
7
sunnysnow|  楼主 | 2017-5-16 20:23 | 只看该作者
Yan.hong.yu 发表于 2017-5-16 16:45
经过FIFO缓存,还丢数据,要么FIFO数据深度不够,要么就是发的比采集的慢

我用FIFO发现它只有一个先进先出的功能,不会接着往后缓存,它会溢出,必须写读是同步的。关于这点我也很困惑

使用特权

评论回复
8
Yan.hong.yu| | 2017-5-17 09:32 | 只看该作者
sunnysnow 发表于 2017-5-16 20:23
我用FIFO发现它只有一个先进先出的功能,不会接着往后缓存,它会溢出,必须写读是同步的。关于这点我也很 ...

发送和采集是不是两个时钟域的?如果是两个时钟域的,你的FIFO需要读时钟和写时钟。
其实你可以仿真一下,很快就能解决问题。

使用特权

评论回复
9
ar_dong| | 2017-5-21 21:52 | 只看该作者
采集时钟频率降低点啊,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝