Home
Elektronik am PC
Elektronik
Tutorials
Forum
Downloads
Vermischtes
Kontakt
Impressum











Home >  Elektronik am PC  > COM Test

Funktioniert mein COM-Port?



Diese Frage sollte man als erstes klären, wenn man beginnen möchte mit der seriellen Schnittstelle unter QuickBasic zu experimentieren. Immer wieder wird ja z.B. von Schwierigkeiten unter Windows NT/2000/XP berichtet.

Download comtest.exe


Mit meinem kleinen Testprogramm "comtest.exe" lässt sich ganz einfach feststellen, ob der Zugriff auf den oder die COM-Ports möglich ist. Alles was man dazu braucht, ist ein Geldstück. Das Programm schaltet alle Ausgänge ein und liest danach ständig den Zustand der Eingänge aus. Wird ein Ein- mit einem Ausgang verbunden wird das registriert, die Nummer (1 oder 2) des getesteten COM-Ports wird angezeigt und auch eine akustisches Signal wird ausgegeben. Einmal piepsen für COM1 zweimal für COM2. So weiss man auch ob's geht, wenn man den Bildschirm beim Testen nicht mehr im Blick hat. Bequemer ist natürlich ein Verlängerungskabel wie auf dem Foto.







Am einfachsten kann man den Kontakt herstellen, wenn man einfach eine Münze zwischen die Pins der Anschlussbuchse steckt, wie ebenfalls auf dem Bild zu sehen ist. Eventuell muss man ein bisschen wackeln, aber in der Regel klappt es schon beim Reinstecken. Wichtig ist nur, dass man das Programm startet und erst wenn der Test läuft etwas an der Schnittstelle macht.

Die serielle Schnittstelle ist im Gegensatz zum LPT kurzschlussfest, darum kann man diesen Test dort so machen. Am Druckerport (LPT) ist das nicht möglich, dieser ist nicht kurzschlussfest und kann dabei zerstört werden! Wird das Programm nicht im Vollbildmodus ausgeführt, kommt es wie üblich zu kleinen Verzögerungen. Hier noch ein Screenshot:








Wenn das Programm beim Versuch eines neuen Testes geschlossen wird oder nichts passiert, ist der Zugriff von QBasic auf die COM Ports nicht möglich. Dies erfordert etwas aufwendigere Massnahmen. Da unter allen Windows NT Versionen (NT3.5, 40. 2000 und XP) die Hardware nicht direkt sondern nur über den entsprechenden Treiber erreichbar ist kann es vorkommen, das die Dosemulation von NT keinen Zugriff auf die Hardwareadressen des LPTs und der COMs besitzt. Da man in QBasic auch keine DLLs verwenden kann, die wiederum den Treiber bedienen, muss man das Problem anders angehen. Das Programm UserPort von Tomas Franzon ermöglicht den direkten Zugriff aus der Dos Box heraus auf die Schnittstellen. Auf die Funktion will ich jetzt nicht näher eingehen, denn es gibt genügend Informationen dazu im Internet und dieser Artikel soll nicht die Funktionsweise und den Aufbau von Windows Betriebssystemen erklären, sondern ist eher dafür gedacht, ganz einfach dieses Problem des Zugriffes zu lösen.

Als erstes wird das Programm und seine entsprechenden Dateien benötigt, diese kann man hier runterladen:

Download UserPort.zip


Nun wird das Ganze entpackt und es finden sich folgende Dateien:





UserPort.exe (Und die Quellen im Ordner UserPort_EXE) -> Konfiguration
UserPort.sys (Und die Quellen im Ordner UserPort_SYS) -> "Treiber"
UserPort.pdf -> Dokumentation

Als erstes muss man die Datei UserPort.sys in folgendes Verzeichnis kopieren:

c:/windows/system32/drivers (falls euer Windows auf c:/ installiert ist)

Nun die Datei UserPort.exe starten, nun erscheint folgendes:








Als erstes markiert man jetzt einen Eintrag nach dem Anderen und klickt auf "Remove", bis die beiden Felder leer sind, dann bekommt man dies:







Nun kann man im linken Feld die entsprechenden Adressbereiche der Hardware eintragen, die man ansprechen will. Die passenden Adressen bekommt man über den Gerätemanager von Windows:

Rechtsklick auf "Arbeitsplatz" -> Eigenschaften -> Hardware -> Geräte-Manager


Nun die Zeile "Anschlüsse (COM und LPT)" erweitern und ein Doppelklick auf den entsprechenden Port öffnet das dazugehörige Eigenschaftsfenster. Dort wählt man "Ressourcen" aus:








Den unter "E/A-Bereich" angegebenen Wert trägt man dann in das UserPort Programm ein. Wenn man mehrer Ports nutzen will führt man diese Prozedur entspr. öfters durch.

Hat man alles eingetragen kann man "Update" anklicken (dies aktualisiert die entspr. Werte in der UserPort.sys) und danach den "Treiber" starten, indem man auf "Start" klickt. "Exit" beendet nun das Programm. Nach einem Neustart ist der "Treiber" dann geladen (manchmal geht es auch ohne Neustart, aber sicher ist sicher). Nun sollte der Hardwarezugriff aus QBasic heraus unter Windows funktionieren, dies lässt sich ja dann z.B. mit dem Programm "Comtest.exe" testen. Bei Windows2000 kann es in seltenen Fällen vorkommen, das man nach jedem Neustart die UserPort.exe öffnen und "Update" gefolgt von "Start" klicken muss. Beim LPT funktionierte es bei mir auf Anhieb, ich benötigte es auch nur dort, da meine COM Ports bis jetzt unter Windows XP immer ohne Probleme liefen.

Falls es nicht funktionieren sollte kann es an mehreren Sachen liegen. Diese Lösungsansätze sind aber rein Spekulativ, da bei mir, wie schon erwähnt, immer alles astrein lief. Zum Beispiel könnte es sein, das man Administratorrechte benötigt um das Programm UserPort.exe zu benutzen, bzw. viell. muss man Administratorrechte besitzen um eine Anwendung, die die UserPort.sys benötigt erfolgreich zu starten. Auch wurde schon berichtet, dass es unter WindowsXP Home gar nicht funktioniert, dies sind aber alles wage vermutungen, die ich aus eigener Erfahrung nicht bestätigen kann.

Will man das Programm wieder deinstallieren löscht man einfach den Userport Ordner und die UserPort.sys in c:/windows/system32/drivers und entfernt den ensprechenden Eintrag aus der Windows Registry:

Start -> Ausführen


Dort dann regedit eingeben und Enter drücken. Nun öffnet sich der Registrierungseditor. Dort klickt man nun Bearbeiten -> Suchen (oder Strg+F), gibt dort UserPort ein und drückt erneut Enter. Der dann gefunden Ordner "UserPort" wird dann einfach gelöscht. Somit ist der PC nach einem Neustart wieder in dem gleichen Zusatnd, wie er zuvor war.

Erfahrungsberichte,Erfolge sowie Misserfolge können im Forum geäussert werden, denn es scheint sehr unterschiedliche Probleme auf unterschiedlichen Systemen mit unterschiedlichen Windowsversionen zu geben. Vielleicht lassen sich so einige dieser Probleme lösen. Eine Alternative zu UserPort ist auch GiveIO