打印
[STM32F4]

BUS Hound测虚拟串口速度不可信!虚拟串口速度可以到多高?

[复制链接]
13061|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
玄德|  楼主 | 2014-6-24 14:56 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 玄德 于 2014-6-24 15:19 编辑

F407平台,在库函数上操作,做USB虚拟串口。
今天测试下位机给PC上传数据的速度,用 BUS Hound 和串口助手进行对比,前者根本不可信。有真相为证。

方法:
用手机秒表计时,误差在1秒以内;
用串口助手统计接收的字节数,与  BUS Hound 做对比;
为了避免显示可能造成影响,特意关闭助手的显示功能,只统计;
换用了两个串口助手,一个叫 comdebug(不常见),另一个是 AccessPort (比较权威吧?!),结论相同。

20秒钟(最多不超过21秒),助手接收到大约 1200K 字节,折算一下,每秒 60K 字节。
同时,BUS Hound 统计的个数,与助手是相同的,但显示的速度却极高,达到每秒七、八百K很常见,甚至观察到3.4MB !
即使加上协议规定的“废话”,也不会差这么多吧?!
最多可以认为是“瞬时速度”,没有应用价值。

两次测试,结论相同,个数统计是可信的,但测速不可信!

现在想知道,虚拟串口的速度究竟可以有多高?

有图为证:







求高手出面!



沙发
bjxdylzsts| | 2014-6-24 15:19 | 只看该作者
高手来也,混脸熟

使用特权

评论回复
板凳
想做大牛的小马| | 2014-6-24 15:26 | 只看该作者
我个人的理解啊,不一定正确,虚拟成串口后,根据cdc协议设定虚拟串口的波特率如9600,这时你的串口工具抓到的,
就是这个串口的速率,而你的bus-bound抓的就不一样的,毕竟只是虚拟串口,走的还是usb协议,这个抓到的应该包含了
很多frame,in,out什么的,速率应该高出很多~

使用特权

评论回复
地板
玄德|  楼主 | 2014-6-24 15:31 | 只看该作者
想做大牛的小马 发表于 2014-6-24 15:26
我个人的理解啊,不一定正确,虚拟成串口后,根据cdc协议设定虚拟串口的波特率如9600,这时你的串口工具抓 ...


虚拟串口以后,应当已经无视波特率了。
注意看,有个串口波特率是115200

即使有那些“废话”存在,也不能差这么多。



使用特权

评论回复
5
想做大牛的小马| | 2014-6-24 15:48 | 只看该作者
玄德 发表于 2014-6-24 15:31
虚拟串口以后,应当已经无视波特率了。
注意看,有个串口波特率是115200

不能无视波特率的。。。。cdc协议里会set linecoding的,会设置串口波特率,停止位,奇偶校验位等。。。
还有正常通信时,你抓到的应该不是“废话”,那是host在不停的发IN传输,如果device有数据便会按cdc回,或者host有数据发给device的话,通过OUT传输给device~

使用特权

评论回复
6
想做大牛的小马| | 2014-6-24 15:48 | 只看该作者
bjxdylzsts 发表于 2014-6-24 15:19
高手来也,混脸熟

使用特权

评论回复
7
想做大牛的小马| | 2014-6-24 15:55 | 只看该作者
想做大牛的小马 发表于 2014-6-24 15:48
不能无视波特率的。。。。cdc协议里会set linecoding的,会设置串口波特率,停止位,奇偶校验位等。。。
...

如果device没有响应,则回复nak,这是之前抓的cdc的包,希望能有所帮助~

Capture.PNG (73.33 KB )

cdc

cdc

Capture.PNG (73.33 KB )

Capture.PNG

使用特权

评论回复
8
玄德|  楼主 | 2014-6-24 16:17 | 只看该作者
想做大牛的小马 发表于 2014-6-24 15:55
如果device没有响应,则回复nak,这是之前抓的cdc的包,希望能有所帮助~


似乎有道理,如果真是这样,看来速度还有提高的余地。

做过CDC吗?
用STM32F做过吗?

使用特权

评论回复
9
想做大牛的小马| | 2014-6-24 16:23 | 只看该作者
玄德 发表于 2014-6-24 16:17
似乎有道理,如果真是这样,看来速度还有提高的余地。

做过CDC吗?

额,只是参考官方的例程玩玩而已的。。。你可以直接用串口工具设置波特率即可提高传输速率哈~

使用特权

评论回复
10
玄德|  楼主 | 2014-6-24 16:27 | 只看该作者
想做大牛的小马 发表于 2014-6-24 16:23
额,只是参考官方的例程玩玩而已的。。。你可以直接用串口工具设置波特率即可提高传输速率哈~ ...


我也是用官方例程,
而且编了最简程序,最快的速度来发送,就是为了实验速度有多高,
看来,官方例程,最高只有 60KB 了。

你做过这样的测试吗?看看有效速度。

使用特权

评论回复
评论
cool_coder 2014-6-24 17:24 回复TA
我做过的和你的速度相当,大约40kB~50kB的样子(按总传输量除时间估计) 
11
想做大牛的小马| | 2014-6-24 17:11 | 只看该作者
玄德 发表于 2014-6-24 16:27
我也是用官方例程,
而且编了最简程序,最快的速度来发送,就是为了实验速度有多高,
看来,官方例程, ...

不会啊,刚才试了一下,把波特率设为100*1024*8bps,然后正常接收啊,串口收报的速率和设置的波特率差不多呢~device端while循环里,稍微延时一下,不停的发即可~

使用特权

评论回复
12
玄德|  楼主 | 2014-6-24 18:37 | 只看该作者
想做大牛的小马 发表于 2014-6-24 17:11
不会啊,刚才试了一下,把波特率设为100*1024*8bps,然后正常接收啊,串口收报的速率和设置的波特率差不 ...

100*1024*8bps

这个值,在哪里设,助手?CPU?上位机驱动?

使用特权

评论回复
13
想做大牛的小马| | 2014-6-25 07:58 | 只看该作者
玄德 发表于 2014-6-24 18:37
100*1024*8bps

这个值,在哪里设,助手?CPU?上位机驱动?

串口助手里自己敲一下O(∩_∩)O哈!

使用特权

评论回复
14
mmuuss586| | 2014-6-25 08:23 | 只看该作者

你可以再换台电脑测试下;
你的串口调试助手BAUD也太低了;

使用特权

评论回复
15
sedatefire| | 2014-6-25 09:00 | 只看该作者
bushound抓的是window底下的串口接收缓冲区,和硬件底层是没有关系的。
对于串口来说,速率的多少,取决于你的发送方,只要没有丢失数据。
单独的bushound根本无法抓包,必须有个串口工具打开串口。

使用特权

评论回复
16
sedatefire| | 2014-6-25 09:02 | 只看该作者
BUS Hound 统计的个数,与助手是相同的,但显示的速度却极高

在哪个栏位显示。

使用特权

评论回复
17
玄德|  楼主 | 2014-6-25 09:16 | 只看该作者
想做大牛的小马 发表于 2014-6-25 07:58
串口助手里自己敲一下O(∩_∩)O哈!


换个正点原子的助手,波特率设置到921600和1兆多,有效速率没有变化。不懂了。








使用特权

评论回复
18
玄德|  楼主 | 2014-6-25 09:23 | 只看该作者
本帖最后由 玄德 于 2014-6-25 09:27 编辑
sedatefire 发表于 2014-6-25 09:02
BUS Hound 统计的个数,与助手是相同的,但显示的速度却极高

在哪个栏位显示。 ...










使用特权

评论回复
19
huangqi412| | 2014-6-25 09:24 | 只看该作者
虚拟串口也有真虚拟串口和假虚拟串口。   真的即USB-UART,   假的也就是很多人为了避免写WIN驱动以及通用等原因,用虚拟串口作为通信口用而已。 真虚拟串口受限于UART口的倒腾,  假虚拟串口速度肯定是灰常灰常快滴。
虚拟串口是批量传输,   12M USB 貌似是1MS给你传一帧的机会,一帧最大1023字节,一包最大64字节,一帧数据拆成N个包传输。   第一是发大帧才能提速,发零碎小帧肯定慢,    第二是USB核操作速度,外设频率不能拼命提升到几百M几G的自然只能靠双缓冲和DMA了。

至于BUSHOUND的显示,有过滤器选择,是否设置只DATA?    接收缓冲区也有选择的        我这bushound一直就无法测虚拟串口等好几种通用的USB设备,很奇怪,只能靠点几个灯和示波器测灯调试。:L

使用特权

评论回复
20
想做大牛的小马| | 2014-6-25 09:37 | 只看该作者
玄德 发表于 2014-6-25 09:16
换个正点原子的助手,波特率设置到921600和1兆多,有效速率没有变化。不懂了。

(⊙o⊙)…和我测的有点差别啊。。。我这边100k没什么问题
可以检查一下device那一端的发送程序吗,就是device向pc发的代码怎么写的,
贴上来看看哈~

使用特权

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

本版积分规则

个人签名:有事请找 xuander

153

主题

5921

帖子

44

粉丝