Usb2.0速度


  • 首页

  • 归档

  • 邮件

  • 博客

  • 关于

  • 搜索

发表于 2018-09-02 | 分类于 Linux USB

字数统计: 954 | 阅读时长 ≈ 4

我是专门负责USB模块这部分的,有时候需要连接各种USB设备,比如说USB NET、USB Audio、USB Storage等。比如说最近碰到的一个通过USB NET将手机的地图画面传递给车机,车机上滑动地图的体验非常的差。然后客户就说测出来实际上USB的传输速度只有十几M,High-speed的理论速度有480M,肯定是我们车机的USB控制器有问题,有可能是我们的车机将手机识别成全速设备了。
很明显,要说服客户,必须给出强有力的数据,也需要解释关于USB的传输速度是怎么一回事,要怎么来衡量。USB2.0包括Full-speed和Low-speed。这里为了描述方便,将USB2.0与High-speed等价起来。
本文只是简单的解释了一下为什么USB的实际传输速度比USB Spec中说的理论传输速度差异那么大,具体等知道得更多的话再做补充。


USB理论传输速度

  • Low-speed:1.5 Mb/s = 1.5Mbps = 0.1875MB/s = 0.1875MBps
  • Full-speed:12 Mb/s = 12Mbps = 1.5MB/s = 1.5MBps
  • High-speed:480 Mb/s = 480Mbps = 60MB/s = 60MBps

速度单位有小b和大B的区分,小b为bits,大B为Bytes。如果没有将小b和大B区分清楚,就去谈论传输速度都是瞎扯。红色部分是USB Spec宣传的理论速度。
我们使用ipref工具测试了USB NET的TCP的传输速度UDP的丢包率。得到TCP传输速度平均为112Mbits/s = 14Mbytes/s,这个速度是符合苹果的CarPlay认证要求。


为什么USB2.0的实际传输速度远低于理论速度

在Linux测试U盘读写速度文章中,测试了USB2.0 U盘的读写速度,平均约为13MB/s。同样的,在Windwos上,我们拷贝USB2.0 U盘的内容,传输速度也才十几MB/s。这明显与USB2.0上写的480Mb/s = 60MB/s 有着很大的差距。关于为什么差距那么大,在 https://www.zhihu.com/question/20186057 的文章已经写得很清楚了,在此进行了整理学习。

对于USB2.0,480Mbps是指总线的频率,也就说,总线信号每秒最多能传输这么多bit,这些信号包括控制信号和数据信号。USB2.0规范里给了一个公式,算传输时间的(算法解释就太复杂了,见USB SpecUSB2.0 5.11.3 Calculating Bus Transaction Times的章节):

1
High-speed (Input):Non-Isochronous Transfer (Handshake Included) = (55 * 8 * 2.083) + (2.083 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_DelayBitStuffTime(Data_bc)

这部分就是数据传输需要的时间,算起来麻烦,但是看到前面有一个2.083就能看出来,传输一个bit基本上需要2.083倍的时间,所以,简单的把480Mbps除以2.083,再转换成字节大概是:28.8MB/s,也就是说,最多就这么快,再刨除bulk-only模式里的那一堆堆的多余指令:一个包需要16个字节左右,Windows一次请求是4KB(可能是为了页对齐),再浪费掉1%左右的时间,以及host delay,也就是主机的校验延迟,那么实际速度就20多MB/s,不管是读还是写。

在https://superuser.com/questions/317217/whats-the-maximum-typical-speed-possible-with-a-usb2-0-drive 中也解释了为啥USB的实际传输速度慢。

Full-speed每1ms会传输一个SOF,也就是微帧;
High-speed每125us会传输一个SOF,相当于1ms传输8个微帧;
Bulk传输最大的包是512Bytes,理论上每个SOF可以传输13个包,那么理论上最大的传输速率为:
512Bytes 13微帧8微帧/ms * 1000ms/s= 53248000Bytes/s = 53MB/s
USB控制器每个微帧仅允许8个或10个数据包,相当常见,分别产生41MB/s或33MB/s的峰值。

USB2.0�����ٶ��Ƕ���USB2.0�����ٶ��Ƕ���
USB2.0����ӵ��USB1.1�й涨��1.5Mbps��12Mbps��������ģʽ���⣬��������480Mbps�������ݴ���ģʽ(ע���ڶ���USB2.0�Ĵ������ʽ���800Mbps���������ֵ1600Mbps)����ȻUSB2.0�Ĵ����ٶȴ�������ˣ����乤��ԭ����ģʽ����ȫ��USB1.1һ���ģ�����ߵ�480 Mbps�Ĵ����ٶȵ���ؼ�����������ߵ�λ�������ʣ�USB1.1�ĵ�λ���ݴ���ʱ����1���룬��USB2.0�ĵ�λ���ݴ���ʱ����ﵽ��125΢�롣

USB2.0����ߴ�������Ϊ480Mbps����60MB/s�����������Ҫע���������۴���ֵ�������̨�豸����һ��USBͨ����������оƬ���ÿ̨�豸��֧��Ĵ������з��䡢���ơ�����USB1.1�У������豸ֻ�ܹ���1.5MB/s�Ĵ����������һ���豸ռ��USB�ӿ����д����Ļ����ͻ�������豸��ʹ�ô������ѡ�

USB2.0 High Speed�������ٶ���480Mbps����Ӧ֮ǰ��USB2.0��
USB2.0 Full Speed�������ٶ���12Mbps��Ҳ���ǹ�ȥ��USB1.1��

ѡ��USB�����������˽����¼��㣺

��USB2.0����Ϊ����USB�����ܹ��ﵽ���ߵĴ����ٶ�480Mbps��USB1.1����ߴ�������Ϊ12Mbps����Ϊ��ȫ��USB�����ڹ���USB��������ʱ��Ҫ����ȫ�١����Ϊ�����١��������Ǻε����ɿ����档

USB2.0������������ɫͼ־���С�USB Hi-Speed������USB1.1�IJ�ɫ��־����ǡ�USB Basic Speed�������⣬�ܶ೧�̳��ڲ�Ʒ��װ���ϱ��С�USB2.0 READY������40 Times Faster Than USB 1.1����USB1.1��40��������Ҫע�����֡�

��2003��6�·ݣ�USBЭ������������USB�Ĺ��ͱ�׼����������USB��׼��ԭ�ȵ�USB1.1�ijƺ��ij��ˡ�USB 2.0 Full Speed����ȫ�ٰ棩��ͬʱ��ԭ�е�USB2.0�ij��ˡ�USB2.0 High-Speed�������ٰ棩����ͬʱ�������µı�ʶ����ȻĿǰUSB1.1��USB2.0һ����������USB2.0��ǰ׺���������̼������ۿ��ӣ������������������ʱһ��Ҫע��������Full Speed��ȫ�ٰ棩��High-Speed�����ٰ棩������

������֧����ʹ��USB2.0���������Ĺؼ����ر��Ƕ��ڻ���ʹ��PIII����PII���εıʼDZ����Ի�̨ʽ���ԵĶ�����ע����һ�㡣

Ҫ�����ĵ����Ƿ�֧�ֺ;߱�USB2.0��ڡ������δ򿪡��豸��������ͨ�ô������ߡ������С�Enhanced����ǿ����USB��������ѡ�ͬʱҲ�ῴ����������USB��������������������ʹUSB1.1�豸�������¼����ԣ�����֤����֧��USB2.0�豸���谲װUSB2.0�����������򣬸�����������Ҳֻ����USB1.1�����12Mbps��ʵ�ʲ�����6Mbps���ٶȴ��䡣��ʹ��USB������Ҳ��ע����һ�㣬һ��Ҫѡ��USB2.0�ļ�������

USB1.1���ٶȣ����������1.5MByte/s��������ʵ�ʴ����ϣ��ܳ���1M/S��USB�豸û�ж��٣�MP3Ҳ�����⣬һ��ֻ�м���KB/s��

��������USB2.0ȫ�٣�Full-speed�������߾�������ֵ�ô������ģ���Ϊ��USB2.0ȫ�٣�Full-speed����MP3��2004����°���ǰ��δ�еض��������������ֿ������൱�ľ������ƣ�USB2.0ȫ�٣������USB2.0���ٸ�ǿ�Ƶġ���ʵ���ϣ��б����ƣ�USBЭ������������USB��׼����ԭ�ȵ�USB 1.1�ij���USB 2.0 Full Speed��ȫ�ٰ棩��ͬʱ�����е�USB 2.0�ij���USB 2.0 High-Speed�����ٰ棩��

������ʵ��Ӧ���У�USB2.0ȫ�٣�Full-speed���Ĺ�����ȷ��������������ô������Զû�дﵽUSB1.1�淶������ٶȣ���USB1.1��ʵ���ٶȲ��Ҳ�������ԡ�

USB2.0��U�̣�ʵ�ʵĴ����ٶ�

��ȥ���ͨ����ΪUSB�ӿڷ�Ϊ�����ࡪ��USB 1.1��USB 2.0�����ߵ�����������ڴ������ʣ�USB 1.1������������ݴ�����Ϊ12Mbps��USB 2.0Ϊ��40�����ﵽ��480Mbps����ʵ�ϣ�������ʶ�ڽ����Ѳ���ȫ׼ȷ�����Ÿ��ִ������ⲿ�洢�����ռ���USB�ӿڵı�׼Ҳ��֮���Ը��¡�����֪����USB 2.0�ӿڱ�׼����Compaq��Hewlett Packard��Intel��Lucent��Microsoft��NEC��Philips�ȼ��ҹ�˾��ͬ�ƶ�������1999��10�·�������Ŀǰ�Ѽ����޶�����¡������°汾��USB 2.0�ӿڱ�׼�У�USB 1.1��˵���Ѳ������ڣ�����ͳ��ΪUSB 2.0�������ֱ仯��δ�����������������֪����Ҳ���������̺;����̼������ã������û���ѡ����ز�Ʒʱ�������ء�
�����µ�USB 2.0��׼��USB�ӿ��ٶȻ���Ϊ���࣬�Ӹߵ��ͷֱ�Ϊ480Mbps��12Mbps��1.5Mbps��Ϊ������ʶ�����֣��������1��
USB 2.0�ӿڱ�׼�������ٶȹ��Ӧ��
���� �������� ����Ӧ��
High-speed 25Mbps��400Mbps(���480Mbps) ��Ƶ���洢����Ƭ�Ϳ���
Full-speed 500Kbps��10Mbps(���12Mbps) ��������Ƶ�Ͷ���
Low-speed 10Kbps��100Kbps�����1.5Mbps�� ���̡�������Ϸ����
����������ı�����Կ�������ȥ��USB 1.1�Ѹ���ΪUSB 2.0 Full-speed��ȫ�ٰ棩����USB 2.0�����ΪUSB 2.0 High-speed�����ٰ棩����������Low-speedģʽ����Ȼ�����ֽӿڶ��ɱ���ΪUSB 2.0�ӿڣ������ǵ��ٶȲ�����ȥ��Զ��

����ͨ�����϶�USB 2.0�ӿڱ�׼������ʶ�����Ŀǰ�IJ�Ʒ״��Ӧ�������ס���ʵ���ܶ೧�������������Ƴ�����ν��USB 2.0������ֻ��USB 2.0 Full-speed�棬����ȥ��USB 1.1

ʵ�ʲ��Ա�����USB 1.1���̵����ʵ�ʴ�������ֻ�ܴﵽ1MB/s���ң���USB 2.0�������ٿɴﵽ3MB/s������ͻ���߿ɴ�5MB/s���ϡ�
����USB2.0��U��

��ĵ���Ӧ����USB1.1�ӿ�,USB2.0�ӿ�U�̼�ʹ����ýӿ�Ҳ��������ʹ��,ֻ�Ǵ������������½�,USB1.1�ӿڴ�������Ϊ1.5MB/s,��USB2.0�ӿ��������ֹ��,����Half-speed���������Ϊ1.5Mb/s,Full-speed���������Ϊ12Mb/s,High-speed���������Ϊ480Mb/s,��֪�����̨��USB2.0�ӿ�U���������ֹ淶,��������ڿ����������ļ�,�ٶ��ϵIJ����Ǹо�������.
�������ʹ��USB2.0�ӿ�,���Կ��ǹ���һ��USB2.0ת�ӿ�,һ����˵,ֻ��ռ��һ��PCI��ۣ������ṩ4����480Mbit/s�����ʴ������ݵ�USB2.0�ӿڣ����Է������Ӹ����ܱ��豸��
usb�ӿ��к���

USB���д����ٶȿ죨USB1.1��12Mbps��USB2.0��480Mbps����ʹ�÷��㣬֧���Ȳ�Σ�����������������ŵ㣬����������ꡢ���̡���ӡ����ɨ���ǡ�����ͷ�������̡�MP3�����ֻ�������������ƶ�Ӳ�̡����ù�������USB������ ADSL Modem��Cable Modem�ȣ��������е��ⲿ�豸��
USB1.1�Ľ��д����ٶȴ���Ϊ���٣�

USB1.1��������Ϊ12MbPS��1.5��/�롣USB2.0����ߴ�������Ϊ480MBPS��60MB/s��
�������۴���ֵ��
˵��USB1.1��׼�ӿڴ������ʣ��Ҿ͵ö�˵���䡣�����˶���"12MBPS"���Ϊ12��/�롣��ʵ�����Ǵ���ģ�Ҫ����12��/����ٶȴ���720M��һ�Ź��̵������������ݽ�����Ҫ60��͹��ˣ�����ٶȿ���Ҫ��һ���Ӳ�̻����أ�����ʵ��"12MBPS"ӦΪ12�ױ���/���12��λ/�룬������1.5��/�룬��ô����������˰ɡ���Ҫ��bit��byte˵��bit��byteͬ��Ϊ"����"�������������ȵ�λ��bit=���ء�λ��byte=�ֽڡ�8λԪ�飬��1byte=8bits,���߻�����1��8�Ĺ�ϵ��MBPS=mega bits per second(�ױ���/�����λ/��)�����ʵ�λ��MB=mega bytes(�ױȡ����ֽ�)������λ��1MB/S�����ֽ�/�룩=8MBPS����λ/�룩���������˰ɣ��ɱ�JS�����̣���˵��12�׸����ˡ���˵1.5MB/S�ǿ��Խ��ܵģ�����12MB/S��ȾͲ�Զ�ˡ�1.5MB/S�Դ������USB�豸��˵�㹻���ˣ�������Ҫ����һ��������30GB��USBӲ�̴����Ӳ���п���10GB����������Ҫ��1.9Сʱ����ֻ������ֵ��ʵ����USB�ӿڵ�����ֻ��1.0MB/S���ң�����һ���USB�豸Ҳ���㹻�õģ����Ǵ����Ӳ���п���10GB����������Ҫ��2.84Сʱ�����������ڼ䣬���CPU��Ӳ��Ҳ�Ƿ�������������æ���������ֻ��ɵ�ȡ�����Ȼ�DZȽϼ��˵��������Ҳ�޲���¶��USB�ӿڴ���������Ҫ��һ����ߡ����ں��ˣ��·�����USB2.0��׼�����ҵ��»���

USB2.0�淶����USB1.1�淶�ݱ�����ģ��������Ŀ���ǽ�USB1.1�Ĵ������ʣ�12mbps�����10-20������ʵ����ȴ�����40���ﵽ��480mbps������ΪMBΪ60MB/S��USB2.0�����USB1.1��ֱ���ʵķ�Ծ����������ĵط���USB2.0��USB1.1���Ի�����ݣ�Ҳ����˵��USB2.0�豸���Թ�����USB1.1�ӿ��ϣ���֮USB1.0�豸Ҳ���Թ�����USB2.0�ӿ��ϡ���Ȼ��USB1.1�豸���ٶȲ�����Ϊ��װ��USB2.0�ӿ��϶����κ���ߣ�ͬ����װ��USB1.1�ӿ��ϵ�USB2.0�豸���ٶ�Ҳ�ᱻ������12mbps��1.5MB/S�����¡�USB2.0��USB1.1ʹ�õ����ӵ��¼��˿ھ���ͬ��Ӣ�ض���˾�ڽ������µ�Ӣ�ض���������̳���������ʾʱ���Ͱ�һ̨USB2.0ɨ���Ǻ�һ̨USB 1.1��ӡ��ͬʱ������һ̨������ϣ��ɹ�����ɨ���ǽ�һҳ���Ÿ������������ô�ӡ����ӡ������

��ô���ڹ���USB�豸ʱ�Dz��Ǿ�һ��Ҫ��ѡUSB2.0���أ���Ҫ������ľ���������ۣ�������������USB�ӿ�Ҫ֧��USB2.0�淶�����Ҫ��USB2.0�����Ƿ��Ҫ��60MB/S�Ĵ������ʻ�ֻ������ֵ������Ҫ�ܵ�ϵͳ��������Լ��CPU��Ӳ�̺��ڴ�ȣ������ֻҪ�໨�����Ӿ�����