Druckauftrag (Centronics) abfangen

#3259016
Lesenswert?

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ß
#3259064
Lesenswert?

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.
#3259124
Lesenswert?

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 #3259147
Lesenswert?

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.
#3259192
Lesenswert?

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.
#3259206
Lesenswert?

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 #3259250
Lesenswert?

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 #3259281
Lesenswert?

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...
#3259301
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren