[STM32F0] 怎样提高速度

[复制链接]
 楼主| jiaxw 发表于 2017-2-26 18:52 | 显示全部楼层 |阅读模式
STM32使用虚拟串口通过USB向PC发送数据,怎样提高速度
dengdc 发表于 2017-2-26 19:17 | 显示全部楼层
楼主详细说说怎么回事啊,这么说太笼统了
 楼主| jiaxw 发表于 2017-2-26 19:19 | 显示全部楼层
我最近在研究STM32 F107 的USB 虚拟串口程序。用的是官方的例程,然后自己稍微修改了一点。我的目的是通过USB向上位机PC发送数据,要求数据传输速度至少是400K字节/秒(网上有很多人回复说USB虚拟串口传输速度可以达到600K字节/秒)。但是我看例程里面,主机每隔1ms就会查询端点的中断
jiahy 发表于 2017-2-26 19:20 | 显示全部楼层
然后呢?你是怎么应对这个的呢
 楼主| jiaxw 发表于 2017-2-26 19:21 | 显示全部楼层
我满打满算,每秒能够传输1000次,每次最多传输64KB(这是由端点缓冲区决定的)
shimx 发表于 2017-2-26 19:23 | 显示全部楼层
最大传输速度只有64KB/S
 楼主| jiaxw 发表于 2017-2-26 19:24 | 显示全部楼层
嗯,这是远远达不到我的要求的。不知道网上别人说的600KB/S的传输速度是怎么来的?
 楼主| jiaxw 发表于 2017-2-26 19:25 | 显示全部楼层
谁有弄过usb虚拟串口,目前我最大的问题就不知道能否满足我要求的传输速度,USB虚拟串口到底可不可行。
liliang9554 发表于 2017-2-26 19:27 | 显示全部楼层
我也觉得超过64KKB可能性比较小,那些声称很大的人的测试,都是哗众取宠,没见有完整源码。
午夜粪车 发表于 2017-2-26 19:28 | 显示全部楼层
印象里,1ms查询一次是HID方式,虚拟串口也是这样吗?

如果也是,是否可以把时间缩短?

期待。
zhaoxqi 发表于 2017-2-26 19:33 | 显示全部楼层
全速bulk传输时,理论上1帧最多传输19个64B的包,但是受总线调度影响,达不到这么高的负载率,640KBs的速率应该还是可以达到的
jiajs 发表于 2017-2-26 19:34 | 显示全部楼层
有的东西先要规范先看一遍,确定理论上可不可行再动手
zhenykun 发表于 2017-2-26 19:35 | 显示全部楼层
bulk方式下可以达到600k,我的产品已经使用2年了,一直稳定。如果用32f207,有时能够达到1M.但是操作系统要在系统空闲的时候才可以达到1M.很多时候操作系统不允许。不过降到600K的速度,操作系统能够保证的。
jlyuan 发表于 2017-2-26 19:37 | 显示全部楼层
主机每隔1ms就会查询端点的中断...
dengdc 发表于 2017-2-26 19:38 | 显示全部楼层
适当处理后,间隔可以降到100uS一下。
heweibig 发表于 2017-2-26 19:39 | 显示全部楼层
请问楼上,怎么处理可以提升速度?100us怎么改?
lizye 发表于 2017-2-26 19:40 | 显示全部楼层
USB2.0理论上有12M,但是会有协议消耗,一般700-800k木有问题
spark周 发表于 2017-2-26 19:41 | 显示全部楼层
采用bulk传输,每包64字节
午夜粪车 发表于 2017-2-26 19:48 | 显示全部楼层
官网的虚拟串口有一个FrameCount 的计数,去掉就能提高速度,不然if (FrameCount++ == CDC_IN_FRAME_INTERVAL)影响速度
zhanghqi 发表于 2017-2-26 19:50 | 显示全部楼层
这个帖子还有从么,可以讨论么,现在在做这个,感觉速度真的不会很快呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

825

主题

9762

帖子

4

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