USB grundsätzliche Frage

Gast #438531
Lesenswert?

Hallo zusammen,

ich habe mal ne grundsätzliche Frage zu USB, ich hab von meiner Firma 
den Auftrag bekommen ein Protokoll über USB zu Tunneln, die einzelnen 
Frames dieses Protokols können bis zu 64 KB gross sein. Gibt es bei USB 
auch die Möglichkeit so große Frames zu versenden oder muss ich nen 
Buffer auf dem USB Gerät basteln?

Grüße Nils
Persönliche Seite #438550
Lesenswert?

Die Größe der "Payload" eines Paketes auf dem Bus ist 1023 Byte 
(Fullspeed) bzw. 1024 Byte (Highspeed). In der Größenordnung werden von 
den Controllern in der Regel auch Empfangsbuffer (oft doppelt gepuffert 
zum einfachen Umschalten) bereitgestellt.

Host-seitig (also der PC) werden größere Datenmengen durch den Treiber 
in kleinere Pakete zerlegt. Auf dem µC musst du sie wieder entsprechend 
zusammenbasteln. Falls also die 64 kB am Stück verarbeitet werden 
müssen, musst du von Hand mehrere Pakete empfangen und zusammensetzten, 
will heißen dass du einen zusätzlichen Puffer von 64 kB unabhängig vom 
FIFO des Endpoints brauchst.
Gast #438569
Lesenswert?

ahc vielleicht noch eine "kleinigkeit" über dieses Protokoll kann ich 3 
verschiedene Dinge tun:

1) Schreibe/lese eine Variable
2) Rufe eine Funktion auf dem Board auf
3) Registriere dich für einen Event (z.B. Schicke mir Änderungen an 
Knopf1)

Funktionen können Parameter und Rückgabewerte haben. Im Moment habe ich 
das Board, dass ich habe als USB HIDevice eingerichtet und Tunnel dieses 
Protokoll sozusagen über den einen Input/Output Report der existiert. 
Jetzt hab ich aber gehört, dass dies wohl sehr unschön ist. Ich sollte 
diese drei versch. Aktionen von oben auch auf drei Reports aufteilen. 
Denkt Ihr auch so? Oder ist HID gar nicht die richtige USB Klasse, 
sollte man auf eine andere wechseln oder gar selbst eine schreiben.

Gruss Nils

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