Digitales I/O per Parallelport (LPT)

  • Themenstarter Themenstarter gemuetlich
  • Beginndatum Beginndatum
G

gemuetlich

Hallo,
ich versuche, per lpt port so etwas wie eine digitale Datenerfassung zu machen. Nicht auf die simple Art per input32.dll sondern mit Hardware Timing.
Das Problem mit _inp ist, dass das ja rein softwaregesteuert ist und ich also keine exakte Kontrolle darüber habe, zu welchem Zeitpunkt der Port ausgelesen wird. Ich dachte mir daher, man könnte den Port ja im ECP Modus betreiben. Dann werden die Daten per DMA ausgelesen. Man müsste dann nur einen entsprechenden Taktgeber an PeriphCLK anlegen und schon bekommt man in sehr regelmäßigen Abständen seine Daten. Hardware Timing eben. Ok, ein bisschen mehr muss man schon tun, um den Handshake hinzubekommen, aber im Wesentlichen braucht es ja nur diesen Takt. Bei jeder positiven Flanke sollte der Chip wieder ein Byte einlesen.
Die Frage ist, wie das jetzt in der Software aussieht. Wie kann ich das hinbekommen, dass ich da schön regelmäßig meine Daten hereinbekomme? Gibt es da entsprechende Treiber? So etwas Ähnliches wie inpout32.dll nur für ECP mit DMA? Das ist ja sicherlich kein neues Problem, die Daten von Scannern müssen ja auch irgendwie eingelesen werden. Oder muss ich mich tatsächlich mit den Registern und Interrupts herumschlagen?
Das Ganze läuft unter WindowsXP. Das System hat einen Winbond W83627HG, der einen ECP-fähigen Port bereitstellt. Welche Einstellungen sollten im BIOS vorgenommen werden? ECP mit DMA Kanal 3?
Vielen Dank im voraus für jegliche Hilfe!
Schöne Grüße,
Marcus
 
Zurück