打印
[USB驱动]

请教一个Cy7C68013A驱动丢帧的问题

[复制链接]
1793|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
pzb19841116|  楼主 | 2013-10-21 10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟今日在编写Linux下Cy7C68013A的驱动,在Skeleton模板的基础上进行开发。
在参考了前辈的几个帖子后,增大通信时读写的字符长度,确实能提高传输速率。但是把采集的数据写入文件后用Matlab查看,发现有丢失数据的现象。丢失数据的字节数并不是芯片上缓冲区512的整倍数,而且传输速率越快,每次丢失的字节数越多。我读数据用的是在内核里开一个线程,用usb-bulk-msg来读取,现初步断定是读线程在运行过程中被CPU调度挂起,让出时间片给别的线程和进程运行时,设备发送的数据溢出缓冲区造成的。
同一个固件程序,linux下跑到4MB就会出现丢失数据的情况;而Windows下用BeginDataXfer、WaitForXfer和FinishDataXfer的方式,能稳定的跑到10MB。
各位大侠,是小弟的驱动结构有问题,还是使用函数方法有问题?为啥和官网的Windows驱动差距就那么大呢?
刚刚加入21ic,没什么分,江湖救急,大家多多担待。

相关帖子

沙发
pzb19841116|  楼主 | 2013-10-21 10:41 | 只看该作者
pc与芯片之间无存储芯片做缓存,可官方window驱动却能稳定跑到10MB。虽说要承认与国外有差距,太这差距也太大了吧。

使用特权

评论回复
板凳
pzb19841116|  楼主 | 2013-10-21 11:50 | 只看该作者
看论坛人气很旺,为什么没人出援手呀?

使用特权

评论回复
地板
pzb19841116|  楼主 | 2013-10-21 15:45 | 只看该作者
抱歉可能没有描述清楚,使用环境是usb以恒定速率向上位机传数据,我用多线程采,当设备速率到4MB以上时,就会丢失数据。暂时估计是线程调度导致。官方驱动却可以做到不丢数据,请问我的驱动设计有什么缺陷吗?

使用特权

评论回复
5
woshansi| | 2014-1-31 12:26 | 只看该作者
你这问的好像有点高端吧,不懂

使用特权

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

本版积分规则

1

主题

5

帖子

0

粉丝