Window平台支持DMA访问的网卡SDK

寒江易雪_王孙 2019-11-26 06:39:12
RT,有谁了解些吗?

说下场景应用 ,我们这下位机现在一秒钟4张图片(以后会升级到光纤30帧)往上位传输像素数据,一张图18MB,已经采用了巨帧的方式,一个包9K大小,因为是医疗行业,所以现在要求是不能丢包。采用UDP接收,加上CPU显示视频图片,导致会丢包,所以想用DMA的方式,直接从网卡里读下位机传上来的数据,从而绕过CPU,使得效率更高,并且解决丢包问题。

场景描述完毕。跟工业相机上的解决方案很类似,不知道有哪位大神做过类似的解决方案。

现在一包是9K大小,一张图是2304个包,2304*9Kb=18M的数据,会丢1-3个包。

上位平台用的是C# Winform显示图像数据,UDP接收。

不吝赐教~
...全文
264 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
研究了不少天,貌似没有哪个网卡硬件厂商会将DMA的SDK代码公布。结贴啦~
happy study 2019-11-29
  • 打赏
  • 举报
回复
i350的硬件丢包统计很多。如果是cpu来不及收,会有drop统计。单就收发包来说,1秒10000个包,应该压力不大。
  • 打赏
  • 举报
回复
引用 5 楼 rozh_yinxianjun 的回复:
得看下丢包原因在哪,如果是网卡丢包会有丢包统计的。intel i350满足这个带宽没问题的。而且都是大包cpu收发压力不大。看看是不是cpu干其它事情压力太大。得确认下哪里丢的,以及丢包原因


以上,现在接收和显示两个耗资源的事情使用了两个进程来处理这个事,接收的数据和显示视频间用的共享内存的方式 ,丢包很少了。2304*100包中丢10个包以下的数量。

应该是CPU的问题。也有可能是下位机的问题
happy study 2019-11-29
  • 打赏
  • 举报
回复
得看下丢包原因在哪,如果是网卡丢包会有丢包统计的。intel i350满足这个带宽没问题的。而且都是大包cpu收发压力不大。看看是不是cpu干其它事情压力太大。得确认下哪里丢的,以及丢包原因
  • 打赏
  • 举报
回复
TCP太耗资源,而且我们的下位FPGA的硬件现在还做不了TCP
worldy 2019-11-27
  • 打赏
  • 举报
回复
按照LZ的要求,建议不要使用UDP,UDP不保证不丢包,使用TCP。TCP是在不可靠的网络上传输可靠的数据
DMA和丢包基本没有什么关系,DMA只能负责在网卡缓存到电脑内存这段传输,可能只能仅仅的提高一点速度而已
丢包应该和使用什么平台无关
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
搜搜 UDP可靠传输

UDT,貌似我们这下位机是比较低级的,做不了在UDP基础之上的封装。
数据是已经全部到了上位,我描述的丢包,可以确认是CPU没有从网卡上读到(速度太快,或某个时刻处理不过来跳过了)
网上搜了一大圈,intel 350系列支持DMA合并,但貌似不会往外开放DMA的SDK接口,一般成熟的网卡咋会向你开放人自己写的驱动代码呢,大家说是不是。
貌似网上说的是,现在的网卡一般都是默认就是DMA的,已经减少了CPU的中断时间。
还有一个是10年前的e1000 intel的网卡驱动,资料非常多,不知道这个驱动代码能否对现有的很多网卡,比如i350支持,可以实现通代码直接访问i350上的存储数据
zgl7903 2019-11-26
  • 打赏
  • 举报
回复
搜搜 UDP可靠传输

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧