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.
Bei I²C oder SPI ist es z.B. genau umgekehrt - MSB first. Ist also vermutlich der alten Mechanik in den TTY geschuldet.
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
:
Bearbeitet durch User
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. Hat was ;)
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...
:
Bearbeitet durch Moderator
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
:
Bearbeitet durch User
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.
:
Bearbeitet durch Moderator
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
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.