关于FPGA通过以太网向上位机发送数据包的问题

最近在利用千兆以太网实现电路板与计算机之间的海量数据传输,遇到了一些棘手的问题。我的具体做法是:利用FPGA的mac核与外置的PHY芯片实现千兆以太网,PHY与MAC之间... 最近在利用千兆以太网实现电路板与计算机之间的海量数据传输,遇到了一些棘手的问题。我的具体做法是:
利用FPGA的mac核与外置的PHY芯片实现千兆以太网,PHY与MAC之间的接口采用GMII接口。计算机向板子发送控制命令,然后开始连续接收板子发送来的数据,利用Winpcap工具包在VC环境下开发的抓包工具获取并存储数据到硬盘。

遇到的问题:
1计划传送连续传送65536个数据包(每个数据包是274个字节),在板子上设置了一个LED灯,当传送到65536个数据包时LED灯就亮。但是实际执行的时候是上位机VC环境下显示接受到的数据包只有1万多个是LED灯就亮了。考虑过是否是时序约束的问题(这个程序只有一个时钟125MHz),所以设置了全局的时钟约束,OFFSET_IN约束和OFFSET_OUT约束,查看时序报告时,约束满足,但是执行时还是出现上述问题。用示波器观察数据包累加信号number的波形和数据包传送的波形,结果是number每变化一次数据包头的波形变化一次,二者有10几ns的误差,但是基本是对齐的。
所以不知道到底是哪里出了错误,是否可能是上位机的问题?
展开
 我来答
放眼四海
2014-04-29 · TA获得超过209个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:135万
展开全部
有几种可能性
1、FPGA这边发送有问题,可能led点亮出错;或者发送期间出现了错包,造成pc上网卡驱动把包丢弃了,所以vc程序看到的包数目和fpga发送的不一致
2、另外可能pc端接收能力有限,fpga发的太快,网卡把接收不了的包丢弃了
追问
我在上位机上装了wireshark软件来看接受的数据包,说是这个软件是直接抓网络电缆上的包,结果是看到的数据包个数和vc环境下的个数是一样的(是1万多个),不知道这个软件抓包会不会有丢包的现象?这是不是说明上位机的抓包程序没有丢包?
追答
wireshark是在网卡驱动的上层的,只有网卡驱动接收上来的包才能被wireshark抓到包,网卡驱动也是有可能丢包的额
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式