Hallo,
ich arbeite mich gerade durch einen Fragenkatalog zur
Klausurvorbereitung durch. Da gibt es eine Frage: "Bei der seriellen
Schnittstelle wird zuerst das LSB übertragen. Warum ist das zweckmäßig?"
Ich hätte jetzt gedacht, weil es eben um 1930 für die Fernschreiber so
eingeführt wurde und alle Systeme darauf eingerichtet sind, so dass man
da schwer etwas ändern kann. Oder gibt es dafür noch einen technischen
Grund?
Das wäre aber keine Antwort auf die Frage nach Zweckmässigkeit.
Irgendetwas war sicher mal sinnvoll dran, wenn man sich die damaligen
Möglichkeiten von Schieberegistern vorstellt. Und die verschiedene
Anzahl von Bits, sind/waren ja durchaus nicht immer 8bit.
Francisca93 schrieb:> "Bei der seriellen> Schnittstelle wird zuerst das LSB übertragen. Warum ist das zweckmäßig?"
Damit man auch 7 Bit (optional plus Parity) kompatibel übertragen kann?
MfG Klaus
Hi,
Beitrag "Re: gibt es UARTs mit MSB first?"
Einmal Die Relation zu Start und Stopbit:
Dann bei Übertragungsfehlern siehe Bild.
Bei MSB "last" wird die Zeichentabelle etwas verschoben.
Bei LSB versetzt, trifft es die Übertragungs-Kontrollbits stärker.
ciao
gustav
Heiner schrieb:> Richtig!> Das ist nur eine Konvention.
Das ist nur ein Grund. Der Vorteil ist, dass man nachträglich(!)
problemlos die Übertragung von 5 auf 6 ... Bit aufbohren kann. Die
zeitliche Referenz ist ja das Startbit, nicht das/die Stoppbit(s). Dass
letztere zur teilweisen Erkennung von Übertragungsfehler dienen können,
ist zweitrangig.
Noch ein Bild
Wären die Steuerzeichen versetzt, gäbr es größere Probleme bei der
Kommunikation, als wenn nur die Zeichentabelle falsche Buchstaben
zeigte.
ciao
gustav
Hallo,
Francisca93 schrieb:> Ich hätte jetzt gedacht, weil es eben um 1930 für die Fernschreiber so> eingeführt wurde und alle Systeme darauf eingerichtet sind, so dass man> da schwer etwas ändern kann. Oder gibt es dafür noch einen technischen> Grund?
es dürfte reine Vereinbarung gewesen sein. Ich hatte mal einen
funktionsfähigen Siemens-Streifenschreiber in Besitz, hat ein Bekannter
geerbt. Höllenlärm wenn der lief und der direkt fliehkraftgeregelte 220V
Bürstenmotor war schon damals dem radio- und Fernsehempfang nicht so
zuträglich...
Der ankommende Code (Startbit, 5 Datenbits, Stopbit) wurde rein
mechanisch ausgewertet. Das Starbit gab eine Klinke an der Kupplung
frei, die Steuerwelle lief los und gab der Reihe nach eine der 5
Schienen unter den Tastenhebeln frei. Kam ein 1-Bit wurde die Schiene
etwas verschoben bis ein Schlitz unter dem Typenhebel lag.Bei einem
0-Bit blieb sie unbewegt.
Nach 5 Bit hat die Welle des Motors dann genau die Type aus Papier
geschlagen, wo in allen 5 Schienen ein Schlitz an die richtige Stelle
geschoben worden war.
Das Stoppbit wurde direkt garnicht ausgewertet, es war nur die Pause
damit die Kupplung ihre Runde beenden konnte und die Klinke vom
Startmagneten wieder einrastete und anhielt. Es wurde eben schon da
zeichensyncron gestartet und die Drehzahl mußte so gut passen, daß die
Welle während einer Umdrehung in jeder Bitzeit die richrige Schiene
verschob.
Ich finde leider beim googlen keine Detailbilder dieser Mechanik...
Man hätte die 5 Schienen auch einfach umsortieren können, dann wäre eben
MSB first gewesen. Die RS232 usw. sind erst in den 60er Jahren
aufgekommen,
da konnte man aber dem UART durchaus auch schon MSb first sagen.
Gruß aus Berlin
Michael
A. B. schrieb:> Heiner schrieb:>> Richtig!>> Das ist nur eine Konvention.>> Das ist nur ein Grund. Der Vorteil ist, dass man nachträglich(!)> problemlos die Übertragung von 5 auf 6 ... Bit aufbohren kann. Die> zeitliche Referenz ist ja das Startbit, nicht das/die Stoppbit(s). Dass> letztere zur teilweisen Erkennung von Übertragungsfehler dienen können,> ist zweitrangig.
Kannst du das mit dem problemlos erläutern? Mir scheint, es wäre für die
Unterstützung unterschiedlichcher Codelängen zweckmäßiger, das MSB
zuerst zu übertragen, weil man dann nur ein Schieberegister braucht,
dass von der kleinsten Stelle aufgefüllt wird.
Mac schrieb:> weil man dann nur ein Schieberegister braucht, dass von der kleinsten> Stelle aufgefüllt wird.
Bei der seriellen Schnitte wird das Schieberegister dann eher von der
höchsten Stelle "aufgefüllt": jedes übertragene Bit muss durch das
höchstwertige Flipflop durch.
Oder: mit der ersten Taktflanke kommt die Information das LSB in das MSB
des Schieberegisters und wird dann Bit für Bit "nach rechts"
durchgeschoben...
Lothar M. schrieb:> Bei der seriellen Schnitte wird das Schieberegister dann eher von der> höchsten Stelle "aufgefüllt": jedes übertragene Bit muss durch das> höchstwertige Flipflop durch.
Nur dass dann je nach Codelänge das Wort entweder an verschiedenen
Stellen reingeschoben oder nach Ende der Übertragung noch an die
richtige Position geschoben werden bzw. an einer anderen Stelle
abgegriffen werden muss. Wenn man MSB schiebt ist das Wort am Ende immer
an der richtigen Stelle.
O.k., danke, dann hätte ich ja schonmal 2 Antworten die ich hinschreiben
kann, wenn die Frage drankommt. 1. Historische Konvertion, 2. Damit man
auch weniger als 8 bit kompatibel übertragen kann (weil Startbit
zeitliche Referenz ist).
Also mir wurde es an der FH auch im Bezug auf das Schieberegister
erzählt.
Wenn du es mit dem LSB zuerst überträgst dann landet dieses im
Schieberegister direkt an der LSB Position und es ist kein weiterer
Aufwand notwendig (um das Byte zu drehen / spiegeln), man kann das Byte
dann direkt so wieder (in der Hardware) so auslesen wie es sein soll.
Sollte ich falsch liegen, bitte ich um Korrektur.
Adam P. schrieb:> Wenn du es mit dem LSB zuerst überträgst dann landet dieses im> Schieberegister direkt an der LSB Position und es ist kein weiterer> Aufwand notwendig (um das Byte zu drehen / spiegeln), man kann das Byte> dann direkt so wieder (in der Hardware) so auslesen wie es sein soll.
Das funktioniert aber mit MSB first und links schieben aber besser.
Unabhängig von der Bitzahl. So gesehen wäre MSB first sogar sinnvoller.
8bit-Empfangsregister und man kann 5/6/7 oder 8bit richtig sortiert
empfangen. Wenn überhaupt ein Vorteil bei LSB first vorliegt, muss der
in der alten Mechanik liegen.
H.Joachim S. schrieb:> So gesehen wäre MSB first sogar sinnvoller.> 8bit-Empfangsregister und man kann 5/6/7 oder 8bit richtig sortiert> empfangen.
Im Prinzip ist es egal. Es kommt auf die Implementierung des UARTs an
(Buffer als Mux oder Schieberegister). Somit bleibt eigentlich nur noch
1. historische Konvention übrig. Oder der Prof hat hier Halbwissen. Das
kommt durchaus vor.
Hallo,
alte Konventionen sind manchmal interessant: bei Telefonanlagen war der
Pluspol GND und geerdet. Die Relais waren mit seidenumsponnenen
Lackdraht gewicklet weil das mit dem Lack nicht zuverlässig isolierte.
Wie sagte damals mein alter Lehrmeister: nun noch die elektro-chemische
Spannungsreihe dazu und mit + am Eisenkern wandert der Kern zum Kupfer,
bei - würde der Kupferdraht zum Eisenkern wandern. Was hält wohl länger
durch?
Gruß aus Berlin
Michael
LSB first dürfte die Implementierung von unterschiedlichen Wortlängen
(5,6,7,8,9 Bit) vermutlich etwas vereinfachen. Viel dürfte aber einfach
Konvention sein, die beibehalten wird wenn kein wesentlicher Grund
dagegen spricht.
Manchmal geht Rückwärts-Kompatibilität aber auch über alles, etwa beim
A20 Gate.
Lurchi schrieb:> LSB first dürfte die Implementierung von unterschiedlichen Wortlängen> (5,6,7,8,9 Bit) vermutlich etwas vereinfachen. Viel dürfte aber einfach> Konvention sein, die beibehalten wird wenn kein wesentlicher Grund> dagegen spricht.
Wenn wir uns in diese Zeit zurückversetzen, noch keine anderen Verfahren
existieren die unsere Gedankengänge ablenken und wir allein aufgrund der
Logik und der technischen Eleganz entscheiden dürften ob MSB oder LSB
first dann würden wir uns ohne mit der Wimper zu zucken jederzeit sofort
wieder für LSB first entscheiden, es drängt sich geradezu auf:
* Die höherwertigen Bits kann man optional machen, die niederen bleiben
dennoch immer an der selben Stelle relativ zum Startbit.
* Es ist einfacher die Maske zu schieben als das ganze Register mit
allem was dran hängt
* Höherwertige (überzählige) Bits können (umschaltbar) ignoriert werden
indem man ganz simpel den Empfang vorzeitig beendet ohne dazu die ganze
Mechanik umzukrempeln, die niederen Bits landen automatisch immer sofort
an der richtigen Stelle sobald sie empfangen sind.
https://www.youtube.com/watch?v=HcMHam54EOI
Moin zusammen!
Ich gebe in diesem Zusammenhang noch etwas -eventuell eher
philosophisches- zu bedenken:
Wenn wir von der Fernschreibtechnik, dem Ursprung der asynchronenn
seriellen Datenübertragung, ausgehen, also aus einer Zeit weit vor dem
ersten Computer wie wir ihn heute kennen und verinnerlicht haben, dann
vermute ich, daß es sowas wie die 'Wertigkeit' ( *L*east *S*ignificant
*B*it/ *M*ost *S*ignificant *B*it) damals überhaupt noch nicht gab.
Eine Wertigkeit eines Bits ergibt erst dann Sinn, wenn ich mehrere Bits
zu einer 'Zahl' zusammen führen will, wollte man damals aber nicht,
sondern nur Zeichen codieren.
Beispiel: In CCITT-2 wird das 'E' als 00001 codiert. Wenn man mit dem
rechten Zeichen anfängt auszugeben. Oder als 10000, wenn man von links
ausgibt.
Wir Digitalen von heute (ich von gestern :-) ) sehen darin sofort eine
'1' oder eine '16', diese Sichtweise ist aber von unserer (umfassenden)
Erfahrung geprägt und nicht eine grundsätzlich zwingende.
Als man später anfing, das gleiche, bewährte Verfahren für die
Übertragung von 'Computerdaten' zu verwenden, einigte(*) man sich per
Konvention darauf, das LSB zuerst zu übertragen.
((*) Oder der erste hat es einfach so gemacht, und die anderen mussten
es dann nachmachen, um kompatibel zu sein, wie so oft..)
Wie die Diskussion schon zeigt, sind die Argumente für oder gegen das
eine oder andere sehr dürftig. Insbesondere Implementationsvorteile
(Schieberegister/Maske) können aus heutiger Sicht sehr schwer beurteilt
werden, weil die Technik damals ganz anders aussah.
Abschliessend erspare ich euch, meine Meinung zu Berufsschullehrern,
Dozenten und Professoren zum Besten zu geben. Die stellen gerne die
unsinnigsten Fragen.
Warum? Weil sie es können!
Und weil es ihr Selbstwertgefühl steigert...
IdS,
Baku
Für eine Klausurfrage finde ich diese Frage, wie soll man es sagen, zu
schwammig. MSB first ist nicht falsch, und wenn der Standard es vorgibt,
dann ist es leider so auch zu machen.
Ich habe schon einige Protokoll umgesetzt und wette, dass auch die
Kollegen darauf nicht klar antworten können.
.. Und dann so eine Antwort in der Klausur benoten..
Lurchi schrieb:> LSB first dürfte die Implementierung von unterschiedlichen Wortlängen> (5,6,7,8,9 Bit) vermutlich etwas vereinfachen.
Das wurde hauptsächlich für Fernschreiber entwickelt. Und da hat man das
Problem das für 5 oder 6 Bits ganz andere Zeichenkodierung benutzt wird
- Interoperabilität dadurch gleich Null.
Man bedenke dass ASCII z.B. mindestens 7 Bits braucht.
Ich finde es vieeel spannender das modernere Systeme oft MSB-first
arbeiten, z.B. SPI oder I²C. Und auch bei SPI gibt es verschieden lange
Bits pro Wort.
Deshalb kann man bei etlichen modernem USART (welche SPI und UART
können) die Bit Reihenfolge auswählen. Aber das dürfte deutlich jenseits
des Horizonts von der Lehrkraft des OPs liegen.
Diese Klausurfrage ist eher wie die Handbuchabfrage aus alten DOS
Spielen zu verstehen: Hier ist das wiederzugeben was im Buch zur
Lehrveranstaltung steht.
Bernd K. schrieb:> Youtube-Video "How The Teleprinter Works- 1940 (11:05 mins)"
Sehr schöner Film. Hab ihn mir komplett angesehen, was ich bei Youtube-
Videos sonst selten tue :)
Baku M. schrieb:> Ich gebe in diesem Zusammenhang noch etwas -eventuell eher> philosophisches- zu bedenken:>> Wenn wir von der Fernschreibtechnik, dem Ursprung der asynchronenn> seriellen Datenübertragung, ausgehen, also aus einer Zeit weit vor dem> ersten Computer wie wir ihn heute kennen und verinnerlicht haben, dann> vermute ich, daß es sowas wie die 'Wertigkeit' ( *L*east *S*ignificant> *B*it/ *M*ost *S*ignificant *B*it) damals überhaupt noch nicht gab.
Ich hatte gerade, als ich mir diesen Thread durchlas, genau denselben
Gedanken, ihn aber noch nicht in Textform gebracht :)
Noch eine kleine Ergänzung:
Dass die Entwickler der Fernschreiber und der dafür verwendeten
Zeichenkodierungen keine Dualzahlen, sondern lediglich Bitsequenzen im
Kopf hatten, erkennt man daran, dass in den damals üblichen 5-Bit-
Kodierungen die Codes für die einzelnen Ziffern überhaupt nichts mit dem
Dualsystem zu tun haben:
https://de.wikipedia.org/wiki/Baudot-Code
Bei rohen Bitsequenzen haben die einzelnen Bits keine Wertigkeit,
weswegen es naturgemäß kein LSB und MSB, sondern allenfalls ein erstes
und ein letztes Bit (in der Übertragung) bzw. ein linkes und rechtes Bit
(auf dem Lochstreifen) gibt.
Die Kodierung von Ziffern in Anlehnung an das Dualsystem kam m.W. erst
mit BCDIC:
https://en.wikipedia.org/wiki/BCD_(character_encoding)
Hier haben die Ziffern von '1' bis '9' tatsächlich die Codes 0x01 bis
0x09. Nur bei der '0' gibt es Uneinigkeit: Ist die Kodierung primär für
Drucker vorgesehen, steht der Code 0x00 für das Leerzeichen, weswegen
die '0' auf den Code 0x0a ausweichen muss. Auf Computern wie der IBM 704
und der IBM 709 entsprechen die Codes aller Ziffern inkl. der '0' ihrem
Zahlenwert, was die Konvertierung von Zahlen zwischen der Text- und der
numerischen Darstellung erleichtert. Interessanterweise ist man bei der
IBM 1401 von diesem Prinzip wieder abgekommen.
Warum bei RS-232 das LSB zuerst übertragen wird, ist zwar immer noch
nicht geklärt, aber zumindest muss man die Ursache nicht mehr in der
Fernschreiberära suchen.
Yalu X. schrieb:> Dass die Entwickler der Fernschreiber und der dafür verwendeten> Zeichenkodierungen keine Dualzahlen, sondern lediglich Bitsequenzen im> Kopf hatten, erkennt man daran, dass in den damals üblichen 5-Bit-> Kodierungen die Codes für die einzelnen Ziffern überhaupt nichts mit dem> Dualsystem zu tun haben:>> https://de.wikipedia.org/wiki/Baudot-Code
Dennoch war der Code nicht rein willkürlich gewählt, sondern
entsprechend der Häufigkeit der Buchstaben, damit der Verschleiss der
auf langen Strecke als Verstärker genutzten Relais möglicht gering
wurde.
Man versuchte also die Fernschreiben mit möglichst wenig Schaltvorgängen
zu übertragen.
Hallo,
nachtmix schrieb:> Man versuchte also die Fernschreiben mit möglichst wenig Schaltvorgängen> zu übertragen.
das erscheint mir durchaus logisch.
Was mich beim obigen YouTube-Video verwirrt hat: ich dachte, daß
Typenradverfahren ist erst Anfang der 70er zum Einsatz gekommen.
Habe aber gerade gefunden, daß der T68 von Siemens (ab 1951) auch ein
Typenrad hat.
Gruß aus Berlin
Michael