Forum: Mikrocontroller und Digitale Elektronik USB grundsätzliche Frage


von Nils (Gast)


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

von sepp (Gast)


Lesenswert?

1024 Byte ist die maximale Paketlänge bei USB.  Was für ein Protokoll 
verwendest du?

von Thomas B. (yahp) Benutzerseite


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.

von Nils (Gast)


Lesenswert?

Ok vielen dank, das hilft mir schon ordentlich weiter.

von Nils (Gast)


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

von willivonbienemaya (Gast)


Lesenswert?

Welches Board ist das?

von Nils (Gast)


Lesenswert?

Sorry für die späte Antwort, aber habe sie erst jetzt gesehen.

Ich habe ein Keil mcb2140 Board mit einem LPC2148 als hitex StarterKit

Grüße Nils

von willivonbienemaya (Gast)


Lesenswert?

Ok, das habe ich nicht, dazu kann ich leider nichts sagen.

von snowman (Gast)


Lesenswert?

www.sprut.de gibt dir zu USB einen super überblick, auch wie was 
grundsätzlich gemacht bei USB wird...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.