Hallo, es wird überall angegeben, dass die maximale Gschwindigkeit des Druckerports bei Verwendung von DMA 2MB/s beträgt. Ist dieser Wert nur die Spitzengeschwindigkeit oder kann man tatsaächlich durchgehend mit 2MB/s senden? Und kann man den LPT-Port auch mit DMA in Linux betreiben, ohne selbst einen Treiber dafür schreiben zu müssen? Habe hier noch einen alten Rechner mit PentiumII und 32MB RAM stehen, den ich als Controller für einen Roboter nutzen möchte, und über den LPT soll ne Kamera angeschlossen werden(über einen HW-Treiber dazwischen). USB-Webcam fällt wegen der hoher Latenzzeit und Ressourcenverbrauch leider aus. MfG Mark
Selbst wenn rechnerisch die Geschwindigkeit möglich sein sollte, kann ein schlechtes Druckerkabel >1,80m schon einige Probleme bereiten. Real erreichbare Werte würde ich im Bereich der Laserdrucker suchen.
Längere Kabel als 50cm werd ich eh nicht verwenden. Wie schnell bekommen denn die Laserdrucker ihre Daten?
Hier gibt es die Grundlagen zum EPP- und ECP-Modus des Parallel-Ports. http://www.beyondlogic.org/epp/epp.htm http://www.beyondlogic.org/ecp/ecp.htm
Danke, aber die Seite kenn ich. Hab mich etwas informiert, so wies aussieht, gibt es keine fertigen Treiber für Linux, die DMA und den FIFO nutzen, sondern man muss sich diesen anscheinend aus verschiedenen Beispielcodes zusammenfrickeln. Zu der Geschwindigkeit steht da nicht viel, nur, dass ECP sogar schneller als EPP sein soll.
Das Problem an der tatsächlich erreichbaren Datenrate ist das Betriebssystem, welches ständig dazwischenfunkt. Dies macht sich bei kleiner "motorisierten" Rechnern besonders hart bemerkbar. Mach mal während der Datenübertragung ein Programm auf oder verschiebe ein Fenster mit der Maus, dann siehst Du, was ich meine. Wenn Deine Ausgaberoutinen schnell sind, kommst Du vielleicht auf 60...150kBytes/s. Aber wie gesagt, alles extem hardwareabhängig.
Hm, 60...150kBytes/s klingen etwas ernüchternd. Wenn man das ganze aber komplett per Kernel-Mode Trieber macht (notfalls auch die Bildverarbeitung) und einen echtzeitfächigen Kernel hat dann sollte es doch schneller sein oder? Anwendungen werden auf dem Ding fast keine laufen, da es wie gesagt für einen Roboter als µC ersatz dienen soll und all die Dienste, die eher für den Desktop/Server-Einsatz gedacht sind, nicht benötigt werden.
300kBytes/s sind drin. Dazu habe ich "sozusagen DDR-Betrieb" verwendet (Pentium mit 233 MHz) und Stecker in Flachbandkabel gepresst. Die 150kBytes gehen mit Laplink und Windows4Workgroups. Paketorientiert und mit EnterCriticalSection geht bei kleinen Paketen.
Hast du mal einen Blick auf die libIEE1284 geworfen? (http://cyberelk.net/tim/software/libieee1284/) Da ist der ganze Parport-Zugriff schön weggekapselt, ECP + EPP Modi sind verfügbar, um den ganzen Hardware-Zugriff (/dev/parport oder ioperm oder /dev/port, oder sogar Windows-Treiber…) kümmert sich die Lib. Sogar den Interrupt kannst du dir in den Userspace weiterleiten lassen, schick gemacht über ein Filehandle in select/poll. Ein Testprogramm um deine Portgeschwindigkeit auszumessen sollte damit in einer Handvoll Zeilen erledigt sein.
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.