| Zeile 522: | Zeile 522: | ||
=== Isochronoustransfers === | === Isochronoustransfers === | ||
| − | Das Toggle-Bit-Verhalten von Isochronoustransfers [[# | + | Das Toggle-Bit-Verhalten von Isochronoustransfers [[#Isochronous_2|wurde bereits besprochen]]. Ebenso [[#Nicht-Handshake-Datentransfers|wurde bereits gezeigt]], dass Übertragungen von und zu Isochronousendpunkten kein Handshake besitzen. Und mehr ist dazu auch nicht zu sagen, man könnte hier nur das bereits gezeigte Beispiel nochmals zeigen: |
{| {{Prettytable}} cellpadding="5" | {| {{Prettytable}} cellpadding="5" | ||
| Zeile 529: | Zeile 529: | ||
{{USB-Transfer|dir=in|type=DATA0|data=0x4D 0x6F 0x69 0x6E 0x2C 0x20 0x6D 0x6F 0x69 0x6E 0x2C 0x20 0x47 0x65 0x6E 0x6F 0x73 0x73 0x65 0x6E 0x5C 0x21|crc=0x04A9}} | {{USB-Transfer|dir=in|type=DATA0|data=0x4D 0x6F 0x69 0x6E 0x2C 0x20 0x6D 0x6F 0x69 0x6E 0x2C 0x20 0x47 0x65 0x6E 0x6F 0x73 0x73 0x65 0x6E 0x5C 0x21|crc=0x04A9}} | ||
|} | |} | ||
| + | |||
| + | === Beispiel === | ||
| + | So, nachdem wir all das durchgekaut haben, können wir uns jetzt wieder an einem lustigen kleinen Beispiel versuchen, zum Beispiel dem Transfer des Strings „Lowlevel?“ als Bulk-OUT-Transfer. Wie wir gesehen haben, sieht das in der Zusammenfassung so aus: | ||
| + | |||
| + | {| {{Prettytable}} cellpadding="5" | ||
| + | {{USB-Transferliste}} | ||
| + | {{USB-Transfer|dir=out|type=OUT|addr=42|endp=1|crc=0x1C}} | ||
| + | {{USB-Transfer|dir=out|type=DATA0|data=0x4C 0x6F 0x77 0x6C 0x65 0x76 0x65 0x6C 0x3F|crc=0x80F2}} | ||
| + | {{USB-Transfer|dir=in|type=ACK}} | ||
| + | |} | ||
| + | |||
| + | Dies wird zu den einzelnen Paketen (zwischen Feldern jeweils ein Leerzeichen und Little Endian!): | ||
| + | |||
| + | <pre>10000111 0101010 1000 00111 | ||
| + | |||
| + | 11000011 001100101111011011101110001101101010011001101110101001100011011011111100 | ||
| + | 0100111100000001 | ||
| + | |||
| + | 01001011</pre> | ||
| + | |||
| + | Jetzt lassen wir die Leerzeichen weg und führen das Bitstuffing durch (das immer noch an nur einer Stelle durchzuführen ist): | ||
| + | |||
| + | <pre>100001110101010100000111 | ||
| + | |||
| + | 11000011001100101111011011101110001101101010011001101110101001100011011011111100 | ||
| + | 0100111100000001 | ||
| + | |||
| + | 01001011</pre> | ||
| + | |||
| + | Jetzt zum NRZI mit SOP und EOP (Leerzeichen zur Verdeutlichung, zuerst Idle-Zustand, dann SOP, dann Paket, dann EOP, alles Full-Speed), dabei gilt _ als SE0: | ||
| + | |||
| + | <pre>J KJKJKJKK KJKJKKKKJJKKJJKKJKJKJJJJ __J | ||
| + | |||
| + | J KJKJKJKK KKJKJKKKJKKKJKKJJJJJKKKJJJJKKKKJKJJJKKKJJKKJKKKJKKKJJJJKKJJKJJJKJKKKJ | ||
| + | JJKKKKKKKJKJJKJJJJJKJKJKJKK __J | ||
| + | |||
| + | J KJKJKJKK JJKJJKKK __J</pre> | ||
| + | |||
| + | Lassen wir jetzt die Leerzeichen und auch die Pausen zwischen den Paketen weg (bzw. setzen da 16 Bitzeiten J hin): | ||
| + | |||
| + | <pre>JJJJJJJJJJJJJJJJKJKJKJKKKJKJKKKKJJKKJJKKJKJKJJJJ__JJJJJJJJJJJJJJJJKJKJKJKKKKJKJK | ||
| + | KKJKKKJKKJJJJJKKKJJJJKKKKJKJJJKKKJJKKJKKKJKKKJJJJKKJJKJJJKJKKKJJJKKKKKKKJKJJKJJJ | ||
| + | JJKJKJKJKK__JJJJJJJJJJJJJJJJKJKJKJKKJJKJJKKK__JJJJJJJJJJJJJJJJ</pre> | ||
| + | |||
| + | Jetzt ein hübscheres „Diagramm“, auf dem man den Zustand der D+- und D--Leitung sehen kann (Full-Speed!): | ||
| + | |||
| + | <pre>D+ ----------------_-_-_-___-_-____--__--__-_-_----__----------------_-_-_-____- | ||
| + | |||
| + | D- ________________-_-_-_---_-_----__--__--_-_-______________________-_-_-_----_</pre> | ||
| + | |||
| + | <pre>D+ _-___-___-__-----___----____-_---___--__-___-___----__--_---_-___---_______-_ | ||
| + | |||
| + | D- -_---_---_--_____---____----_-___---__--_---_---____--__-___-_---___-------_-</pre> | ||
| + | |||
| + | <pre>D+ --_-----_-_-_-____----------------_-_-_-__--_--_____---------------- | ||
| + | |||
| + | D- __-_____-_-_-_--__________________-_-_-_--__-__---__________________</pre> | ||
| + | |||
| + | So, wer das jetzt unbedingt ausprobieren will, kann das ja gerne tun, sich eines dieser extrem teuren USB-Analysegeräte kaufen, an 5 V anschließen und dann zwei Taster mit 12 MHz betätigen. Aber Achtung: Dies kann zu akuten Muskelbeschwerden im Armbereich führen. | ||
== Links == | == Links == | ||