COM3 - Serielle Komunikation - will nicht so wie ich

Hier dürfen auch unregistrierte Besucher posten.
Antworten
80939EF

COM3 - Serielle Komunikation - will nicht so wie ich

Beitrag von 80939EF »

Hallo, ich will ein Gerät an einer Seriellen Schnittstelle ansteuern und es funktioniert nicht so ganz...

Das habe ich schon :

MODE COM3:9600,N,8,1,P das ist klar - die Schnittstelle definieren

echo A10>COM3 es wird der Wert A10 an COM3 gesendet.

Soweit so gut und das angeschlossenen Gerät führt die Funktion A10 aus. Wenn ich jetzt einen weiteren Wert sende(z.B. B25), ist es, als wäre COM3 blockiert udn keine weiter Aktion wird ausgeführt .

Sende ich die Befehle A10, B25, C15 usw. über ein Terminal-Programm, so quittiert das Gerät jeweils mit einem Antwort-Telegramm und ich kann weitre Befehle eingeben.

Hat jemand eine Ahnung, was ich noch beachten muß, daß ich auf DOS-Ebene auch wiederholt Befehle absetzten kann?
mkarcher
LAN Manager
Beiträge: 204
Registriert: Fr 5. Jun 2020, 19:38

Re: COM3 - Serielle Komunikation - will nicht so wie ich

Beitrag von mkarcher »

DOS verwendet das BIOS zur Kommunikation. Das BIOS geht von einer ganz bestimmten Nutzung der Handshake-Leitungen aus, und blockiert ansonsten. Das BIOS erwartet die Konvention für Halbduplex-Strecken, nach denen die Pins am PC auch tatsächlich benannt sind:
  • Zunächst wird gewartet, dass DTR aktiv ist. DTR sagt aus, dass das angeschlossene Gerät in der Lage ist, Daten zu empfangen und zu verarbeiten.
  • Dann wird im Fall, dass gesendet werden soll, die RTS-Leitung aktiviert, im Fall, dass empfangen werden soll, dagegen die RTS-Leitung deaktiviert. (Da RTS für "Request to send" (übersetzt: "Sendewunsch") steht, ist dieses Verhalten nachvollziehbar)
  • Zuletzt wird darauf gewartet, dass das Gerät den Richtungswunsch auf der RTS-Leitung umgesetzt hat: Wenn gesendet werden soll, wird darauf gewartet, dass CTS ("clear to send" (übersetzt: "Sendebereit")) aktiv wird. Bei einer Halbduplex-Modemübertragung bedeuet dass, dass sich die Modems geeinigt haben, dass das an diesem PC angeschlossene Modem die Leitung besitzt und senden darf. Die meisten BIOSe warten beim Empfangen darauf, dass die CTS-Leitung inaktiv geht.
Blockaden bei der Nutzung der seriellen Schnittstelle mittels DOS-Kommandos entstehen meistens dann, wenn ein Leseversuch stattfindet, und CTS durch das Gerät nicht inaktiv geschaltet wird. Bitte prüfe daher, welchen Pegel RTS und CTS im Fall der Blockade haben, damit man erkennen kann, ob das BIOS im letzten der drei Schritte hängt.
Antworten