阅读:1613回复:4
68013 Bulk In 传输4096行×4096列×16bit数据时丢失数据
我用EP2作为bulk in端点,fifo配置成4×512,FD【0..7】为数据总线(即8bit位宽),异步传输模式,SLWR有FPGA产生,其的频率为8Mhz,
一次传输的数据量为4096行×4096列×16bit的数据,来自于一颗AD 芯片。 上位机的驱动程序为cyusb.sys。 结果基本每次传输都发生数据丢失的现象,其丢失位置为随机的,每次丢失的数据量也是随机的,如8192bits等,但不会多的离谱。 不知道是否也有人遇到过这个问题,很头疼。 希望各位走过路过的各抒己见,无论对错! 非常感谢 |
|
沙发#
发布于:2008-09-12 12:22
连续不断数据,如果没用缓存或者irp上处理,肯定容易丢数据
|
|
板凳#
发布于:2008-09-12 17:18
必须要同时压多个IRP下去(一个收到数据后返回上层处理时还会有别的IRP在等待),才能保证host这边处理的速度和平滑性。
|
|
地板#
发布于:2008-09-16 12:14
貌似是硬件那边fifo的问题。要么就像楼上说的多放IRP(例如chained urb),要么就在firmware里面加上控制(例如收到host的ack后再放新数据)。
|
|
|
地下室#
发布于:2008-10-10 10:16
smilebear 同时压多个IRP下去---意味着需要对驱动进行较大的修改或重新写驱动,工作量较大
rayyang2000 在firmware里面加上控制--听起来还是比较简单的一种方法--不过数据量大,连续传输,速率较高时,人工干预好像更容易导致数据丢失。 |
|