Answers:
USB 2.0具有可达480Mb /秒(兆的传输速率最高位)
现在,在现实世界中的实际传输速度慢得多。
我的Pi 2 通过USB 的最大吞吐量为220Mb / sec(兆比特)。
Pi可以通过10/100网络端口推送的最大速度约为90Mb / sec(兆比特)
所以:
480 Mb/sec (USB 2.0 maxium throughput)
- 260 Mb/sec (For real-world speeds)
- 90 Mb/sec (For the network port)
-----------
130 Mb/sec (Left over bandwidth)
因此,在完全加载网络端口后,您将剩下130Mb / sec(兆比特)的带宽。
要发挥它的安全,让我们做的是100MB /秒(兆比特)离开。
因此,(假设您拥有Pi 2):
只要你的USB带宽不超过100MB /秒(兆比特),你会被罚款。90MB /秒(兆比特的那个)将用于将其转发到网络卡。
因此,只要连接到USB端口的HDD以外的设备使用的速度低于10Mb / sec(兆位),您就可以以Pi 2可以处理的最大速度运行。)
该控制器是Microchip LAN9512,使用它而不是一堆独立控制器的原因大概是:
价钱。 这是一个示例,您可以在某处以$ 5的价格购买其中的100个。
构成因素。您可能还记得Raspberry Pi的上市销售或技术博客,称其为“信用卡大小的计算机”或“适合您手掌的计算机”,而不是“还有另一个mini-ITX系统”或“会戴在大帽子下”,等等。
功率。翻阅数据表的第一页(可通过Microchip链接访问),将“实现低功耗工作模式”称为“功能”之一。您必须更深入地研究才能发现比较中的真正含义,但至少从表面上看,这是可以想象的。
记住,零售价约为35美元。不是$ 135或$ 350。这就是标题中字面问题的答案:“为什么USB端口和以太网端口共享同一控制器?” 。
请注意,多个USB端口共享同一总线并不是一种不寻常的方法-这可能是正常的。我注意到我现在使用的笔记本电脑有3个USB端口,但lsusb
只报告了两个2.0“全速”集线器。因此,这些端口中的至少两个共享一个集线器,并且它们不会同时获得“全速”。我敢肯定,如果您检查当前的系统,它会以相似的方式组合在一起。
将以太网与此结合是不寻常的,但是值得注意的是,USB 2.0应该提供480 Mbps,而10/100以太网连接最多需要100 Mbps。
Wikipedia引用规范作为来源,“由于总线访问限制,高速信令速率的有效吞吐量被限制为280 Mbit / s或35 MB / s”;究竟是每个端口还是整个总线都不清楚。
数据传输减慢了什么效果
显然,您的总速度不会超过480 Mbps,您的速度可能不会超过280 Mbps。就我个人而言,我从未见过或听说过pi从本地以太网到USB的传输速度超过10 MB / s的报道。正常情况下始终驱动(即80 Mbps)。 但是,这个数字是在协议本身已经处理之后的,它将增加一个变量,但我认为百分比很小-对于以太网,它可能会很大变化,具体取决于所连接网络的拓扑和活动。
有没有解决此问题的方法
如果您是说,我可以通过管道挤压的水量要多于使管道容纳的水量,那么可以,否,或者我可以让泵工作得更快,或者可以使两者结合使用,还是不可以。 如果您需要更快的泵或更大的管道,请购买更快的泵和更大的管道。
为什么USB端口和以太网端口共享同一控制器?
因为pi 1到3上的SoC没有以太网控制器,所以只有一个USB控制器,并且没有其他任何可轻松用于以太网的接口。尽管Eben能够对BCM2835设计产生一定的影响,但它最终还是Broadcom的产品,而他在Broadcom的老板本来会做主,但他所能做的只有很多。
还请记住,Pi被设计为便宜的计算机,孩子们可以学习编程。它被拾起并用于各种其他用途的事实只是一个幸运的副作用。
LAN9512(后来被LAN9514取代以添加更多端口,而LAN7515则提供了更快的以太网)为添加额外的USB端口和以太网端口提供了便捷的解决方案。
当他们升级臂核心pi2和pi3时,他们决定不考虑芯片的其余部分(除了修复内存控制器错误以允许1GB的内存)。我了解这是通过尝试使升级尽可能便宜和低风险来实现的。
最终,他们不得不选择大刀阔斧地对SoC设计进行大修。幸运的是,他们还建立了自己的客户群,以至于这种大修在财务上是可行的。有了rapiberry pi 4,带有以太网芯片的USB集线器就消失了,取而代之的是由新SoC上的MAC驱动的以太网PHY芯片和由新SoC上的PCIe驱动的USB3控制器。