Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [c-lib] Parellelport-Tutorial

  Alt 15. Jun 2006, 17:37
Tutorial

Etwas Theorie

Der Wunsch, Experimente mit dem Druckerport durchzuführen, setzt ein wenig Kenntnis der Elektrik voraus und so werde ich mit einem kleinen Kurs die "elektrische Digitaltechnik" ansprechen. Und ohne Grundsatz geht auch da gar nix, also bitte merken:
  • 1.Grundsatz:
    Der Strom fließt immer im Kreis, daher der Name "Stromkreis".
    Dies bedeutet: Wo ein Plus, da muss auch ein Minus her.
  • 2.Grundsatz:
    Die Höhe der Spannungsquelle ist immer die Maximalspannung in einer Schaltung.
    Es geht nicht, durch Verschaltung mehrerer Leitungen eine höhere Spannung zu erzeugen.
  • 3.Grundsatz:
    Auch wenn es im Moment vielleicht nicht so klar ist, es gibt 3 elektrische Zustände:
    an Plus gebunden, an Minus gebunden und ! elektrisch neutral.

Bevor mich die Elektriker jetzt eine dumme Nuss nennen, ich habe absichtlich Begriffe wie Plus, Minus und neutral verwendet, zumal ich nicht die Absicht habe, Wechselstromtechnik einfließen zu lassen.
Die Bezeichnung aus Schaltungen wie Vcc (Plus) und Gnd (Minus) sind auch nicht unbedingt besser.

Nun ein wenig Praxis:

Wir nehmen einen Wechselschalter und schließen wie folgt an:


http://dp.matthias-hielscher.de/tuto...llel_tut_1.gif

Es ist erkennbar, das die Leitung S (Signal) entweder ein Plus-
oder ein Minuspotential hat.Bei dieser Schalung ist es egal, wie
der Schalter steht, es leuchtet immer eine Lampe, und so ist es,
die Leitung S führt entweder einen H(igh) oder L(ow) Potential.



Nun nehmen wir einen 3 stufigen Schalter:


http://dp.matthias-hielscher.de/tuto...llel_tut_2.gif

Und schon ist's Essig mit entweder oder.... es gibt einen
Zustand, da ist nix auf der Leitung. Und So sieht's dann auch
in der Praxis aus, es gibt einen Zustand, der ist nicht H(igh)
oder L(ow). Der ist "neutral". Und diese 3 Schaltzustände nennt
man "tristate", weil's englisch halt besser klingt.



Aber warum ist nun dieser "tristate" so wichtig ? Nun, ich zeichne die Schaltung mal etwas anders:


http://dp.matthias-hielscher.de/tuto...llel_tut_3.gif

Und wir korrigieren etwas die Bezeichnungen, und schon haben
wir ein tristate-Element. Egal wie der Wechselschalter steht,
erst mit CS (Chipselect) wird das Signal durchgeschaltet. Aber
was macht das eigentlich für einen Sinn? Nicht unbedingt beim
Einmaleins des kleinen Elektrikers, aber in der Computertechnik.



Ich zeig's euch:


http://dp.matthias-hielscher.de/tuto...llel_tut_4.gif

Sind zwar nur zwei Nibble, aber mit ein wenig Vorstellungskraft
kann man sich bis zu ein paar Millionen solcher Schaltungen 8 Bit
breit auf einem gemeinsamen Leitungsbus vorstellen, oder......



Aber wir wollen ja gar nicht Millionen Speicherzellen anschließen, lediglich mal 8 oder 16 Relais steuern und vielleicht ein paar Schalter abfragen und deshalb reicht so eine kleine Einführung auch schon fast aus, um mit der Bastelei zu beginnen.
Wir kennen die Bedeutung von H(igh) und L(ow) Signalen sowie den "dritten" Signalzustand. Wir sollten uns noch merken, dass eine Anzahl von Leitungen mit gemeinsamer Bedeutung "Bus" genannt wird.
z.B. Datenbus, Adressbus, Steuerbus um die wichtigsten beim Namen zu nennen. Und damit hat jede Leitung eine Wertigkeit aufgrund ihrer eigenen Position in der Rangordnung.
Machen wir einen kleinen Step zur dualen Mathematik. Diese kennt nur 2 Zahlen. Die "0" und die "1"
analog zu den Spannungspotentialen der Leitung L(ow) und H(igh).
Gerechnet wird also mit der Basis 2 entsprechend der Potentialzustände L und H sowie dem Exponenten angegeben in der Nummer der Leitung. Und wir beginnen die Zählung der Leitungen mit "0".
Eine Regel der Mathematik sagt, dass x hoch 0 immer 1 ist. So sieht die Formel für Leitung mit der Nummer 0 wie Folgt aus: 2 hoch 0 mal Signalzustand (1 oder 0).
Verallgemeinern wir es etwas: Basis (ist wie wir wissen 2) hoch Leitungsnummer mal Signalzustand.

Nehmen wir an:

4 Leitungen:
Leitung 0 = 1, Leitung 1 = 0, Leitung 2 = 1 und Leitung 3 = 1 ('1101')

Code:
So lautet die Rechnung: 2 hoch 0*1 + 2 hoch 1*0 + 2 hoch 2*1 +  2 hoch 3*1
Ist                       1*1     +    2*0     +    4*1     +     8*1      = 13
Wer Spaß an Mathe hat, der kann ja mal 8 Leitungen (ab jetzt Bit), 16 Bit oder gar 32 Bit berechnen.
So, jetzt wissen wir auch, wie die Zahlen in den Computer kommen.
  Mit Zitat antworten Zitat