usb传输速度慢,只有33,34KB/S

[复制链接]
4766|11
 楼主| zxl6534 发表于 2011-12-30 11:34 | 显示全部楼层 |阅读模式
我用stm32做的下位机,实现和上位机的USB通信,但是发现速度只有33KB/S左右,并且下位机不做其他的操作在发送完成中断里设置端口valid。上位机应用程序也不停发送in令牌,这样速度也很慢,求教可能是啥问题呢,谢谢
yu0405jie 发表于 2011-12-30 13:36 | 显示全部楼层
这个是不是和每次发送的数量有关啊?你每次发送1024个数据试试呢?
 楼主| zxl6534 发表于 2011-12-30 13:42 | 显示全部楼层
但是stm32提供的usb缓存区只有512kb,而且st提供的例程都是64kb一个包发送的,速度问题应该不是出在这个地方
香水城 发表于 2012-1-3 15:59 | 显示全部楼层
“在发送完成中断里设置端口valid”  你这个发送完成中断是什么?
 楼主| zxl6534 发表于 2012-1-5 14:28 | 显示全部楼层
就是USB端口的发送完成中断,在中断里直接置端口为VALID,将下位机等待时间减到最小
香水城 发表于 2012-1-5 14:46 | 显示全部楼层
上位机控制着数据传输的频次,如果上位机不发送Token,速度肯定上不去。
 楼主| zxl6534 发表于 2012-1-5 15:12 | 显示全部楼层
我用DEBUGVIEW这个软件检测发现我In Taken发送的频率1秒最多只有200多个,慢的时候每秒只有40、50个。我的环境是USB2.0,这样的发送频率导致下位机一个NAK都没有了,传输速度超级慢,只有34KB/S左右,在驱动里我也没有延时函数啊,什么频率会这么慢呢
香水城 发表于 2012-1-5 15:15 | 显示全部楼层
1)上位机的软件控制Token的发送的频率
2)如果是Interrupt端点,下位机描述符中给出了要求的In Token频率;除此之外,下位机不能左右Taken的频率
 楼主| zxl6534 发表于 2012-1-5 15:20 | 显示全部楼层
上位机是另一个工程师写的,现在怎么也找不出In Taken 频率慢的原因,传10多MB数据要等十几分钟,真是纠结啊
香水城 发表于 2012-1-5 15:46 | 显示全部楼层
上位机是另一个工程师写的,现在怎么也找不出In Taken 频率慢的原因,传10多MB数据要等十几分钟,真是纠结啊
zxl6534 发表于 2012-1-5 15:20


解铃还需系铃人,这个问题一定要找这个写上位机软件的人!
xsgy123 发表于 2012-1-5 22:12 | 显示全部楼层
找编软件的工程师问问
lxyppc 发表于 2012-1-6 10:07 | 显示全部楼层
10多MB的数据最好用Bulk来传
如果软件上没有瓶颈,用Bulk方式传输,STM32可以达到USB Full Speed的理论最大速度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部