1

我正在做一个项目,我想通过我的 USB 端口为外部设备制作一个虚拟 USB 闪存,例如,需要用于录制电视频道的存储器的卫星接收器。我想将 PC USB 端口连接到卫星 USB 端口并将文件直接记录到文件中。我在 C#/.NET 中工作。

4

1 回答 1

0

USB 协议通常位于两个不同的设备之间:主机客户端。主机说明传输了哪些数据以及何时传输,客户端必须收听。然后有不同的客户端设备类。有 USB 可移动媒体、打印机、网络摄像头等。USB otg 略有不同,因为设备可以是客户端或主机,具体取决于另一个设备。例如,当连接到 PC 或主机时,您的手机面包车是客户端,它连接到 USB 记忆棒。

现在有你的卫星接收器。它想成为主人。(你知道当它使用大的 Type-A 插座时)它需要一个可移动的媒体设备,比如 USB 记忆棒。当您连接打印机时,它将不知道如何使用它。与网络适配器或串行端口相同。

注意:您不可能实现“通过串行端口的闪存协议”。因为串行端口已经是客户端设备类。此外,USB 和串口之间没有电线兼容性。

由于您的 PC 具有相同的角色并且不会在 USB 连接中充当客户端,因此没有简单的解决方案。(我打赌你已经知道了,嗯?)

即使你有一个像闪存驱动器一样的 PCIexpress 卡,也会有更多的障碍。例如,文件系统并非设计为由两台计算机同时访问。

回到建设性的回答: 受此链接的启发,您可以获取一些更高端的微控制器并连接(微型)SD 卡。然后你让它在其 USB 端口上充当闪存驱动器。使用其以太网连接(或 wifi)并通过 samba 提供对(微型)SD 卡的访问。

对于微处理器来说,这是一些非常高端的东西,所以最好不要使用非常便宜的东西。我想到了 RasberryPI A 型(不是 B 型,不能充当 USB 客户端)或 Arduino/Netduino(最强大的)。我找不到即用型设备。

重要的是,与您的 PC 的连接使用某种网络而不是 USB。因为网络协议具有并发性(多台 PC 访问相同的数据),而本地文件系统则没有。

于 2013-04-07T21:10:06.727 回答