Liebe Elektronik-Interessierte, Ist für die Ansteuerung von eigenen Schaltkreisen über die parallele Schnittstelle eines PCs mit Linux (oder auch Windows oder Mac OS X) immer ein eigener Treiber für den Schaltkreis nötig oder steuert man den Schaltkreis einfach über den Parallelport-Treiber des Betriebssystems (z.B. parport bei Linux) an? Vielen Dank schon mal für eure Hilfe!
Normalerweise unternimmt man alles, damit man keine eigenen Treiber implementieren muss. D.h. wenn irgendwie möglich sollte man einen vorhandenen Treiber des OS für die Parallelschnittstelle benutzen.
Das schränkt die Möglichkeiten aber wahrscheinlich sehr ein. Ist es damit noch möglich, in Abhängigkeit von der Zeit unterschiedlich lange Signale zu senden und wie sieht es mit dem Empfangen aus? Lässt sich ohne speziellen Treiber noch ein D/A-Wandler ansteuern?
Sowas geht nur mit einem Echtzeit-OS, weder Standard-Linux noch Standard-Windows können das. Die Zeiten in denen man so ein Gefrickel gemacht hat, sind lange vorbei. Heutzutage schickt man die Daten per USB an einen Microcontroller, und der übernimmt die zeitkritischen Sachen. Und der Parallelport ist auch schon einiger Zeit ausgestorben.
Unter Windows kannst du das vergessen, unter Linux geht's. LinuxCNC ist eigentlich für das Steuern von CNC-Maschinen gedacht, macht aber sonst genau das, was du willst. Da dieses Projekt Open Source ist, kannst du dir dort ja Anregungen holen, wie eine zeitkritische Parallelport-Ansteuerung möglich ist: http://www.linuxcnc.org/
Als Minimalbeispiel stelle ich mir eine blinkende LED wie bei dem einfachsten Arduino Beispiel vor. Eigentlich kann ich mir kaum vorstellen, dass dafür so etwas wie ein Echtzeit Betriebssystem erforderlich ist, da man doch zum Beispiel beim Zoomen mit einer USB Kamera (okay, die vielleicht intern einen Mikrocontroller verwendet) auch nichts anderes macht. Mir ist klar, dass die parallele Schnittstelle veraltet ist, aber sie ist eben sehr einfach und transparent.
Beim Blinken einer LED dürfte man die kleinen Zeit-Fehler/Ungenauigkeiten auch kaum wahrnehmen, erst bei kürzeren Zeiten wird es kritisch. Eine USB Kamera verwendet einen USB-Anschluss, und dessen kritisches Timing macht komplett ein dafür gemachter IC/Schaltkreis im Computer ("USB Host Controller"), und nicht das Betriebssystem. Einfach ist die parallel-Schnittstelle schon, aber eben viel zu langsam für "moderne" Anwendungen...
win311 schrieb: > Unter Windows kannst du das vergessen, unter Linux geht's. > > LinuxCNC Ja, das ist ein speziell angepasstes Linux, soweit ich das verstehe. Mit einer Echtzeiterweiterung für Windows geht das genauso, nur dass das wahrscheinlich Geld kostet. Bei Linus ist das schon einfacher, das stimmt, kann man ja viel selber tunen. Aber ich würde nicht mehr auf den LPT setzen, mittlerweile gibts auch einfache USB I/O Controller, die nahezu genauso leicht zu programmieren sind.
>Mit einer Echtzeiterweiterung für Windows geht das genauso
Die wäre?
Was hindert dich daran, Google zu nutzen? Es gibt einige Echtzeit-Erweiterungen. Wir haben zum Beispiel mal eine Beckhoff Soft-SPS eingesetzt, auch die arbeitet mit einem Echtzeit-Kernel unter Windows. Trotzdem ist es sinnlos auf ein totes Pferd zu setzen.
zauderkuenstler schrieb: > oder steuert man den > Schaltkreis einfach über den Parallelport-Treiber des Betriebssystems > (z.B. parport bei Linux) an? Du meinst ppdev. Das Modul parport stellt keine Userspace API zur Verfügung.
Elektronische Experimente mit den Parallelport machen, geht am einfachsten mit MS-DOS und QBASIC. Ich habe das bei mir so gelöst, das ich zuerst MS-DOS auf eine FAT16 Partition des PC installiert habe und dann Windows XP. Man kann den Installationsvorgang von XP beeinflussen das die DOS Partition stehen bleibt. Beim Booten hat man dann die Wahl zwischen DOS und XP.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.