Answers:
传输速度很重要,因为USB是半双工的:为了传输响应,总线必须转过来,并且数据要沿另一个方向传输。因此,主机发出数据并等待确认或响应。所有传输均由主机控制。然后,设备将在一定(非常短的)时间内做出响应。该时间大约是沿着5m电缆跳两个信号所花费的时间。
(此刻我找不到参考,但是相关的规范文档是公开的)
编辑:感谢psmears查找此部分
电缆和长途解决方案
- 为什么有电缆长度限制,这是什么?
答:电缆长度受到26ns的电缆延迟规格的限制,以允许反射在发送下一位之前在发射机处稳定下来。由于USB使用源端接和电压模式驱动器,因此必须如此,否则反射会堆积并烧毁驱动器。这并不意味着线路电压在位末尾已完全稳定;最坏情况下的终止。但是,在钻头的末端已经有足够的阻尼,以至于反射幅度已减小到可管理的水平。低速电缆长度限制为18ns,以防止传输线效应影响低速信号。
- 我想构建一根超过5米的电缆,为什么不能使用?
答:即使您违反规范,从字面上看也不会走得太远。假定最坏情况下的延迟时间,位于5个集线器和电缆底部的全速设备的超时余量为280ps。将这个余量减小到0ps只会给您额外的5cm,这几乎是不值得的。
所以我的回答是正确的:往返行程限制是针对最坏情况的集线器和电缆链,总深度为25m。
Dan Neely也是正确的,USB一直被认为是用于“慢速”外围设备(如键盘,鼠标,打印机等)的最低成本解决方案。如果您想要全双工以提高速度和距离,则100baseT以太网是自然的选择。
参见此页面,https://superuser.com/questions/64744/maximum-length-of-a-usb-cable。
Q1:我可以使用多久的电缆来连接设备?解答1:实际上,USB规范将全速设备之间的电缆长度限制为5米(不到16英尺5英寸)。对于低速设备,限制为3米(9英尺10英寸)。
Q2:为什么我不能使用长度超过3或5m的电缆?A2:USB的电气设计不允许这样做。设计USB时,就决定处理USB数据线上电磁场的传播,其方式是将USB电缆的最大长度限制在4m范围内。这种方法具有许多优点,并且由于USB用于桌面环境,因此范围限制被认为是可以接受的。如果您熟悉传输线理论,并且想要了解更多有关该主题的详细信息,请查看开发人员常见问题解答的USB信号部分。
实际上不可能“缓冲” USB,至少在通常意义上不是这样。通常,缓冲意味着电放大,可能还意味着信号再生。
借助USB,主机可以驱动整个总线。主机发出请求,并且设备必须向主机发出响应。在请求完成传输之后的某个时间,响应的开始必须到达主机。如果电缆太长,则传播延迟会太长,导致响应无法及时到达主机。
因此,有一些解决方法,它们都不涉及简单的“缓冲”,因为缓冲会增加额外的延迟,因此我们需要以某种方式使主机更能容忍更长的延迟。
有两种解决方法:
插入物理或虚拟集线器的解决方法。如果主机枚举总线上的集线器,则集线器本身会增加额外的延迟,并且在集线器和主机之间还有另一条可能是全长的电缆。对附加到集线器下游的设备的任何请求都计划有额外的延迟。
您可以在电缆的每4m处插入一个单端口集线器,最多可串联7个集线器。限制是从主机到最终设备的7个集线器级别,因此,如果设备上游有任何集线器,则需要相应减少集线器的数量。许多USB主机都包含一个单层的内部集线器,因此实际限制是28m电缆,6个集线器串联。除第一个集线器外,所有集线器都必须假装为自供电。
您可以在主机的插头处添加带有预加重功能的功能更强大的收发器的虚拟集线器,然后通过更长的电缆传输USB流量。只要设备在这种延长电缆的末端接收到的信号在规格范围内,并且只要您的接收器可以恢复标准设备通过长电缆发送的数据,就可以了。添加了虚拟集线器,以便主机允许较长的延迟-但是当然没有物理集线器,只是它们的模拟。
模仿在较高协议级别下显示为“慢”的设备的解决方法。这就是某些Cat-5 USB“扩展器”的工作方式。这里有五个合作伙伴:真实主机(rHost),它所看到的仿真设备(eDev),长电缆,一个仿真主机(eHost),以及在电缆远端看到它的设备(rDev) 。
最初,eDev假装不在那里。在某个时间,eHost会看到插入了rDev。它会枚举该rDev,并将数据转发到eDev。然后,eDev模拟一个插件事件,而rHost枚举该事件。rHost相信它看到了rDev,但只有eDev在那里,假装。类似地,rDev认为看到的是rHost,但它只是假装的eHost。
最终,rHost希望向它认为存在的rDev发出一些转移,以进行一些利用。对于IN传输,eDev假装没有数据(回复NAK)。传输请求将转发到eHost,由eDev重新执行。其结果将转发回eDev,后者在主机下次尝试传输时使用该结果。
对于OUT传输,eDev必须猜测rDev的行为。这里可以尝试各种试探法和行为。一种方法是让eDev始终接收数据并使用ACK进行回复。传输转发到eHost,然后eHost将传输重放到rDev。理想情况下,rDev最终将消耗数据并对其进行确认。如果这没有成功,或者rDev回复了STALL,则eDev最好的办法就是对主机进行下一次传输。另外,eDev可以始终取消传输,通常是正确的假设,即主机稍后会简单地重试相同的传输。即使原始传输是NAK版本,它也将转发到eHost,然后eHost使用rDev执行传输。无论rDev的答复是什么,只要它得知eDev的答复即可。
现实的实现将从保守的启发式方法开始,这些启发式方法涉及NAK可以推迟的所有传输的完整往返rDev。随着转移的进行,可以了解rDev的预期行为,而eDev可以变得不那么保守。“扩展器”可以使用标准USB类别的知识以及某些特定于供应商的类别/设备知识/黑名单/白名单来提供更好的性能。
大多数电缆上的数据传输方案都有描述其实现方法的国际公认的标准,包括电缆“特性阻抗”的规范(认为是电阻,但适用于交流电),端接阻抗(在连接结束时需要的“电阻”,以避免信号反射而将电缆反射回发送器,这通常是指定的“转换速率”(信号从一个信号转换到一个信号所花费的时间)从0状态转换为1状态,反之亦然),因此每秒0/1之间的最大转换次数(即kbps / Mbps / Gbps)以及因此电缆在信号完整性下降之前可以停留多长时间&东西停止正常工作。
与USB相比,RS232在电缆类型,特性阻抗,压摆率,电缆长度,连接器类型等所有规格上都有缺陷。当然,25针和9针“ D”连接器很常见,但实际上,RS232被设计用于各种连接器,电缆和产品,没有实际规格说明。实际上,使用RS232,通常可以通过降低到每秒较低的位(又称“波特”)速率来延长距离。可以达到的最大距离还将在很大程度上取决于电缆的阻抗,是否被屏蔽,端接等等。
在比较RS232和USB的过程中,您所比较的是1960年代的“标准”,其最高峰值为115k2(极少数情况除外),而1990年代和2000年代的“标准”则以1.5Mbps的速度开始增长,快了一个数量级,然后是12Mbps(快100倍),然后是480Mbps(快5000倍),但这意味着电缆参数和电缆长度在使其可靠工作中起着重要作用。它被设计为台式机外围连接标准,因此5m被认为是可以接受的,然后从该点开始设置电缆,连接器的所有参数以及速度。如果有办法使USB速度变慢,则可以使它在更长的电缆上运行(无需中继器)。