Forum: Mikrocontroller und Digitale Elektronik USB1.1 Low Level Fragen (Lücken in Daten)


von Manuel K. (mkauf)


Angehängte Dateien:

Lesenswert?

Hi,

ich wühle mich grad so ein bisschen durch den USB 1.1 so nun hab ich ein 
paar Messungen gemacht und wundere mich bei der Kommunikation über ein 
paar "Lücken" kann mir von euch einer diese erklären? Die Daten sind 
Dauerschreiben auf einen USB Stick, Arbeite auf einem AVR32UC3A habe 
soweit auch schon Kommunikationen laufen und alles aber würd auch noch 
gern Verstehen was solche Pausen sind.

Habs nicht gepeilt hier mehrere Bilder hochzuladen :/ deswegen alles in 
eins gepackt. Hoffe man erkennt es.

Im Oberen Abschnitt ist mal so ein breiter Ausschnitt auf 50ms/div ich 
Vermute dass dies "ein" maximales Daten Packet beim USB ist?

das zweite Bild ist auf 1ms/div hier denke ich dass es die 1ms 
Zeitscheibe von USB 1.1 ist auf die er immer geht?

im dritten Bild bin ich wieder verwirrt. Hier sind 50µs ca "Daten?!?" 
und was sind die 10-20 µs Pause ?


öhm das wäre es erst mal


Danke schon mal :)

mfg

Manuel

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Die Bilder sind nicht einfach zu lesen.  Erstens siehe Bildformate,
JPEG ist alles andere als sinnvoll dafür (es vergrößert die Datei im
Vergleich zu PNG, verschlechtert aber die Lesbarkeit), zweitens sind
sie halt mächtig vollgepfropft.

Nur so ein paar Stichpunkte:

. Das Protokoll benutzt bestätigte Datenpakete, der Bestätigungsverkehr
  benötigt eine Datenrichtungsumschaltung und damit Pufferzeiten.
  Die maximale Paketgröße bei full speed ist 64 Bytes, was bei 12 Mbit/s
  mindestens 43 µs wären (plus Overhead fürs Framing).  Das könnte das
  beobachtete 50/10-µs-Raster sein.

. Ein USB-Stick schreibt nicht endlos schnell.  Irgendwann müssen die
  Daten auch in den Flash, was einige Millisekunden benötigt.  Nun
  gibt es zwei Möglichkeiten: der Bus kann mehr Daten transportieren,
  als die Brutto-Schreibdatenrate des Flashs hergibt.  Dann hast du
  zwangsweise Zeiten, in denen der Bus per Flussteuerung ausgebremst
  werden muss, egal wie du es anstellst.  Selbst falls der Bus aber
  das Nadelöhr ist, benötigt der Stick genügend RAM-Puffer, um während
  der Schreibphasen die parallel einlaufenden Daten zu puffern, bis
  der Flash wieder bereit ist.  Falls der RAM-Puffer nicht ausreicht,
  muss auch hier der Bus wieder ausgebremst werden.

. Jeweils zum 1-ms-Zeittakt eines neuen Frames vom Host dürfte
  eine Pause fällig sein, damit sich ggf. neu hinzu kommende Geräte
  synchronisieren und zu Wort melden können.  Die Protokolldetails
  dafür habe ich mir im Standard aber auch nicht angeguckt.

von Benjamin S. (recycler)


Lesenswert?

Hallo,
es kann meiner Meinung nach 2 Ursachen haben.
Eine Ursache liegt darin, dass das Protokoll alle 1ms SOF Packete 
sendet, so die Übertragung in Frames einteilt. Das letzte Packet passt 
dann nicht mehr ins Zeitfenster.
Das andere ist, das bestimmte Transferarten maximal 90% der Bandbreite 
zugesichert bekommen, zB Isochronos und Interrupt.
Control-Transfers bekommt 10% und Bulk nichts zugesichert
Deswegen entstehen die Fenster in der Übertragung.

Hoffe es hat geholfen.

von Manuel K. (mkauf)


Lesenswert?

Hallo

das ging ja Fix :)

Ich weiß schon das PNGs besser wären aber das Oszi macht gleich JPGs 
draus und die umwandeln würde auch nicht viel nützen (wird nicht mehr 
besser daraus). Dass sie so Vollgestopft sind stimmt -> hab schon 50% 
davon raus gemacht was hierzu nicht gehört gg) aber es Zeigt halt sehr 
viel Infos an ;)



Benjamin ja das hat schon mal viel geholfen vielen Dank :)
Jörg du hast mich auch gut weitergebracht :) Danke

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Manuel Kauf wrote:

> Ich weiß schon das PNGs besser wären aber das Oszi macht gleich JPGs
> draus ...

Das sollte einen Bugreport beim Hersteller wert sein.

von Manuel K. (mkauf)


Lesenswert?

gg nein ich hätt se beim Oszi umstellen müssen ;) -> ja ist noch recht 
neu das teil gg kannst dir dann psd png tif gif jpg aussuchen gg

die nächsten pics werden png ;)

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.