打印

块传输的速度测试

[复制链接]
378|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2019-3-4 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
68013a利用端点1进行块传输的速度测试,OUT端点收,IN端点返回数据。下位机代码已经用Cypress的EZ-USB Iterface软件调通了,用Bus Hound抓了一下,上位机每发一个Bulck请求,上面都显示只有DO 然后就是跟着数据,没有其它的描述符请求!
沙发
pengf| | 2019-3-4 13:56 | 只看该作者
可是当我参照cypress提供的块传输例子,自己改写了一下。Bus Hound抓到了很多请求的描述符请求,然后才是数据,并不是只有一次DO。

使用特权

评论回复
板凳
juventus9554| | 2019-3-4 13:59 | 只看该作者


然后呢

使用特权

评论回复
地板
houcs| | 2019-3-4 14:03 | 只看该作者

单片机功耗不高,没问题的。。。。

使用特权

评论回复
5
chuxh|  楼主 | 2019-3-4 14:06 | 只看该作者
这是发一次请求的情况,如果循环发送软件就报错了!

使用特权

评论回复
6
stly| | 2019-3-4 18:02 | 只看该作者
看看你的程序吧

使用特权

评论回复
7
chuxh|  楼主 | 2019-3-4 18:05 | 只看该作者

int PACKLEN=60;
   PUCHAR buf=new UCHAR[PACKLEN];
   ZeroMemory(buf, PACKLEN);
  LONG buflen =  PACKLEN;
  memset(buf,0x5a,PACKLEN);
   USBDevice->BulkOutEndPt->XferData(buf,buflen);
//USBDevice->BulkOutEndPt->BeginDataXfer(buf,buflen,&outOvLap);这个也试过更上面效果一样。

使用特权

评论回复
8
llljh| | 2019-3-4 18:08 | 只看该作者

USBDevice->BulkOutEndPt->TimeOut = 200;  // 200ms timeout
一般加个延时,注意输出输入的写法,也就这样了。

使用特权

评论回复
9
dingy| | 2019-3-4 18:12 | 只看该作者
你确定固件是用端点1吗?

使用特权

评论回复
10
pengf| | 2019-3-4 18:14 | 只看该作者
嗯,端点1一般很少有人用。端点0用来做命令解释,收发数据用2468,端点1闲置。

使用特权

评论回复
11
renyaq| | 2019-3-4 18:17 | 只看该作者
抓包那软件意思不大,会造成系统的不稳定。

使用特权

评论回复
12
chuxh|  楼主 | 2019-3-4 18:20 | 只看该作者
还是端点1块传输,不过偶发现一个有意思的现象和传输速度有关,刚开始的时候我设置一次传64字节,后来依次设置一次传512字节,1024,2048字节(自发自收,传过去多少字节就返回多少,然后比较一是否一致,所以一个来回就是双倍的字节)。

使用特权

评论回复
13
houcs| | 2019-3-4 18:23 | 只看该作者
随着一次传的字节的增加速度也会很可观的增长起码有1点几兆字节每分钟。而且CPU使用率也随着减少!

使用特权

评论回复
14
supernan| | 2019-3-4 18:26 | 只看该作者
上面现象很有意思,这样做是不是真可以提高传输速度啊?

使用特权

评论回复
15
chuxh|  楼主 | 2019-3-4 18:29 | 只看该作者
我选择一次传2048字节,我这里测得的速度是17.1MByter/分钟这个速度是不是已经很快了?

使用特权

评论回复
16
pengf| | 2019-3-4 18:32 | 只看该作者
17.1MByter/分钟,相当于2.3Mbit/s,USB2.0480Mbit/s,2.3/480,占用带宽的0.5%,你说是不是很快。。

使用特权

评论回复
17
chuxh|  楼主 | 2019-3-4 18:34 | 只看该作者


呵呵,是啊

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝