Wie kann ich ein beliebiges USB-Gerät an zwei Computer anschließen?

Letztendlich ist es mein Ziel, eine "Tastatur" mit 5 bis 10 Tasten zu haben, bei der das Drücken einer dieser Tasten effektiv eine Taste auf zwei Computern gleichzeitig drückt.

Im Idealfall würde die "Tastatur" einfach an beide Computer angeschlossen und das von mir erzeugte Signal über 2 USB-Leitungen senden. Soweit ich das beurteilen kann, funktioniert diese Flat nicht (ein einzelnes USB-Gerät kann keine Verbindung zu zwei Hosts herstellen).

Ich habe online einige Anweisungen zum Anschließen einer USB-Tastatur an ein zusammengehacktes Paar PS2-USB-Adapter gesehen (Anschließen der PS2-Seite, die anscheinend froh ist, mehrere "Hosts" mit einem einzigen Gerät zu haben). Selbst ohne den Hacking-Teil funktioniert mein aktuelles Keypad nicht, wenn es über Keypad->USB an PS2->PS2 an USB->Computer angeschlossen wird. Das Trennen von Anschlüssen, damit es Tastatur -> USB zu PS2 -> 2 x PS2 zu USB -> Computer sein kann, wird dies wahrscheinlich nicht verbessern. Mir ist nicht klar, ob Windows PS2 nicht mehr unterstützt (habe das irgendwo online gesehen), ob die Hardware-Tastatur nicht das notwendige Signal sendet, um auf PS2 "konvertiert" zu werden, oder was.

Gibt es noch andere Ansätze, die ich vermisse? Irgendwelche intelligenten Möglichkeiten, dies mit Software zu tun (also wird die Tastatur an einen Computer angeschlossen und dieser Computer sendet das Signal an den anderen Computer)? Unmittelbarkeit ist ziemlich wichtig, aber diese Route scheint einige Etappen zu haben.

Könnte immer ein Bastelprojekt daraus machen: sites.google.com/site/khromtor ... Windows unterstützt immer noch PS2, ich tippe dies auf einer ~ 10 Jahre alten PS2-Tastatur unter Win7 x64
Herkömmliche USB-Treiber verbinden sich nicht mit 2 Hosts, aber vielleicht können Sie Ihre eigenen umschreiben? LUFA ist Open-Source.
Damit Windows neue PS/2-Geräte erkennt, müssen Sie es normalerweise mit angeschlossener Tastatur neu starten. So oder so sehe ich es nicht funktionieren: PS/2 muss auch Daten an die Tastatur übertragen (um Einstellungen und Tastatur zu ändern LEDs), nicht nur empfangen.
Was Sie wirklich wollen, ist dies ... Spezialisiertes Produkt, das zwischen Windows und Windows funktioniert, oder ein separates zwischen Windows und Mac. Sehen Sie sich die J5 Connect Wormhole-Kategorie der Produkte JUC400, JUC500 und JUC700 an.

Antworten (3)

Sie übersehen die Tatsache, dass USB ein bidirektionales serielles Protokoll ist und dass zwei USB-Hosts, die mit einem einzelnen USB-Gerät kommunizieren, weder auf physischer noch auf logischer Ebene des Protokolls unterstützt werden. Was Sie tun können, ist, jede Taste der Tastatur mit zwei MCUs zu verbinden, die jeweils USB-HID-fähig sind, und ihre USB-Kabel mit zwei PCs verbinden. Sie können dafür zwei billige AVR-MCUs verwenden und die USB-HID-Softwareimplementierung verwenden. Erstellen Sie einfach zwei identische HIDkeys und verbinden Sie jeden Schlüssel mit beiden. Übrigens, lesen Sie die Lizenz sorgfältig durch.

Sie könnten eine einzelne MCU verwenden, solange sie zwischen den physischen Verbindungen unterscheiden kann.
was ist das problem mit der lizenz?
Wow. Das ist das perfekte Szenario. Aber zum Ausbauen ist es für mich wahrscheinlich zu spät. Danke für die Eingabe.
@smashtastic: Wenn ich mich gut erinnere, dürfen Sie es kostenlos für nichtkommerzielle Projekte verwenden und eine Gebühr zahlen, wenn Sie es in kommerziellen Projekten verwenden müssen.
Lizenz für was? HID-Schlüssel? Die USB-HID-Spezifikation?
@ebynum: HIDkeys
HIDkeys GPLV2 lizenziert. Sie können es sicherlich in einem kommerziellen Produkt verwenden, solange Sie die GPL einhalten (siehe gnu.org/licenses/gpl-faq.en.html#GPLCommercially ). Die HIDkeys-Website hat Richtlinien für das, was sie für Compliance halten, aber es liegt wirklich an Ihnen und Ihrem Anwalt, zu entscheiden. GPL verlangt nicht , dass Quellen für Anwendungen zur internen Verwendung verteilt werden ( gnu.org/licenses/gpl-faq.en.html#GPLRequireSourcePostedPublic ). Einige würden argumentieren, dass eine Auftragsarbeit für den internen Gebrauch durch Ihre Kunden kein öffentlicher Vertrieb ist. Sie sollten mit Ihrem Anwalt sprechen.
Eine weitere Option ist eine MCU mit zwei unterschiedlichen USB-Schnittstellen. Aber zwei billige USB-MCUs, die das gleiche Ereignis sehen, können in der Tat am einfachsten sein. Die Dinge werden in menschlicher Hinsicht ziemlich simultan sein, aber nicht wirklich in Computerbegriffen, da USB abgefragt wird und für Tastaturen mit einer relativ niedrigen Rate.

Sie könnten es ganz einfach vermeiden, mit Hardware herumzuspielen, indem Sie Tastendrücke auf einem Windows-Computer mit etwas wie PyKeyLogger und SendKeys weiterleiten

In diesem Szenario würde ich also PyKeyLogger auf dem Computer mit der Tastatur ausführen (um die Tastendrücke zu erkennen), eine App in der Mitte hinzufügen, um die Tastendrücke zu empfangen und eine Verbindung zum Remote-Computer herzustellen, und eine App auf dem Remote-Computer zum Empfangen die Signale vom Tastaturserver, der SendKeys verwendet, um die Tasten auf dem Remotecomputer zu "drücken"?
@ebynum Ja. Möglicherweise gibt es Software, die dies bereits für Software-Multiboxing tut (siehe Link im Kommentar zur Frage, obwohl es sich um Hardware handelt). Suchen Sie nach "Multiboxing-Software" und sehen Sie, was Sie bekommen.
Wow. Hätte ich nur früher von diesem Multiboxing gehört. Danke. Sieht so aus, als würde HotkeyNet genau das tun, was ich wollte.
Und tatsächlich hat HotkeyNet genau das getan, was ich wollte. Ich würde immer noch die Hardwarelösung bevorzugen (unabhängig von der Netzwerklatenz), aber dies war eine perfekte Zwischenlösung.

Dies wird Ihnen wahrscheinlich nicht dabei helfen, Ihr Gesamtziel der gleichzeitigen Verwendung eines USB-Peripheriegeräts von zwei Computern zu erreichen, aber ein USB-Switch kann die nicht gleichzeitige Verwendung eines USB-Peripheriegeräts von zwei oder mehr Computern ermöglichen. Sie scheinen ähnlich wie ein KVM-Switch zu funktionieren, und die billigen Switches müssen manuell umgeschaltet werden, aber einige unterstützen das Umschalten auch per Software.