关于千兆以太网,UDP传输漏包的问题
补充内容 (2017-5-24 14:46):
我后来降低了采样频率,signal tapii里看到是没漏包的,但LabVIEW里看到是漏包了;
还有一个大问题,错包也很严重,一帧一帧的错误的数据,后来又取消了FIFO,错包要好些;
后来观察到数据在AD采集时,已经出错了(一段一段的),所以跟错包比起,漏包也可以容忍了,毕竟是有规律的漏包。
比如说 我采一个点用了100us,那么100us怎么分配的,前50us采,后50us打包发送,加头加尾的时间就是在后50us里面,在后50us的时间里采集的数据不变,还是保存在reg里面么;就是预留时间发送,再把总时间算成他的采样率
那你用FIFO缓存的意义呢?
FIFO主要是一个先进先出,它并不会说,若数据还没读取的话,接着往后存,它会溢出,关于这点我也很困惑
好好、、、、、
用两个fifo切换呢?要么多缓存ad的采样数据使得匹配发送数据的频率,要么提高时钟频率来跟得上ad的速度,不过会受到PHY的时钟频率限制。
会有溢出信号呀
你有这样的板卡 和资料不
买的黑金AX515开发板
用winshark抓包可以不丢包,不过我当时是50M*16bit,60M清楚会不会,
我需要在LabVIEW上显示波形,就是看到LabVIEW上波形不对
巧了,我最近也做的ip-udp传输,但是我没用fifo,采集一个点发一个点
我最后也把FIFO去掉了,主要是错的包也很多
我的要求实时,连续采集,漏包是必然的
为什么我没咋漏包
你的采集频率是多大的?是不停的采吗?
en 不停的采集 采样率10K
降低采集频率应该会好点
你的意思是采集频率快,而传输速率低吗?是不是labview读取数据太慢呢?
你的意思是采集频率快,而传输速率低吗?是不是labview读取数据太慢呢?
直接把采集到的数据存在fifo里,然后控制好时钟,是不会漏包的。
那你是怎么控制的呢?是没有用Verilog直接编写的吗?
传输快些,采集减慢了,LabVIEW直接读取,不知道速度是怎样的
没有啊,我上微机用的是C,我就是用verilog写的,之前我用labview来看,结果wireshark数据抓的对的,结果labview都不出来,后来我就用C了
那在传UDP的包头和其他地址、校验码信息时,没法传采集的数据啊,为什么你的数据没有丢?
啊,我不太明白你说的没法传采集数据是什么意思,FPGA以太网上传数据打包先是以太网帧头 ip帧头 udp帧 +数据+CRC校验,什么没法传数据啊
你既然一直在采,就需要一直传啊,可每一帧数据都需要加头加尾,头尾的传输也需要时间啊,那这个时间段你采的数据放哪呢?
哦,我懂了,你这样采样频率会降低很多,我的不适用,我的50M已经够低了。非常感谢你的回答!
巧了,我最近也做的ip-udp传输,但是我没用fifo,采集一个点发一个点
可以留个联系方式吗?我有些问题也想请教你啊,我微信502137807
谢谢分享,看看!
我也没弄出来啊
48k*20路*32bit,ddr3,还好
上位机的问题。FPGA发送速度110M/S,在Windows系统下不管是用调试助手还是自己用QT写的接收测试程序,都会出现严重的丢包。在Linux系统下用QT写了测试程序,收到的数不作任何处理,只测速,测得的接收速度能达到110M/S,兄台有没有好的解决方法?
更不用说LabView的实时性本身就差
更不用说LabView的实时性本身就差
暑假了,想学习FPGA的同学们,可以利用暑假期间好好学习下FPGA,我们现在有款初学者的FPGA开发板利器,现在购买还有配套书籍赠送哦:
入门FPGA开发板:
https://item.taobao.com/item.htm ... &id=35911884243
赠送完全配套书籍:
https://item.taobao.com/item.htm ... amp;id=540865636294
有一定基础的同学,可以看下高端的开发板:
https://item.taobao.com/item.htm ... amp;id=520588767908
如果以上两款依然满足不了您的需求,更可以看下更高端的开发板:
https://item.taobao.com/item.htm ... &id=39939126777
有任何问题,欢迎旺旺 QQ来咨询哦!
先保存到flash中,再从flash中通过UDP传送
我最近也在做类似的项目,
我的流程是这样的。
读取ADC数据-----FPGA的寄存器r_data-----写入FIFO
读取FIFO的的数据-----FAGA的寄存器USB_data----输出到USB芯片。