【树莓派笔记】USB口性能

树莓派笔记 USB口性能

使用Raspberry Pi 4 Model B在做一些开发工作,需要用到多个USB口,了解了下 Raspberry Pi 的USB口相关的性能。

Raspberry Pi 4

Raspberry Pi 4B有2个 USB 3.0 接口和2个 USB 2.0 接口,全部连接到一个 VL805 USB 控制器上。所有四个端口上的 USB 2.0 的线都连接到 VL805 内的单个 USB 2.0 集线器(hub)上,所以这四个USB 2.0的总带宽实际只有一个USB 2.0 端口的带宽。如果四个USB口接的都是USB 1.1 或 USB 2.0协议规范的USB设备,那么它们的总带宽也就只有480Mbps。

Raspberry Pi 4B使用的VL805 USB 控制器,在网上查了下这款USB 控制器的介绍,如下所示:

VIA VL805是一个单芯片USB 3.0主机控制器,启用了PCI Express接口与USB(5Gbps的超高速),高速(480Mbps)的,全速(12Mbps)的搭载平台,和低速度(1.5Mbps)的装置。根集线器包括4个下行端口,从而实现同时运行多个外设。

VIA VL805符合通用串行总线3.0规范和英特尔的可扩展的xHCI主机控制器接口,并完全向后兼容USB 2.0和1.1规范,确保传统的USB设备的无缝连接。 VIA VL805拥有了PCI Express 2.0 x1接口,PCI Express 1.0的向后兼容,非常适合在PC主机和附加卡应用。

其中注意到VL805使用的是PCI Express 2.0 x1,该接口可用带宽是500MB/s,也就是4Gbps。那么该USB 控制器的总带宽就是4Gbps,而USB 3.0的速率为5Gbps,也就是说达不到USB3.0的最大速率,只有80%。如果2个USB 3.0 口同时使用,可用带宽就会更低。

在 Raspberry Pi 4 上,以前型号上使用的 USB 控制器位于 USB type C 口上,默认情况下处于禁用状态。

Raspberry Pi Zero, 1, 2 and 3

Raspberry Pi Zero, 1, 2, 3这些之前的型号都只支持一个根USB口(root USB port),所有USB设备的数据都会集中到这条单一总线上,该总线的最高运行速度为 480Mbps。也就是所有设备都要共享这480Mbps的USB带宽。

Raspberry Pi Zero, 1, 2, 3对于USB 高速(high-speed)设备的支持没有问题,但对低速(low speed)和全速(full speed)设备的支持却不好,与低速和全速设备通信时产生的软件开销会影响同时活动的设备数量,如果连接少量的低速和全速设备不会引起任何问题。

已知的 USB 问题

在树莓派的官网中的已知USB问题章节Known USB Issues可以看到列出了一些树莓派的USB问题。

1. 与USB 3.0 集线器的交互性

Interoperability with USB 3.0 hubs

There is an issue with USB 3.0 hubs in conjunction with the use of full or low speed devices, including most mice and keyboards. A bug in most USB 3.0 hub hardware means that the models prior to Pi 4 cannot talk to full or low speed devices connected to a USB 3.0 hub.

USB 2.0 high speed devices, including USB 2.0 hubs, operate correctly when connected via a USB 3.0 hub.

Avoid connecting low or full speed devices into a USB 3.0 hub. As a workaround, plug a USB 2.0 hub into the downstream port of the USB 3.0 hub and connect the low speed device, or use a USB 2.0 hub between the Pi and the USB 3.0 hub, then plug low speed devices into the USB 2.0 hub.

从上文可以看到,树莓派的USB对于USB 3.0 集线器的兼容性是有问题的。Raspberry Pi 4由于有 USB 3.0 接口,所以没有兼容性问题,其他在Raspberry Pi 4之前的型号都会有无法与连接在 USB 3.0 集线器上的全速或者低速设备通讯的问题。

示意图如下:

Interoperability with USB 3.0 hubs

官方的解决方案就是在 USB 3.0 集线器与全速或者低速设备之间接入一个 USB 2.0 集线器,或者是在树莓派和 USB 3.0 集线器之间使用 USB 2.0 集线器,然后全速或者低速设备接到USB 2.0 集线器上。总之就是要避免将低速或全速设备连接到 USB 3.0 集线器上。

示意图如下:

解决方案一
解决方案二

2. USB 1.1 webcams

USB 1.1 webcams

Old webcams may be full speed devices. Because these devices transfer a lot of data and incur additional software overhead, reliable operation is not guaranteed. As a workaround, try to use the camera at a lower resolution.

由于Raspberry Pi 4之前的设备对低速(low speed)和全速(full speed)设备的支持程度很不好,与低速和全速设备通信时会产生的较大的软件开销。而旧的网络摄像头可能是全速设备,网络摄像头的数据量较大,传输大量数据会产生额外的软件开销,树莓派无法保证可靠运行。

官方的解决方案是尝试去降低分辨率,使用较低的分辨率会减小传输的数据量。

3. Esoteric USB sound cards

Esoteric USB sound cards

Expensive audiophile sound cards typically use large amounts of USB bandwidth: reliable operation with 96kHz/192kHz DACs is not guaranteed. As a workaround, forcing the output stream to be CD quality (44.1kHz/48kHz 16-bit) will reduce the stream bandwidth to reliable levels.

发烧级的USB声卡通常能支持96kHz/192kHz的录音室音质,与此相对就要使用大量的 USB 带宽,所以树莓派无法保证96kHz/192kHz的可靠运行。

官方的解决方法是将声卡的输出修改为 CD 质量(44.1kHz/48kHz 16 位),以此将数据流带宽降低到树莓派可以可靠运行的水平。

4. Single TT USB hubs

Single TT USB hubs

USB 2.0 and 3.0 hubs have a mechanism for talking to full or low speed devices connected to their downstream ports called a transaction translator (TT). This device buffers high speed requests from the host and transmits them at full or low speed to the downstream device. Two configurations of hub are allowed by the USB specification: Single TT (one TT for all ports) and Multi TT (one TT per port). Because of a hardware limitation, if too many full or low speed devices are plugged into a single TT hub, the devices may behave unreliably. It is recommended to use a Multi TT hub to interface with multiple full and low speed devices. As a workaround, spread full and low speed devices out between the Pi’s own USB port and the single TT hub.

如果使用单个事务转换器的USB集线器(Single TT USB hubs),并且将多个全速或低速设备接入该USB集线器中,由于树莓派的硬件问题,会导致运行不可靠。所以官方建议使用多个事务转换器的USB集线器(Multi TT USB hubs)。如果只有单个事务转换器的USB集线器,那么官方的解决方法是,将全速和低速设备分布在树莓派自己的 USB 端口和USB集线器之间。

总结

总体看来,树莓派的USB性能略显拉垮,Raspberry Pi 4 的所有 USB2.0 接口共用带宽,USB3.0 接口带宽无法拉满,Raspberry Pi 4之前版本的树莓派有很多兼容性问题,并且也是所有接口共同带宽。再结合树莓派 USB 口的供电能力偏弱的问题,可以看到树莓派的USB性能很一般,不能拿来做一些要求较高的事情,但做一些基本的事情还是可以的。

参考资料

Universial Serial Bus (USB)

Known USB Issues


本文链接:https://blog.csdn.net/u012028275/article/details/122774798

<think>好的,用户想用树莓派作为笔记本电脑的外部显示器,这听起来挺有意思的。首先,我得理解用户的需求。树莓派本身是一个小型计算机,通常用来做各种嵌入式项目或者学习编程,但用户希望把它变成外接显示器,可能需要利用树莓派的屏幕输出功能。不过,树莓派通常作为主机使用,输出到其他显示器,反过来可能需要其他方法。 根据引用内容,用户提到树莓派有GPIO针脚可以连接外部设备[^1],但作为显示器的话可能需要不同的方法。可能需要通过网络连接,比如使用VNC或者远程桌面,让笔记本显示树莓派的界面,但用户想要的是反过来,把树莓派的屏幕作为笔记本的显示器,这可能需要视频输入功能,而树莓派本身可能没有视频输入接树莓派的硬件通常有HDMI输出,但输入可能不支持。因此,可能需要使用软件方案,比如将树莓派配置为一个网络显示器,通过流媒体传输笔记本的画面到树莓派。例如,使用VNC服务器在笔记本上,然后在树莓派上运行VNC客户端,这样树莓派就能显示笔记本的屏幕了。 另外,引用[2]中提到用户给女朋友做了副屏,可能用的是树莓派连接屏幕,然后通过某种方式接收笔记本的信号。可能需要使用HDMI采集卡,但树莓派需要有USB视频采集功能,安装相应的软件来读取采集卡的输入,然后显示出来。这可能需要配置树莓派作为显示设备,使用像ffmpeg这样的工具来处理视频流。 接下来需要考虑具体的步骤。首先,硬件连接,可能需要将笔记本的HDMI输出连接到树莓派USB采集卡,然后树莓派运行软件来捕获这个信号。然后,软件配置可能需要安装驱动和相关的播放软件。此外,网络传输的方法可能更简单,比如使用VNC或者RDP,但这样可能会有延迟,不过对于静态内容可能足够。 需要确保用户了解树莓派作为显示器的局限性,比如可能不支持高分辨率或高刷新率,以及可能的延迟问题。同时,需要检查树莓派的硬件是否支持视频输入,或者是否需要额外的硬件设备,如HDMI转USB采集卡。 最后,整理步骤,包括硬件准备、软件安装和配置,以及测试。可能还需要提供备选方案,比如如果用户没有采集卡,是否有其他方法,或者建议使用其他更合适的设备作为副屏。</think>要将树莓派用作笔记本电脑的外部显示器,需通过软硬件结合的方式实现。以下是分步教程: --- ### 一、硬件准备 1. **树莓派及外设**:树莓派主板(建议4B型号)、5V电源、HDMI显示屏(连接树莓派)、HDMI线 2. **视频采集设备**:USB视频采集卡(需支持HDMI输入,如「Elgato Cam Link」或「Magewell USB Capture」),用于将笔记本的视频信号传输到树莓派 3. **连接方式**: - 笔记本的HDMI输出 → 视频采集卡的HDMI输入 - 视频采集卡通过USB → 连接到树莓派USB[^1] --- ### 二、软件配置 #### 步骤1:树莓派系统设置 1. 安装Raspberry Pi OS并启动 2. 更新系统: ```bash sudo apt update && sudo apt upgrade -y ``` #### 步骤2:安装视频捕获工具 1. 安装`ffmpeg`用于解码视频流: ```bash sudo apt install ffmpeg -y ``` 2. 检测采集卡设备: ```bash v4l2-ctl --list-devices ``` 若显示类似`/dev/video0`的设备,则表示识别成功。 #### 步骤3:实时显示视频流 运行命令启动实时预览(假设设备为`/dev/video0`): ```bash ffplay -f v4l2 -input_format mjpeg -framerate 30 -video_size 1920x1080 -i /dev/video0 ``` 调整`-video_size`参数匹配笔记本输出分辨率。 --- ### 三、优化显示(可选) 1. **降低延迟**:改用`guvcview`工具(安装命令`sudo apt install guvcview`) 2. **全屏模式**:在`guvcview`设置中启用全屏显示 3. **分辨率同步**:在笔记本端设置输出分辨率与树莓派显示屏匹配 --- ### 四、替代方案:网络流传输 若无需实时性高的场景,可通过VNC实现: 1. 笔记本端安装VNC Server(如TightVNC) 2. 树莓派安装VNC Client(`sudo apt install remmina`) 3. 通过局域网连接笔记本的IP地址实现屏幕共享[^3] --- ### 注意事项 1. 视频采集方案会产生约100-200ms延迟,不适合游戏场景 2. USB2.0采集卡最高支持1080p30Hz,USB3.0可达4K 3. 树莓派需连接独立供电的显示屏才能作为“显示器”使用[^2]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值