USB lesen + schreiben

Gast #2172201
Lesenswert?

Hallo,
ich habe eine Frage zur Kommunikation über USB.

Bei dem Aufbau kommuniziert ein Device mit einem Host über USB. Mein 
Ziel ist es jetzt in gewisser Weise das Kabel "durchzuschneiden", die 
Signale an den Enden zu erfassen, um sie (anders codiert) über einen 
anderen Bus zu übertragen.
Ich will also eine unsichtbare Komponente in die Übertragung einfügen.

Jetzt stehe ich vor dem Problem die Signale zu "lesen" und zu 
"schreiben".

Wie kann ich dies machen ohne die Pakete zu verändern?

Es geht also nicht darum einen Treiber für die Geräte zu schreiben und 
mit ihnen zu kommunizieren, das auslesen und schreiben muss völlig 
losgelöst von den Geräten sein und darf keinen Einfluss auf die 
gesendeten Daten haben.

Ist so etwas mit einem USB-Development-Board / USB-Controllern möglich, 
oder lassen sich diese nur ansprechen, indem man eine Verbindung aufbaut 
und somit in das System eingreift?

Gruß
Philipp
Gast #2172295
Lesenswert?

Nimm einen MC mit USB-OTG ( On the Go ) der hat nen Host und nen Client 
Port.
Dann mußt die Daten von Host zu Client kopieren und von Client zu Host, 
gleichzeitig die Daten interpretieren. Das Interpretieren der Daten ist 
dann wohl das schwerste. Ist so wie nen USB Treiber zu programmieren. Du 
mußt wissen auf welchem Endpoints welches Protokoll gesprochen wird. 
Also ohne Datenblätter mußt du Reverse Engeneering betreiben. Wenn du 
Glück hast Entspricht das Gerät einem Geräte Standart für dem die 
Endpoints und Interfaces und Befehle und Parameter usw. Festgelegt sind.
Nur Gerätespezifische Zusatzfeatures mußt du dann noch Sniffen.
Gibt übrigens auch USB-Sniffer zu kaufen, die sind sowas ähnliches.
Gast #2172417
Lesenswert?

Schon mal danke für die Antworten.

@Rufus Τ. Firefly:
Also am besten wäre es natürlich, wenn man die Pakete einfach aus einem 
Register lesen und dahin schreiben könnte. Also wirklich nur auslesen 
der Signale, der Controller darf dabei keine wirkliche Intelligenz 
besitzen, er darf also nicht von sich aus die Signal verändern (sync, 
crc, ack, ...)

@ Uwe:
Dann müsste ich ja Treiber für die Geräte schreiben, die sich genau so 
verhalten wie die angeschlossene Hardware. Die Idee ist es aber völlig 
losgelöst von der Hardware arbeiten zu können. Es muss also egal sein 
welche Geräte ich jetzt per USB verbinden will.

Gibt es USB-Controller, die nichts an dem Signal verändern?

Gruß
Philipp
#2172854
Lesenswert?

Philipp schrieb:
> Wie kann ich dies machen ohne die Pakete zu verändern?

Kauf dir einen fertigen USB-Verlängerer.

Aus Anwendersicht ist der einfach nur ein langes Kabel.
Aus PC-Sicht ist es ein USB-Hub mit nur einem Downstream-Port.


Wenn du es selber bauen willst, geh ähnlich vor: Durch das Vortäuschen 
eines HUBs kannst du die ganzen Timing-Einschränkungen umgehen.

Vielleicht findest du ja einen HUB-Chip mit Support für einen externen 
PHY, damit wird das ganze einfach.
Gast #2175180
Lesenswert?

Also das ganze sollte dazu dienen TT-Ethernet (TrimeTriggered) zu testen 
und mit dem "normalen" Ethernet zu vergleichen. Doch anhand der 
angesprochenen Problematik wird es wohl so nicht umgesetzt werden...

Ich danke euch trotzdem für eure Antworten. (Da sie mich letztendlich 
nur bestätigt haben)

Gruß
Philipp

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren