PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zuverlässigkeit der seriellen Schnittstelle



enoritz
05.06.2005, 19:47
Hallo,

ich habe mit einem AT90S2313 Mikroprozessor (Taktfrequenz 12MHz) eine serielle Verbindung zum PC aufgebaut.
Dieser soll nun Daten zum Controlle senden und jedes Byte einzeln über den PORTB ausgeben. Dabei spielt die Zeit aber eine wichtige Rolle. Aufgrund der Taktfrequenz habe ich eine ungefähre Ausführungszeit der (meisten) Befehle von 1/12000000 Sekunden, sie dürfen allerdings eine Zeit von 150ns nicht unterschreiten.

Ich habe mir überlegt ob ich nicht einen Timer verwenden könnte, der dann die Bytes aus dem UDR ausließt und auf dem Port ausgibt. Allerdings denke ich, dass ich so in einen Konflikt mit der seriellen Datenübertragung komme, falls ich die Bytes zu schnell oder zu langsam auslese.

Jetzt ist meine Frage, ob die Baudrate so zuverlässig ist, dass ich Einfluss auf die Übertragungszeit bekomme. Dann könnte ich ja den Interrupt bei vollenden eines Bytes verwenden um es anschließend auf PORTB auszugeben.
Kann man sich bei der Baudrate darauf verlassen, z.B. 9600 bd/s, dass auch wirklich 9600Bit/s bzw. 1200 Byte/s übertragen werden?

uwegw
05.06.2005, 20:44
man kann den empfang über einen interrupt laufen lassen. der wird dann immer ausgelöst, wenn ein neues zeichen reingekommen ist... wär das was, oder liegt dein problem woanders?

zeichen im interrupt auslesn und auf nen port ausgeben ist dann in ein paar zeilen erledigt...

enoritz
06.06.2005, 13:12
Dann könnte ich ja den Interrupt bei vollenden eines Bytes verwenden um es anschließend auf PORTB auszugeben.
O:) O:)
Wie bereits erwähnt... Es kam mir auf die Zuverlässigkeit bei der Übertragung an, ob ich sicher sein kann, dass die Signale bzw. komplette Bytes in einem regelmäßigen Abstand ankommen...Naja ich werds lieber mal testen... Probieren geht ja bekanntermaßen über Studieren...[/quote]

PicNick
06.06.2005, 14:49
Ich fürchte, du wirst mehr Schwierigkeiten damit haben, den PC zu einem genauen Senden zu bewegen. Kommt halt drauf an, wie heikel das Ganze ist.