RS232 Kommunikation läuft nicht synchron
Posted: 17. Oct 2006 22:05
Hi!
Ich programmiere an einer RS232 Schnittstelle für Linux, über die Daten an einen Roboter gesendet und von ihm empfangen werden sollen. Unter Windows läuft das ganze auch schon wunderbar und wenn man sich das ganze auf dem Oszi anschaut, sieht man da auch, dass zu erst vom uC die Daten gesendet werden (dies geschieht per interrupt alle 20 ms, während der PC per busy-wait darauf wartet) Sobald der PC seine Daten empfangen hat, sendet er dem uC umgehend ein Datenpaket, und kann dann was tun, bis das nächste Datenpaket vom uC kommt. Unter Linux kommt es nun zu dem problem, dass der PC zwar die Daten empfängt, dann jedoch eine von Durchlauf zu Durchlauf größer werdende Zeitspanne vergeht, bis er wiederum Daten zurücksendet. Dadurch läuft das Senden der Daten vom PC in den nächsten 20ms Zyklus rein und die Kommunikation bricht ein. Hat jemand eine Idee, warum das Senden der Daten vom PC unter Linus so lange auf sich warten lässt und wie man das unterbinden kann?
Hoffe, dass jemand was mit der Fehlerbeschreibung anfangen kann... sonst einfach fragen und ich versuchs genauer zu erklären.
Ich programmiere an einer RS232 Schnittstelle für Linux, über die Daten an einen Roboter gesendet und von ihm empfangen werden sollen. Unter Windows läuft das ganze auch schon wunderbar und wenn man sich das ganze auf dem Oszi anschaut, sieht man da auch, dass zu erst vom uC die Daten gesendet werden (dies geschieht per interrupt alle 20 ms, während der PC per busy-wait darauf wartet) Sobald der PC seine Daten empfangen hat, sendet er dem uC umgehend ein Datenpaket, und kann dann was tun, bis das nächste Datenpaket vom uC kommt. Unter Linux kommt es nun zu dem problem, dass der PC zwar die Daten empfängt, dann jedoch eine von Durchlauf zu Durchlauf größer werdende Zeitspanne vergeht, bis er wiederum Daten zurücksendet. Dadurch läuft das Senden der Daten vom PC in den nächsten 20ms Zyklus rein und die Kommunikation bricht ein. Hat jemand eine Idee, warum das Senden der Daten vom PC unter Linus so lange auf sich warten lässt und wie man das unterbinden kann?
Hoffe, dass jemand was mit der Fehlerbeschreibung anfangen kann... sonst einfach fragen und ich versuchs genauer zu erklären.