Hallo, habe folgende Aufgabe zu beantworten: Die RS-232-C ist eine asynchrone, serielle Schnittstelle. Der Sender schickt ein Datenpacket (1 Startbit, 8 Datenbits, 1 Paritybit und 1 Stoppbit) mit 38'400 Baud. Der Empfänger arbeitet mit einem Systemclock von 126'720 Hz. Das Startbit übernimmt er mit der 2-ten Flanke, die folgenden Bits nach jeweils weiteren 3 Flanken. Funktioniert die Datenübertragung? Falls nicht, ab welchem Bit können Fehler entstehen? Wie packt ihr diese Aufgabe an? Vor allem mit der Aussage "Das Startbit übernimmt er mit der 2-ten Flanke" habe ich Mühe! Danke für eure Hilfe... Gruss Samuel
Wie wird das empfangene Signal abgetastet? Mit Interrupt? Dann muss nach der ersten Flanke (high=>low), dia den Anfang des Startbits markiert, der Timer-INT (Output-Compare-Interrupt) auf 1/2 Bit (13.02 µs bei 38400 Baud) gesetzt werden, beim nächsten Compare-Int auf 1 Bit Länge, also 26.06 µs. So kann Bit für Bit mit 0% Fehler abgetastet werden. Bei der Taktfrequenz von 126'720 Hz kann per Polling nur mit Fehler abgetastet werden, was bei den 11 Bit nicht so sehr ins Gewicht fallen dürfte. In diesem Fall musst du Warteschleifen mit 13.02µs, bzw 26,04µs (was dem am nächsten kommt, evtl. während der abtastung korrigieren) programmieren.
Hallo, die Periodendauer bei 126720Hz ist rund 7,9µs (1/f). Wenn er mit der 2. Flanke übernimmt, ist das maximal 15,9µs nach Beginn des Startbits. Ab da übernimmt er alle 3 Flanken, also alle 23,7µs das nächste Bit. Die Bitzeit bei 38400 ist 1/f = 26µs. Nun kannst Du rechnen, wann die weit genug auseinandergelaufen sind... PS: Flanke jetzt mal als Periode interpretiert, also z.B. von L/H-Flanke bis L/H-Flanke. Eigentlich sind es immer 2 Flanken, eine steigende und eine fallende, so scheint es aber nicht gemeint zu sein, sehr ungenau... Gruß aus Berlin Michael
>Nun kannst Du rechnen, wann die weit genug auseinandergelaufen sind...
Rechnerisch nach dem 11. Bit. Darum beim 5. Bit eine Flanke länger bis
zur Abtastung warten, dann passt es bis zum 11. Bit.
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.