嵌入式linux下大数据量的网络传送问题<请通信程序高手帮帮忙>

ykeastronaut 2009-09-21 11:41:48
请通信程序前辈 多多帮帮忙!
小弟刚进嵌入式的门槛不久,最近在做一款中速的数据采集产品,在网络通信这块儿遇到问题,还望大家多提提意见,帮帮忙!
产品的采样率达到100ksps到500ksps,产品板跑的是linux系统,开发板上的内存总共是32MB,用fpga来做fifo,有不到1MB的空间。如果按100ksps的采样率采样的话,基本上每秒钟会出现如下的数据量:
100 *1024* sizeof(short) 每秒! 每秒约有200kB的数据量产生。若为500ksps,则有1MB/秒 的数据。
所以我需要很快地通过网络通信程序把这些数据全部传送到windows端! 在linux端构建了一个server,专门把这数据传到windos段的客户端。关键是我的server受限于linux下网络传输的最大块4096B限制,所以基本上我一次就传输2000个数据,约有4000B,再加上一些包头96字节。我也用setsockopt来设置过发送缓冲区为8192B,但是不太好使!网络传输跟不上数据产生速度,导致了数据有丢失,这是老总坚决不同意的!

所以请教高手,对于这种大量数据的传输问题,在linux下是如何去解决的呢? 像对于agilent,NI的上兆上G采样率的产品,它们是如何实现把这种大数据传到windows端呢? 若是对于这种大数据量的网络情况,谈谈您的设计想法呢!

我的数据传输过程中,都是以字符数组的形式来将数据发送的。我想请问一下linux下,在网络中有二进制数据流这种传输形式吗?不解!
我的MSN:scastronaut@gmail.com QQ: 759402252,望前辈提提意见,不吝指教!
...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ykeastronaut 2009-09-22
  • 打赏
  • 举报
回复
处理器用的ARM9,s3c2440
网络芯片用的是单独一块DM9K,和普通的ARM9开发板不存在太多不同。
iamqk 2009-09-22
  • 打赏
  • 举报
回复
传2000个传不过去,是处理器能力的问题还是linux驱动的问题?
你硬件构架是怎么样的?网络是独立芯片处理还是一个主芯片统一处理的?

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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