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
1024 Byte ist die maximale Paketlänge bei USB. Was für ein Protokoll verwendest du?
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.
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.