微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > usb接口慢怎么办

usb接口慢怎么办

时间:12-12 来源:互联网 点击:
USB 2.0采用的是传统的Bulk-Only Transport(BOT)协议,由于没有进行改善,随着目前高速存储设备的出现,BOT协议阻碍USB传输速率造成usb2.0传输速度慢的问题已经显现出来。而目前的USB 3.0新增了USB Attached SCSI Protocol(UASP)协议,新增了两组数据总线,支持多命令并发执行和NCQ队列功能,这样就可以发挥出5Gbps的高速带宽优势。

另外,USB 2.0使用了NRZI(Non-Return-to-Zero Inverted)编码方式,它是基于串行传输模式,传输连续的0、1字符串,由于其中需要强制插“0”以保持发送端和接收端频率同步会造成USB 2.0传输带宽的浪费。而USB 3.0采用了时下流行的8b/10b编码方式,有效数据利用率为80%,也就是USB 3.0的有效数据传输带宽为500MB/s。

大家都知道USB 2.0的理论带宽是480Mbps,也就是60MB/s的数据传输速率,但实际使用中我们会发现这个理论速度是不理想的,长期以来USB 2.0最高实际传输速度被限制在30MB/s左右,只能达到理论带宽的一半。这是由于落后的协议和编码方式造成的。

对于仍在使用USB 2.0设备的用户而言,为其加速能为数据传输节约不少的时间,在不升级的情况下免费获得传输性能的提升也是一件不错的事。当然这种加速模式也适用于USB 3.0,提升其传输性能。USB 3.0也基于BOT传输协议,但是基于5Gbps高带宽,只有使用SSD这样的高速设备,加速前后的传输速度差异才会比较明显。

小补丁为USB 2.0大提速

注意:方法只针对一下操作系统解决usb2.0传输速度慢问题:

Windows 7

Windows 7 Service Pack 1 (SP1)

Windows Server 2008 R2

Windows Server 2008 R2 Service Pack 1 (SP1)

微软目前放出一个补丁来提高USB设备的访问速度,由于它是一个HotFix热修复补丁,并没有作为常规补丁随系统自动更新,因此我们平时也就体会不到它的作用,因此需要我们来手动下载安装。

从微软官方下载Windows6.1-KB2581464补丁,解压后安装。光安装补丁还不行,还需要手动对注册表进行一些修改,将USB 2.0存储设备的最大传输值从默认的64KB增加到2MB,这样才能让它的速度有所提升。

首先需要将存储设备的INF设备信息添加到注册表中。在设备管理器中的磁盘驱动器中找到当前的USB 2.0存储设备,右击它选择“属性”,切换到“详细信息”选项卡。在属性下拉菜单中,选择“父系”,这时在“值”的对话框中就会出现一串字符。

其中VID_xxxx&PID_xxxx字符就是USB 2.0存储设备唯一的INF设备标识,例如VID_090C&PID_1000,即090C1000记下待用。

运行regedit,打开注册表编辑器,依次点击展开

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbstor

在usbstor下有几个子项目,新建一个名为“090C1000”的项(刚才记录的INF设备标识),并选中它,然后在窗口右边的空白处右击新建一个名为“MaximumTransferLength”的DWORD值,然后双击,把它的值改为001fffe0(如图,十进制数值为2097120,也就是2MB)。

保存后重启系统。

实际测试效果

我们用金士顿DataTraveler 16GB闪存进行打补丁前后的对比测试,首先运行ATTO Disk Benchmark,在默认配置下,读写速度分别为34.9MB/s和28MB/s,安装补丁后读写速度都出现了显著的增加,最高读取达到了43.2MB /s,写入速度也为34.6MB/s。接着用AS SSD测试持续读写速度,默认情况下,读取速度为29.4MB/s,写入速度只有25.1MB/s,安装补丁后,读写速度分别提升至42.9MB/s和 33.6MB/s。

虽然这些速率在USB 3.0下算是小儿科,但是对于那些USB 2.0老用户来说在不升级USB 3.0的前提下获得40MB/s以上的读取传输速度,也算是对usb2.0传输速度慢的一点改善,相对默认环境还是有不小的突破,能够节约不少拷贝文件的时间。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top