Artikel
USB/RS232 mit Hindernissen
Adapter-Probleme und Tuning-Tipps
Die schon betagte und vergleichsweise langsame RS232-Schnittstelle muss dem USB weichen und wird bei Notebooks und PCs immer öfter ersatzlos gestrichen. Wenn es ohne RS232 nicht geht, beispielweise bei der Mikrocontroller-Programmierung, kann ein käuflicher Adapter die Brücke nach USB schlagen. Doch manchmal gelingt der Brückenschlag nur unvollkommen...
Die serielle Schnittstelle nach RS232-Standard wird so lange unverzichtbar bleiben, wie periphere Geräte mit dieser Schnittstelle in Gebrauch sind. Das haben auch die Adapter-Hersteller erkannt, die für Notebook-, Lap- und Desktop-Computer ohne RS232 diverse Schnittstellen-Wandler von USB nach seriell anbieten. Die Erfahrung mit solchen Adaptern zeigt, dass die Kommunikation zwischen USB und RS232 nicht immer so problemlos verläuft, wie man es sich wünscht. Wir haben uns zwei Adapter näher angesehen und untersucht, woran das liegt und was man dagegen tun kann. Praktische Beispiele sind der Anschluss des 89S8252-Flash-Boards (Dezember 2001), des DRM-Empfängers (März 2004) und des Programmierbaren Quarzoszillators (Februar 2005) an einen USB/RS232-Adapter. Ein weiteres Ergebnis unserer Recherchen ist ein handliches PC-Programm, mit dem virtuelle und auch reale RS232-Schnittstellen getestet werden können. Das Programm steht auf der Elektor-Homepage zum kostenlosen Download bereit.
Die serielle Schnittstelle nach RS232-Standard wird so lange unverzichtbar bleiben, wie periphere Geräte mit dieser Schnittstelle in Gebrauch sind. Das haben auch die Adapter-Hersteller erkannt, die für Notebook-, Lap- und Desktop-Computer ohne RS232 diverse Schnittstellen-Wandler von USB nach seriell anbieten. Die Erfahrung mit solchen Adaptern zeigt, dass die Kommunikation zwischen USB und RS232 nicht immer so problemlos verläuft, wie man es sich wünscht. Wir haben uns zwei Adapter näher angesehen und untersucht, woran das liegt und was man dagegen tun kann. Praktische Beispiele sind der Anschluss des 89S8252-Flash-Boards (Dezember 2001), des DRM-Empfängers (März 2004) und des Programmierbaren Quarzoszillators (Februar 2005) an einen USB/RS232-Adapter. Ein weiteres Ergebnis unserer Recherchen ist ein handliches PC-Programm, mit dem virtuelle und auch reale RS232-Schnittstellen getestet werden können. Das Programm steht auf der Elektor-Homepage zum kostenlosen Download bereit.
Material
Extra-Info / Update
Zu dem Artikel im Juni-Heft erhielt ich von Nico Presser den Hinweis, dass man über einen USB/RS232-Adapter innerhalb eines 1-Millisekunden-Frames mehrmalig in beiden Richtungen 64 Byte Nutzdaten übertragen kann. Es kommt nur auf die Art der Ansteuerung an.
Tatsächlich zeigen weitere Tests Folgendes: Daten werden letztendlich immer mit der Windows-Funktion WriteFile gesendet, egal in welcher Programmiersprache und auch dann, wenn zum Beispiel die Port-DLL verwendet wird. Nun kommt es darauf an, wie viele Bytes mit einem WriteFile verschickt werden. Im Testprogramm (Download zum Artikel) war es nur jeweils ein Byte, was dazu führte, dass jeweils ein Byte in einem ms-Frame gesendet wurde. Nun wurde eine zweite Test-Schaltfläche hingefügt, in der der gesamte Textblock in einem WriteFile-Aufruf verschickt wird. Und siehe da, jetzt werden die Datenbytes eng gepackt, so dass zum Beispiel bei 115 kBaud nur noch ca. 5 ms für den gesamten Text benötigt werden. Auf der Elektor-Homepage wurde inzwischen das Programm Terminal.exe (050071-11.zip) durch die neue (erweiterte) Version ersetzt.
Leider nutzt die Erkenntnis wenig, wenn beispielsweise mit einem Interface byteweise Daten ausgetauscht werden. Dann bleibt es dabei, dass Daten über den USB-Adapter nur relativ langsam hin und her gehen.
Burkhard Kainka
Tatsächlich zeigen weitere Tests Folgendes: Daten werden letztendlich immer mit der Windows-Funktion WriteFile gesendet, egal in welcher Programmiersprache und auch dann, wenn zum Beispiel die Port-DLL verwendet wird. Nun kommt es darauf an, wie viele Bytes mit einem WriteFile verschickt werden. Im Testprogramm (Download zum Artikel) war es nur jeweils ein Byte, was dazu führte, dass jeweils ein Byte in einem ms-Frame gesendet wurde. Nun wurde eine zweite Test-Schaltfläche hingefügt, in der der gesamte Textblock in einem WriteFile-Aufruf verschickt wird. Und siehe da, jetzt werden die Datenbytes eng gepackt, so dass zum Beispiel bei 115 kBaud nur noch ca. 5 ms für den gesamten Text benötigt werden. Auf der Elektor-Homepage wurde inzwischen das Programm Terminal.exe (050071-11.zip) durch die neue (erweiterte) Version ersetzt.
Leider nutzt die Erkenntnis wenig, wenn beispielsweise mit einem Interface byteweise Daten ausgetauscht werden. Dann bleibt es dabei, dass Daten über den USB-Adapter nur relativ langsam hin und her gehen.
Burkhard Kainka
Diskussion (0 Kommentare)