Forum: Mikrocontroller und Digitale Elektronik Parallelport im EPP-Modus


von Stefan R. (Gast)


Lesenswert?

Hallo,

ich möchte einen kontinuierlichen Datenstrom von ca. 1MBit/s in einen
PC einlesen. Da das Ganze ein Testaufbau werden soll, an dem sich evtl.
noch einiges ändern wird, habe ich (wegen einfacher Realisierbarkeit auf
Lochraster) erstmal von USB Abstand genommen und mir den Parallelport im
EPP-Modus angeschaut. Die Hardware, die das Signal seriell-parallel
wandelt und das EPP-Handshake macht, funktioniert zumindest in der
vhdl-Simulation schon und wird vermutlich auf einem XC9572-cpld
realisiert.
Die Datenrate selbst (wohlgemerkt 1MBit/s, nicht MByte/s!, d.h
125kByte/s) sollte ja kein Problem sein, ich frage mich nur, ob ich
mich darauf verlassen kann, dass die Daten kontinuierlich eingelesen
werden, da ich ja keinen Buffer habe, der kurze Stockungen im Transfer
auffangen könnte.
Afaik hat der EPP-Modus im Gegensatz zu ECP keine Möglichkeit, den Fifo
des Parallelport zu verwenden, habe ich das richtig verstanden?
(Quelle: http://www.beyondlogic.org/epp/epp.htm)
Evtl. werde ich das Ganze einfach mal aufbauen und im cpld einen Zähler
einbauen, der kontinuierlich seinen Wert an den EPP ausgibt, um zu
testen, ob da was verschluckt wird.

Gruß,
Stefan

von DirkD (Gast)


Lesenswert?

Hi,

125 KByte/s könnten funktionieren. Allerdings kann Dir manchmal das OS
und der Parallel-Port Probleme machen.

Ich war an der Entwicklung eines Gerätes beteiligt, daß an den PPort
angeschlossen wurde und EPP zur Übertragung genutzt hat. Dabei haben
wir besonders auf Notebooks öfters erlebt, daß das Gerät nicht
funktionierte und die Signal auf dem Oszi nicht sehr gut aussahen.

Dazu kommt noch, daß Dein Programm zum Auslesen von einem OS wie
Windows öfters unterbrochen wird. Das könnte zu Aussetzern führen.

Und ab WinXP versucht Windows auf dem Parallel-Port neue Geräte zu
finden. Dazu nutzt es den IEEE1284 Negotiation-Mode. D. h. es wird an
C17 (EPP-Adress-Strobe) "wackeln". Das könnte Dir auch Probleme
bereiten. Das läßt sich mit einem eigenen Device-Treiber umgehen.

Viele Grüße

     Dirk

von Rufus T. Firefly (Gast)


Lesenswert?

.
   "Ich frage mich nur, ob ich mich darauf verlassen kann, dass
   die Daten kontinuierlich eingelesen werden, da ich ja keinen
   Buffer habe, der kurze Stockungen im Transfer auffangen könnte."

Das hängt ganz stark davon ab, ob und was für ein Betriebssystem auf
Deinem PC läuft.

Bei 125 kByte/sec liegen zwischen zwei Bytes gerade mal 8 µsec - einen
kontinuierlichen Zugriff mit diesem Raster wirst Du unter einem
ernstgemeinten Betriebssystem nur hinbekommen, wenn Du auf
Devicetreiberebene arbeitest. Mit einem normalen Usermode-Programm ist
das völlig ausgeschlossen.

Wenn kein Betriebssystem vorhanden ist (also DOS oder dergl. läuft),
dann hast Du zumindest Chancen, daß so etwas klappt, Du darfst nur
nicht gleichzeitig irgendwelche anderen Aktivitäten entwickeln wollen.
Massenspeicherzugriffe beispielsweise sind sehr langsam und im
Zeitverhalten nicht vorhersagbar.

Fazit:

Vergiss' den Parallelport, der ist eine "Mehrzweckschnittstelle" -
für mehrere Zwecke ungeeignet.

Spring' über Deinen Schatten, baue zumindest einen kleinen Testadapter
mit SMD-Technik auf (oder kaufe ihn) - und zwar einen, auf dem ein FTDI
FT245BM verbaut ist.
Das Teil hat einen Fifo, der mit einer µC- (und sicherlich auch
CPLD-)tauglichen Parallelschnittstelle beschrieben und gelesen werden
kann, und auf der PC-Seite werden ausreichend gut dokumentierte
Devicetreiber mitgeliefert.

von Stefan R. (Gast)


Lesenswert?

Hallo,

erstmal vielen Dank für eure Meinungen. Also das OS wird Linux sein,
und ein kleiner Devicetreiber wäre auch nicht so das Problem.
Allerdings lohnt es sich wohl nicht, für das bischen eingesparten
Hardwareaufwand die Softwareseite zu komplizieren ohne die Gewissheit,
dass es dann auch  funktioniert.
Ich werde dann wahrscheinlich auf USB umschwenken.
@Rufus: Ja, ich habe mir den FT245BM schon angeschaut, ist auf jeden
Fall genauso einfach wie der EPP cpld-mässig anzusteuern und ich
bekomme noch nen Buffer gratis - also genau das was ich will :-)

Gruss,
Stefan

von Hauke Radtki (Gast)


Lesenswert?

jo bei dem datenstrom wirst du auch ne hohe cpu auslastung haben ...

von Manfred Glahe (Gast)


Lesenswert?

Hallo Stefan,

einen kontinuierlichen Datenstrom wirst du nicht hinbekommen können.
Der Hauptgrund ist das Ram Refresh, dazu braucht der Rechner den Bus
und in der Zeit ist kein Io möglich. Ich habe eine 16 Bit Da- EA mit
Rampuffern gelöst und habe noch einen Oszischirmabzug von einer gerade
stattfindenden Unterbrechund beim Ramrefresh. Sind zwar nur 70µS aber
an der richtigen zeitlichen stelle eben nicht tolerierbar. PPort geht
NICHT für kontinuierlich ohne Puffer!

Falls Du das Schaltbild für die Anbindung PPort extern möchtest, stelle
ich es hier rein.

MfG Manfred Glahe

von Stefan R. (Gast)


Lesenswert?

Hallo Manfred,

danke für das Angebot. Aber ich werde wohl eher die USB-Variante
wählen, da hab ich in einem Chip schon den Puffer drin. Werde mir
wahrscheinlich von http://www.elk-tronic.de eine Adapterplatine für den
ftdi-Chip (oder gleich ein fertiges Modul) bestellen.
Trotzdem würde ich rein aus Interesse das Schaltbild gerne sehen (aber
nur, wenn du es nicht erst rauskramen usw. musst).

Gruss,
Stefan

von Manfred Glahe (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Stefan,

im Anhang das Schaltbild.

MfG Manfred Glahe

von Stefan R. (Gast)


Lesenswert?

Hallo Manfred,

danke für den Schaltplan!

Stefan

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
Noch kein Account? Hier anmelden.