Sie müssten dem Computer ein USB-Gerät / einen Peripheriegerät-Controller hinzufügen, im Gegensatz zu dem USB-Host-Controller, mit dem sie normalerweise geliefert werden.
In etwa so: https://www.maximintegrated.com/de/products/interface/controllers-expanders/MAX3420E.html
Leider müssten Sie einen Weg finden, um es auf Ihr Motherboard zu verdrahten. Technisch kann es getan werden. Praktisch müssten Sie das Motherboard neu gestalten, um es einzuschließen. Möglicherweise haben Sie das Glück, einen SPI- oder I2C-Bus auf Ihrem Motherboard zu finden, über den Sie ihn hinzufügen können. Normalerweise sind sie jedoch direkt mit dem verbunden, wofür sie verwendet werden, es sei denn, Sie verwenden eine Entwicklungsplatine oder einen Single-Controller. Bordcomputer mit freiliegendem GPIO und anderen Anschlüssen wie einem Raspberry Pi.
Die andere Option wäre ein USB-On-the-Go-Controller. Motherboards, die für eingebettete und tragbare Geräte entwickelt wurden, verfügen in der Regel über einen USB-OTG-Controller (On-the-go), der entweder als Host- oder als Gerätecontroller fungieren kann. Der oben erwähnte Raspberry Pi verfügt beispielsweise über einen On-the-Go-Controller, jedoch bei allen Modellen mit Ausnahme des Pi Zero, der an einen Host-Port oder einen integrierten USB-Hub neu verkabelt wird und die Verwendung von USB-Gerätefunktionen verweigert. Das BeagleBone Black hat einen OTG-Port.
Das ist aber noch nicht alles - wenn Sie die Hardware haben, brauchen Sie auch die Software. Linux hat einige nützliche Kernel-USB-Gadget-Treiber ("USB-Gadget" ist ein anderer Begriff für USB-Peripheriegeräte / -Geräte ) wie g_serial. Treiber und g_ethernet, mit denen Sie Ihr Gerät an einen anderen Computer anschließen und als serielles Gerät oder Ethernet-über-USB-Gerät sichtbar sein können (Es gibt andere Möglichkeiten, ein Gerät als Massenspeicher verfügbar zu machen, mit denen Sie eine Datei als Blockgerät verwenden und den Computer als Massenspeicher-Gadget verfügbar machen können.) Beim BeagleBone Black ist dies normalerweise standardmäßig aktiviert. Sie können es also einfach über USB an Ihren PC anschließen und als vernetztes Gerät betrachten - und ich glaube, es wird auch als Massenspeichergerät angezeigt, wenn Sie einen zusammengesetzten Treiber verwenden (der dies ermöglicht) Es wird als mehrere USB-Gerätetypen über eine einzelne Verbindung angezeigt. Der Pi Zero kann diese verwenden , jedoch nicht standardmäßig. Für Windows oder andere Betriebssysteme müssten Sie diesen Gerätetreiber wahrscheinlich selbst schreiben.
Theoretisch können Sie das also tun. Sie können Ihren Desktop-PC herunterfahren, versuchen, irgendwo einen nicht verwendeten kompatiblen Bus auf dem Motherboard zu finden (höchstwahrscheinlich einige nicht verwendete Pins auf einem Controller-IC) oder eine Möglichkeit, einen internen I2C- oder SPI-Bus zu erweitern, oder etwas, das Sie herausreißen und finden können Ersetzen Sie einen USB-OTG- oder Gerätesteuerungs-Chip und löten Sie ihn darauf. Anschließend können Sie Linux installieren und einen Gadget-Treiber verwenden oder einen eigenen für ein anderes Betriebssystem schreiben. Praktisch, wenn Sie kein erstklassiger Elektronikingenieur sind, werden Sie das nicht können. Zumindest erst, wenn jemand den schwer fassbaren Adapter mit einem Gerät oder OTG-Anschluss herausbringt, der in einen USB-Anschluss eingesteckt wird (theoretisch könnte dies mit einem Mikrocontroller wie einem Arduino geschehen, der mit einem Paar USB-Gerätecontroller-ICs verkabelt ist). und schreibt die Treiber, um es auszuführen.
USB ist asymmetrisch: Eine Seite ist ein Host, die andere Seite ist ein Peripheriegerät. Ein Peripheriegerät kann nicht als Host fungieren oder umgekehrt. Es ist möglich, dass ein USB-Anschluss als eine der beiden Seiten fungiert. Dies wird als USB on-the-go bezeichnet und ist auf einigen Mobiltelefonen und Tablets vorhanden. Die Ports sind physisch gerätetypische Ports, keine Host-Ports. Ich habe noch nie einen PC mit einem Geräteanschluss gesehen. Dies erfordert Elektronik am Controller. Es reicht nicht aus, ein Kabel herzustellen, das an beiden Enden passt.
Nein, Sie können keinen PC in ein USB-Gerät verwandeln.
Wenn Sie einen Computer als USB-Speichergerät verwenden möchten, können Sie ein Mobiltelefon oder Tablet mit USB-Verbindung anstelle eines PCs verwenden.
quelle
Sie können die Verwendung eines speziellen "USB-USB-Bridged-Kabels" in Betracht ziehen, das manchmal als "USB-Netzwerkkabel" bezeichnet wird. Wie in diesen Artikeln erwähnt:
Mit ihnen können Sie Dateien zwischen zwei PCs übertragen. Ich habe diese Art von Kabeln vor über zehn Jahren (in Zeiten von Windows XP) verwendet, und damals erforderten alle auf dem Markt erhältlichen Kabel einen speziellen Treiber und eine spezielle Software. Sie können Dateien nur über einen speziellen Dateikommandanten übertragen, der zusammen mit den Kabeltreibern auf einer Installationsdiskette geliefert wurde, sodass ein PC nicht als reines externes USB-Gerät fungieren kann.
Ich bin mir nicht sicher, ob sich seitdem etwas geändert hat und ob Sie mit neuen Lösungen nur Dateien mit einer speziellen Software übertragen können und - ob Sie einen PC zwingen können, als externes Gerät auf einen anderen PC zu wechseln.
quelle
Wie im erklärt Antwort von Matt Thomson , kann ein physischer USB-Anschluss eines PC-Computers nicht ordnungsgemäß als USB-Slave-Gerät verwendet werden, da der USB-Slave-Controller fehlt.
Das heißt, wenn wir eine Adapterplatine haben, die USB im Slave-Modus unterstützt (z. B. den Raspberry Pi Zero), müssen wir sie über einen anderen Kanal, z. B. kabelgebundenes Ethernet, mit Ihrem Host-PC verbinden. Ich habe zwei verschiedene Vorschläge, welches Protokoll Sie über diese Ethernet-Verbindung ausführen könnten:
(1) Legen Sie den USB-Anschluss über ein IP-Netzwerk frei.
Verwenden Sie Software, um den USB-Slave-Modus-Port des Raspberry Pi Zero als virtuelles USB-Gerät für Ihren PC bereitzustellen. Das USB / IP- Projekt stellt dies mithilfe eines Treibers bereit, der USB über IP-Netzwerke übertragen kann. Hier ist ein Beispiel für die Verwendung von USB / IP, um einem Computer ein simuliertes USB-Gerät zur Verfügung zu stellen. Dies wäre hier Ihr PC.
Was ich bei dieser vorgeschlagenen Lösung nicht weiß, ist, ob die USB / IP-Software bereits einen USB-Slave-Port über ein IP-Netzwerk oder nur einen USB-Host-Port wie gewohnt verfügbar machen kann.
Aber selbst wenn dies funktioniert, müssen Sie die Gerätetreiber auf Ihrem PC so einrichten oder anpassen, dass sie (1) die eingehende USB / IP-Verbindung als USB-Verbindung akzeptieren, (2) den USB-Slave-Modus bereitstellen und nicht USB - Hostmodus (3): Simulieren Sie ein USB - Massenspeichergerät, indem Sie die Daten vom zugewiesenen Speicherort (Ihrem Computer) aus bereitstellen
.vdi
Datei) bereitstellen.Insgesamt ist das eine komplexe Vorgehensweise.
(2) Legen Sie die Datei über das IP-Netzwerk offen.
Dies ist eine viel einfachere Möglichkeit, die Ethernet-Verbindung zum Raspberry Pi Zero zu nutzen: Hängen Sie auf dem Raspberry Pi Zero die auf Ihrem PC gespeicherten Daten über ein Netzwerkdateisystem ein. Diese Dateien werden dann logisch als Teil des Pi Zero-Dateisystems angezeigt. Sie können sie mit dem Linux-USB-Gadget-Treiber bereitstellen, damit der Raspberry Pi für angeschlossene Geräte wie ein USB-Massenspeichergerät aussieht.
quelle