Druckauftrag (Centronics) abfangen

OP #3259016
Hallo,
ich möchte Druckaufträge (Centronics), mit einem Mikrocontroller 
abfangen und die übertragenen ASCII Zeichen an einen Rasperry PI 
weitergeben.
Die Aufgabe des Mikrocontrollers wäre es also, einen Drucker an den 
entsprechenden Strobe,ACK,Busy, usw. Leitungen zu simulieren.

Im Zuge dieses kleinen Projekts möchte ich fragen, ob jemand von euch 
schon einmal so etwas ähnliches gemacht hat?
Habe mit der SuFu nur Projekte in die umgekehrte Richtung gefunden.

Gruß
Na gut.
Das ist jetzt aber auch nicht gerade Raketentechnik.

Du hast 8 Portpins, das sind die 8 Datenleitungen.
Und wenn an einem 9.ten (/STROBE) eine Flanke von High nach Low erfolgt, 
dann holst du dir von den 8 Portpins das nächste Zeichen. Damit das 
Gerät weiß, dass du die die 8 Bit geholt hast, ziehst du einen 10-ten 
Pin (/ACK) einmalig von High auf Low und wieder zurück.

Mit den restlichen Steuerleitungen musst du noch ein bischen was machen, 
die sind aber recht selbsterklärend. Aber abgesehen davon, wars das 
schon: Auf einen Übergang High-Low am Strobe warten, die 8 Bit holen und 
der Gegenstelle mit einem Puls an ACK bestätigen, dass sie das nächste 
Byte rausgeben darf. Mehr ist das nicht.
Wenn du mehr als 1/2 Stunde investiert um nach Code dafür zu suchen, 
hast du es in der Zeit längst selbst geschrieben.
OP
Erstmal vielen Dank für die schnelle Antwort.
Ich glaube ich habe aber mittlerweile eine Lösung ohne Mikrocontroller 
und somit ohne "große" Hardwareentwicklung gefunden:
Statt dem Rasperry Pi könnte ich den Kleinrechner BeagleBone Black 
verwenden. Dieser hat meinen Recherchen nach 69 GPIO Pins mit denen ich 
das direkt machen könnte (jedoch mit einer Maximalspannung von 3,3 
Volt).
Jetzt stelle ich mir die Frage ob ich einen einfachen Spannungsteiler 
(für die Eingänge) und einen Transistor als Schalter (für die Ausgänge) 
verwenden kann?
Weiters stellt sich mir die Frage ob ich die 62 Ohm Impedanz der 
CENTRONICS Kabel berücksichtigen muss oder nicht?

Danke

Gruß Martin
Gast
Martin G. schrieb:
> ...Weiters stellt sich mir die Frage ob ich die 62 Ohm Impedanz der
> CENTRONICS Kabel berücksichtigen muss oder nicht?

Ein Centronics Kabel hat eine Impedanz?
Ernsthaft? "Gabs das damals schon?"
Spaß beiseite, bei soviel Datenleitungen und sowenig Masseleitungen und 
nicht definiertem Kabelaufbau bzw Adernlage im Kabel kann von einer 
Impedanz wohl kaum die Rede sein.
Und wenn ich mir die paar 10 KByte/sec bei normalem SPP Betrieb ansehe, 
kann ich nur müde lächeln.
Die zu lösenden Probleme sind bei diesem Projekt woanderst.
Gast
Harry L. schrieb:
> würde ich mir den
> Aufwand sparen, und die Ausgabe auf einen Netzwerkdrucker umleiten.

Wozu das denn - einfach Drucken in eine Datei. Vorausgesetzt natürlich, 
die Druckdaten kommen von einem PC, aber das weiss ja mal wieder keiner.

Gruss Reinhard
Jetzt mal Butter bei die Fische.

Wer generiert die Druckdaten? Und warum sollen die auf den Pi?
Centronics ist heutzutage ja schon reichlich exotisch.

Mit einem kleinen AVR wäre das prinzipiell kein Problem. Allerdings, 
wenn der Pi über nicht genügend Portleitungen verfügt (was ich nicht 
weiß), könnte man ja auch mal in die Richtung eines Schieberegisters als 
Eingangsstufe für den Pi nachdenken. Auf die Art würde man sich einen 
'Vor-Rechner' für den Pi sparen. Denn irgendwie müssen die Daten dann ja 
auch vom AVR zum Pi kommen.
OP
Karl Heinz Buchegger schrieb:
> Jetzt mal Butter bei die Fische.
>
> Wer generiert die Druckdaten? Und warum sollen die auf den Pi?
> Centronics ist heutzutage ja schon reichlich exotisch.

Also die Druckdaten (übrigens reiner Text) werden von einem DOS 
Industrie PC generiert. Die Daten sollen auf den PI konvertiert werden. 
Um Sie anschließend im Netz verfügbar zu machen.
Natürlich könnte das alles auch der DOS PC machen, jedoch darf dieser 
nicht ans Netz gehängt werden (bez. der Sicherheit). Also ist die 
unidirektionale parallele Verbindung eine Ideale Schnittstelle dafür.

Zumindest ist das meine Meinung...
Gast
Für den Konverter braucht man 9 GPIO Inputs und einen Output. Alles 5 
Volt.
Das ist IMHO das größere Problem.

Ein simpler Arduino (20 Euro) hat genug IO dafür und arbeitet noch mit 5 
Volt. Da bräuchte man nicht viel löten, sondern nur etwas SW schreiben.
Die Ausgabe erfolgt dann über USB (oder virtuelle Com-Leitung) an einen 
Rechner, der auch die Stromversorgung dafür übernimmt.

Wäre also 1 zu 1 verlöten, ohne Zusatzschaltung, und ca 1 Tag SW 
schreiben.
Persönliche Seite
Martin G. schrieb:
> Statt dem Rasperry Pi könnte ich den Kleinrechner BeagleBone Black
> verwenden. Dieser hat meinen Recherchen nach 69 GPIO Pins mit denen ich
> das direkt machen könnte (jedoch mit einer Maximalspannung von 3,3
> Volt).

Der PI hat so 20 GPIO direkt zu benutzung, reicht also aus.

Dazu dann was hier von:

http://www.mikrocontroller.net/articles/Pegelwandler

oder fetgig sowas hier

http://www.exp-tech.de/Shields/4-channel-I2C-safe-Bi-directional-Logic-Level-Converter---BSS138.html

Rest ist Software...
Martin G. schrieb:
> Karl Heinz Buchegger schrieb:
>> Jetzt mal Butter bei die Fische.
>>
>> Wer generiert die Druckdaten? Und warum sollen die auf den Pi?
>> Centronics ist heutzutage ja schon reichlich exotisch.
>
> Also die Druckdaten (übrigens reiner Text) werden von einem DOS
> Industrie PC generiert. Die Daten sollen auf den PI konvertiert werden.
> Um Sie anschließend im Netz verfügbar zu machen.
> Natürlich könnte das alles auch der DOS PC machen, jedoch darf dieser
> nicht ans Netz gehängt werden (bez. der Sicherheit). Also ist die
> unidirektionale parallele Verbindung eine Ideale Schnittstelle dafür.

http://www.wut.de/e-28000-ww-dade-000.php?pf=80

Das kommt Deinen Arbytegeber billiger als Deine Arbeitszeit, die Du für 
die Hardwarefrickelei aufwendest.

fchk

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.