USB zu LPT - Umsetzer (hardwarenahe Win-Programmierung)

#1880282
Lesenswert?

Hallo,

ich stelle mir folgendes vor:
USB zu Parallel - Umsetzer.
Ich stecke eine µC-Schaltung mit FTDI (USB) an einen USB-Port des PCs 
an. Dieser erkennt das ganze als virtuellen Parallelport (Programme 
sollen diesen auch als Parallelport nutzen können). Wenn nun das 
Programm eine Pegelkombination am LPT setzt, wird diese in einer 
Variable zwischengespeichert. Diese Variable wird zyklisch über USB an 
den µC gesendet, welcher dann das ganze "quasi-parallel" ausgibt.
Mir ist bekannt, dass man hier natürlich mit gewissen Latenzzeiten 
klarkommen muss.

folgendes Wissen ist vorhanden:
gute E-Technik Kenntnisse (Student), besonders µC und FPGA/CPLD, 
Signalverarbeitung analog und digital (DSP), ausbaufähige Kenntnisse in 
C/C++, auch Win32API.

Wie leicht/schwer ist es, so etwas zu realisieren? Gibt es evtl. viele 
Funktionen schon fertig? Natürlich kann man alles lernen wenn man 
möchte, aber ginge das auch in akzeptabler Zeit? Oder soll ich es besser 
gar nicht erst versuchen? Das ganze wäre nur ein kleiner Teil (etwa 1/6) 
meiner Diplomarbeit, d.h. der Zeitfaktor spielt auch irgendwie eine 
gewisse Rolle.

mfg

Michael

PS: beispielsweise gibt es ja für den STM32 bereits eine fertige 
Virtual-COM-Port-Umgebung. Vielleicht kann man damit was anfangen?
#1880299
Lesenswert?

Je nach dem was tatsächlich umgesetzt werden soll geht es
1. ohne virtuellen Parallelport, da die FTDIs von Haus aus einen 
BitBang-Modus unterstützen, der die Anforderungen erfüllt 
http://www.ftdichip.com/Support/Documents/AppNotes/AN232R-01_FT232RBitBangModes.pdf
2. mit virtuellem Parallelport, je nach Anforderungen, gar nicht, da zum 
einen die Spezifikation des Protokolls von FTDI nicht (vollständig?) 
offen gelegt ist (Rest siehe Linux-Kerneltreiber), zum anderen dann ein 
Windows-Kernelmode-Treiber inkl. Signierung, falls x64 unterstützt 
werden muss, erstellt werden muss.
3. mit virtuellem Parallelport, falls z.B. kein FTDI, sondern z.B. was 
von Cypress genommen wird siehe 
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/USB2LPT/
Persönliche Seite #1880312
Lesenswert?

Michael K. schrieb:
> Doch das Problem dabei ist
> weiterhin, wie ein Programm, dass für LPT ausgelegt ist, mit dem FTDI
> Treiber kommunizieren kann. Wenn das noch irgendwie ginge, wäre es wohl
> lösbar.

Eine gute Anlaufstelle dafür ist der von Henrik Haftmann geschriebene 
Treiber, der per I/O-Traps die I/O-Zugriffe auf die Hardware-IO-Adressen 
der PC-Druckerschnittstelle abfängt und auf entsprechende Befehle 
umsetzt, die an den per USB angebundenen Controller gesendet werden.

Das hat Henrik auf seiner Seite recht anständig dokumentiert.

Mir scheint, daß Henrik schon einen Großteil dessen erreicht hat, was Du 
erzielen möchtest, und daher dürfte seine Arbeit einen guten 
Ausgangspunkt für weiteres darstellen. Allerdings müsstest Du dann auf 
den FTDI-Controller verzichten, aber was sollte dabei das Problem sein?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren