Hallo, ich habe hier eine Aufgabe mit der ich nicht ganz klar komme. Vielleicht kann mir hier jemand helfen. Eine RS 232-Schnittstelle hat Übertragungsrate von 9600 Baud, gemessen wurden der Spannungsverlauf (siehe Bild) daraus soll der HEX Wert ermittelt und das ASCII-Zeichen dargestellt werden. Bekannt ist ebenfalls 1 Startbit, 7 Datenbits, 1 Paritätsbit - gerade, 1 Stopbit (niederwertigste Datenbit wurde dabei zuerst übertragen). Ich lese hier 0110000110 heraus. Start, Stopp und Paritätsbit können doch zur Ermittlung vernachlässigt werden. So bleiben noch 1000 0110 da das niederwertigste Bit zuerst übertragen wurde. So erhalte ich Hex 86 und als ASCII-Zeichen †. Ist das richtig oder liege ich hier komplett falsch? Hasso
>mit der ich nicht ganz klar komme.
Was ist denn Dein Problem?
Am besten Du zeichnest in das Bild mal ein, wo und wie lang Du jeweils
das Start-, die Daten-, das Paritäts- und das Stopbit siehst?
Dann kann man da auch bestätigend oder korrigierend Rat geben.
Also bei einer Übertragung mit 9600Baud dauert ein Bit 104µs... Dadurch kommt dann bei mir in meinen verschlafenen Augen raus: 110110000101 würde dann im Klartext heissen Startbit die erste 0 Dann die Daten mit: 1100001 Dann die Parität 0 (anzahl der einsen ungerade) und noch das Stopbit... 1100001 das wäre ein b (hex62) (meine ASCII Tabelle zeigt es schon auf deine Aufgabe passend an... ) Wenn das falsch is ... war ich zu müde oO .. sry
Datenbits: 76543210: 0b00111100 => 0x3C => 60dez Das würde sich aber mit gerader Parität beißen. Weil es mit Paritätsbit eine gerade Anzahl sein müsste.
Die Position und die Länge der Bits sind richtig.
>Datenbits: 76543210:
0b00111100 => 0x3C => 60dez
Ich meine Du musst die Bits erstmal alle negieren. Im ersten Post schien
es mir, als wenn Du das auch getan hast. Im zweiten aber nicht. Das
siehst Du daran, das der Ruhepegel immmer High ist und das Startbit
immer Low.
Danach komme ich auf
6543210
1000011
Bis auf das negieren stimmt es also soweit.
Ich stimme Dir zu das die Parität hier entweder nicht stimmt oder eben
als ungerade eingestellt ist.
Mist. Habe garnicht gesehen, das jemand ganz anderes die Bitlängen eingezeichnet hat.
>Ist natürlich ein 'C'. Mein Gott ist das früh.
Es ist schon um acht. Die Forumsuhr geht falsch ;-)
Das mit der Parität habe ich mich auch schon gefragt. Bei 6543210 1000011 kann die Parität nicht 1 sein. Oder? Bei 1000011 komme ich jetzt auch auf Hex 43 und ASC 2=> C. Ich habe beim ersten 1000 0110 die letzte Null mit angefügt was natürlich dazu führt das ich eine HEx 86 erhalte. Das war also der Fehler.
Tolle Leistung: 4 Ingenieure/Elektroniker brauchen 2h49 um ein Byte zu "entschlüsseln"....
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.