打印
[STM32F4]

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

[复制链接]
楼主: 玄德
手机看帖
扫描二维码
随时随地手机跟帖
21
玄德|  楼主 | 2014-6-25 09:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
本帖最后由 玄德 于 2014-6-25 09:48 编辑
huangqi412 发表于 2014-6-25 09:24
虚拟串口也有真虚拟串口和假虚拟串口。   真的即USB-UART,   假的也就是很多人为了避免写WIN驱动以及通用等 ...

说得靠谱,就是要从原理、机制上分析。
1ms一帧,如果一包最大64字节,有效速率最大值就是每秒64K字节了。
我的现象应当就是这种情况。

那么下一个问题,怎样发帧呢?
版主用STM32F操作过吗?


使用特权

评论回复
22
玄德|  楼主 | 2014-6-25 09:57 | 只看该作者
本帖最后由 玄德 于 2014-6-25 10:04 编辑
想做大牛的小马 发表于 2014-6-25 09:37
(⊙o⊙)…和我测的有点差别啊。。。我这边100k没什么问题
可以检查一下device那一端的发送程序吗,就是de ...

程序如下,初始化之后就开始传输。有没有延时,无所谓。
我是F407平台,CDC库和103不一样。
为了提速,我已经跳过ST留给用户的数据管理程序,直接调用更深一层的函数。

int main(void)
{
u8        a[100];

USBD_Init (  &USB_OTG_dev, USB_OTG_FS_CORE_ID, &USR_desc, &USBD_CDC_cb, &USR_cb  );
MySystemInit();

for    ( i=0; i<63; i++ )
        {        a[ i ] = i;        }

/*--------------------------------------------*/
while  (1)
        {
        if        ( USB_Tx_State )
                {        ;        }                        //等待发送完成。
        else
                {                                           //发送。
                USB_Tx_State = 1;
                DCD_EP_Tx( &USB_OTG_dev, CDC_IN_EP, ( u8* ) & a[ 0 ], 63 );
                }
        }
/*--------------------------------------------*/



使用特权

评论回复
23
icecut| | 2014-6-25 10:06 | 只看该作者
407的usb是FS的.最高也就500KB/s,线速率12Mbps.是永远都达不到1.9MB/s的

使用特权

评论回复
24
玄德|  楼主 | 2014-6-25 10:15 | 只看该作者
icecut 发表于 2014-6-25 10:06
407的usb是FS的.最高也就500KB/s,线速率12Mbps.是永远都达不到1.9MB/s的


刚才居然看到 10M,有图:






使用特权

评论回复
25
huangqi412| | 2014-6-25 10:20 | 只看该作者
icecut 发表于 2014-6-25 10:06
407的usb是FS的.最高也就500KB/s,线速率12Mbps.是永远都达不到1.9MB/s的

STM32F103...   单缓冲,纯测速,700多K还是没问题的。    F4外设频率更高,应该可以再提升

使用特权

评论回复
26
玄德|  楼主 | 2014-6-25 10:26 | 只看该作者
huangqi412 发表于 2014-6-25 10:20
STM32F103...   单缓冲,纯测速,700多K还是没问题的。    F4外设频率更高,应该可以再提升 ...


用官方原始库,还是有点实质的改动?

使用特权

评论回复
评论
huangqi412 2014-6-25 11:34 回复TA
原始库可以。。。 
27
huangqi412| | 2014-6-25 10:33 | 只看该作者
玄德 发表于 2014-6-25 09:45
说得靠谱,就是要从原理、机制上分析。
1ms一帧,如果一包最大64字节,有效速率最大值就是每秒64K字节了。 ...

实在不行的话,不用纠结在BUSHOUND上,  反正我的是无法抓虚拟串口等几种常见USB设备,很奇怪,也懒得管,用点灯+示波器调试一样杠杠滴。

帧拆成包发。。。  你可以把串口数据寄存器看成包大小=1,你PRINTF一个字符串就相当于用串口发一个帧。 类比USB帧拆包...
双缓冲无突破性提升,费资源,除非速度刚刚卡在那里要提升一下,不然没大的必要弄。 用大帧传一般够了。

使用特权

评论回复
28
icecut| | 2014-6-25 11:49 | 只看该作者
huangqi412 发表于 2014-6-25 10:20
STM32F103...   单缓冲,纯测速,700多K还是没问题的。    F4外设频率更高,应该可以再提升 ...

usb700KB以上就不是卡在cpu端了..你可以用协议分析仪抓包

使用特权

评论回复
29
想做大牛的小马| | 2014-6-25 12:11 | 只看该作者
玄德 发表于 2014-6-25 09:45
说得靠谱,就是要从原理、机制上分析。
1ms一帧,如果一包最大64字节,有效速率最大值就是每秒64K字节了。 ...

恩,有道理,受教了!
原以为full-speed的12Mb,虚拟串口的速率应该不用考虑带宽的问题,忽略了1ms一帧这个!
协议上写了,一帧里的data packet的字节可以从0~1024,cdc是bulk传输,在枚举的时候,获取设备描述的时候,里面会有max packet size,st的设为了64~device是针对endpoint操作,帧的发送自动完成~

使用特权

评论回复
30
huangqi412| | 2014-6-25 12:56 | 只看该作者
icecut 发表于 2014-6-25 11:49
usb700KB以上就不是卡在cpu端了..你可以用协议分析仪抓包

扯淡了,提高外设速度是肯定可以提高USB传输速度的,只是这种笨办法效率很差而已。USB差分线双向传输,任何时候只可能一个方向,不可能同一时刻双向传输, 命令和数据依次传输,只要保证数据线上数据包间隔时间里可以做N多N多事就可以 假设芯片速度提高到10000000000G速度,肯定是不用双缓冲啊DMA啊之类的,轻松达到理论传输速度,因为你传个命令到准备收数据的间隔里哪怕是皮秒时间我都能把一本西游记背几万遍了嘛。  
F4必须比F1快,但是只会快一点点,因为频率相差只一点点嘛。

使用特权

评论回复
31
raoxianbin| | 2014-6-25 13:10 | 只看该作者
问个比较低级的问题   如果一包最大64字节   如何实现几百K的传输速率呢     每秒很多包? 还是?

使用特权

评论回复
32
liguang02| | 2015-5-4 20:45 | 只看该作者
icecut 发表于 2014-6-25 10:06
407的usb是FS的.最高也就500KB/s,线速率12Mbps.是永远都达不到1.9MB/s的

407的usb不支持hs的么?

使用特权

评论回复
33
icecut| | 2015-5-6 16:17 | 只看该作者
liguang02 发表于 2015-5-4 20:45
407的usb不支持hs的么?

缺少phy,自己外挂可以

使用特权

评论回复
34
liguang02| | 2015-5-6 19:42 | 只看该作者
icecut 发表于 2015-5-6 16:17
缺少phy,自己外挂可以

但支持hs的fs模式的,

使用特权

评论回复
35
useisbb| | 2015-6-13 15:02 | 只看该作者
我的win7 64的系统就是不行
真尼玛郁闷了,什么破烂东西

使用特权

评论回复
36
q244529200| | 2015-6-26 11:28 | 只看该作者
MARK 后边用

使用特权

评论回复
37
gaoyang9992006| | 2015-6-26 13:13 | 只看该作者

虚拟串口也有真虚拟串口和假虚拟串口。关键虚拟串口速度那么高能跟单片机通信吗,单片机可没有那么高速的啊。

使用特权

评论回复
38
玄德|  楼主 | 2015-6-26 23:05 | 只看该作者
gaoyang9992006 发表于 2015-6-26 13:13
虚拟串口也有真虚拟串口和假虚拟串口。关键虚拟串口速度那么高能跟单片机通信吗,单片机可没有那么高速的 ...


高速主要是为了和 PC 通信。

虚拟串口真假?头一次听说,愿闻其详。

使用特权

评论回复
39
玛尼玛尼哄| | 2015-6-27 09:50 | 只看该作者
结论相同,个数统计是可信的,但测速不可信!----坚决抵制A莫这个烂-货!-----

使用特权

评论回复
40
gaoyang9992006| | 2015-6-27 10:52 | 只看该作者
那就是PC间通信可以做到的速度了。

使用特权

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

本版积分规则