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
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
. "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.
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
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
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
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.