打印

块传输的速度测试

[复制链接]
387|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2017-9-27 22:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
68013a利用端点1进行块传输的速度测试,OUT端点收,IN端点返回数据。下位机代码已经用Cypress的EZ-USB Iterface软件调通了,用Bus Hound抓了一下,上位机每发一个Bulck请求,上面都显示只有DO 然后就是跟着数据,没有其它的描述符请求!
沙发
chuxh|  楼主 | 2017-9-27 22:25 | 只看该作者

可是当我参照cypress提供的块传输例子,自己改写了一下。Bus Hound抓到了很多请求的描述符请求,然后才是数据,并不是只有一次DO。

使用特权

评论回复
板凳
juventus9554| | 2017-9-27 22:26 | 只看该作者

然后呢

使用特权

评论回复
地板
chenho| | 2017-9-27 22:26 | 只看该作者
单片机功耗不高,没问题的。。。。

使用特权

评论回复
5
chuxh|  楼主 | 2017-9-27 22:28 | 只看该作者
这是发一次请求的情况,如果循环发送软件就报错了!

使用特权

评论回复
6
stly| | 2017-9-27 22:30 | 只看该作者

看看你的程序吧

使用特权

评论回复
7
chuxh|  楼主 | 2017-9-27 22:32 | 只看该作者

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| | 2017-9-27 22:37 | 只看该作者


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

使用特权

评论回复
9
dingy| | 2017-9-27 22:38 | 只看该作者

你确定固件是用端点1吗?

使用特权

评论回复
10
pengf| | 2017-9-27 22:39 | 只看该作者


嗯,端点1一般很少有人用。端点0用来做命令解释,收发数据用2468,端点1闲置。

使用特权

评论回复
11
renyaq| | 2017-9-27 22:41 | 只看该作者

抓包那软件意思不大,会造成系统的不稳定。

使用特权

评论回复
12
chuxh|  楼主 | 2017-9-27 22:43 | 只看该作者

还是端点1块传输,不过偶发现一个有意思的现象和传输速度有关,刚开始的时候我设置一次传64字节,后来依次设置一次传512字节,1024,2048字节(自发自收,传过去多少字节就返回多少,然后比较一是否一致,所以一个来回就是双倍的字节)。

使用特权

评论回复
13
chuxh|  楼主 | 2017-9-27 22:44 | 只看该作者
随着一次传的字节的增加速度也会很可观的增长起码有1点几兆字节每分钟。而且CPU使用率也随着减少!

使用特权

评论回复
14
supernan| | 2017-9-27 22:45 | 只看该作者
上面现象很有意思,这样做是不是真可以提高传输速度啊?

使用特权

评论回复
15
chuxh|  楼主 | 2017-9-27 22:47 | 只看该作者

我选择一次传2048字节,我这里测得的速度是17.1MByter/分钟这个速度是不是已经很快了?

使用特权

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

使用特权

评论回复
17
chuxh|  楼主 | 2017-9-27 22:51 | 只看该作者

呵呵,是啊

使用特权

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

本版积分规则

936

主题

11296

帖子

2

粉丝