www.mikrocontroller.net

Forum: PC-Programmierung USB zu LPT - Umsetzer (hardwarenahe Win-Programmierung)


Autor: Michael K. (damichl)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht 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...
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/Ru...

Autor: Michael K. (damichl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die BitBang-Sache hört sich interessant an. 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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael K. (damichl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das hört sich sehr interessant an. Ich habe auf der Homepage das Projekt 
"SPE" gefunden, welches allerdings genau das Gegenteil macht (seriell zu 
parallel). Meintest Du das?


mfg


Michael

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, ich meine das bereits von "Arc Net" in diesem Thread verlinkte 
Projekt USB2LPT:

http://www-user.tu-chemnitz.de/~heha/bastelecke/Ru...

Autor: Michael K. (damichl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
D.h. ich baue das Teil nach, schließe es an, stelle ganz normal den LPT 
in der Software ein und das ganze Problem ist damit erledigt? Das wäre 
natürlich was ;)

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau. Bei vielen Programmen klappt das dann. Leider nicht bei allen, 
und offenbar leider nur bis Windows XP. Den LPT-Debugger für den MSP430 
hab ich damit leider nicht zum Laufen bekommen....

Autor: Michael K. (damichl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lt der FAQ funktioniert er sogar in Windows 7. Ich werd ihn einfach mal 
aufbauen und testen, die Kosten dafür sind jetzt nicht so gigantisch ;)


mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.