Forum: Analoge Elektronik und Schaltungstechnik Wie kann ein PC einen Schalter schalten?


von Jonas (Gast)


Lesenswert?

Hallo!

Letzte Woche habe ich darüber nachgedacht und mir ist keine 
zufriedenstellende Erklärung eingefallen.

Ich weiß wie ein Relais oder ein Transistor funktioniert, doch folgendes 
kann ich mir nicht erklären:

Bei beiden muss, damit sie durchschalten ein "Aktivierungsstrom" 
angelegt werden. Wo wird dieser jedoch zugeschaltet? Von einem anderen 
Schalter?
Wenn ja, lässt sich diese Problematik beliebig weiterführen.

Es wäre schön, wenn ihr mir das Anhand des folgenden Beispiels erklären 
könntet:

Ich klicke am PC auf einen Knopf, der mir an einer angeschlossenen 
Schaltmatrix ein Relais schließt.

Wie geschieht der Übergang von der Software des PC´s zur Hardware?

Das dann gesendete Siganal läuft über einen Bus und schaltet dann (ggf. 
mit Signalverstärkung das Relais der Matrix, das verstehe ich.

Vielen Dank!

von Ralf (Gast)


Lesenswert?

Du nimmst beispielsweise einen USB-Chip, der dir erlaubt seine Pins als 
Ein-/Ausgänge zu verwenden und der z.B.über eine DLL angesprochen werden 
kann.
Den Chip verbaust du auf eine Platine zusammen mit dem Relais, und am 
Rechner programmierst du eine Software, die per DLL dem USB-Chip 
mitteilt, ob er das Relais an- oder abschalten soll.

Fertig.

Ralf

von Johannes (Gast)


Lesenswert?

Jonas schrieb:
> das Relais der Matrix

die Matrix muhaha!!

Der PC besitzt meines Wissens keine GPIO-Pins.
Nimm doch so einen Mikrocontroller, wie der hier überall angepriesen 
wird. Den sprichst du dann über eine serielle Schnittstelle an, und dann 
:

µControllerpin schaltet Transistor schaltet Relais schaltet Schütz 
schaltet Motor

von Jonas (Gast)


Lesenswert?

Hallo Ralf,

danke erstmal!

Die Vorgehensweise ist mir klar, es geht mir nur um das Verständnis.
Die gesamte Kette lautet ja:
Ich drücke den Ein-Schalter des PCs. Er fährt hoch (tausende 
Transistoren in der CPU erledigen das). Wie genau funktioniert jetzt die 
Kommunikation der Software mit der Hardware? Ich drücke mit der Maus auf 
den Knopf (z. B. Relais ein), dahinter ist der Code versteckt, der das 
Relais setzt.
Von mir aus über Befehle, die von der Programmiersprache/dem OS 
abhängen.

Aber selbst wenn dann z. B. der Befehl von der Software kommt: Bestrome 
Ausgang 1 kann ich mir nicht vorstellen, wie dies tatsächlich von 
statten geht.

Um es auf den punkt zu bringen:

Wie schafft es die Software einen Schalter zu setzen?

Ich hoffe, du entdeckst die Lücke in meiner Denkweise :)

von usuru (Gast)


Lesenswert?


von Jonas (Gast)


Lesenswert?

Noch mal :)

Der Aufbau steht, mir geht es nur um das Verständnis :)

von Günther (Gast)


Lesenswert?

Ich denke Du solltest Dir ein Buch über Rechnerarchitektur besorgen. 
Deine Frage bezeichnet Deine völlige Ahnungslosigkeit und die kann hier 
keiner mit Hilfe von ein paar Sätzen beseitigen.

von Jonas (Gast)


Lesenswert?

Aktiviere ich (ganz vereinfacht ausgedrückt) mit der Maus den ersten 
Transistor, über den Zeiger werden die "Koordinaten" der Maus ausgelesen 
und das OS weiß somit wo und welche Aktion ausgeführt werden soll?

von Roland P. (pram)


Lesenswert?

> Der PC besitzt meines Wissens keine GPIO-Pins.

Früher™ hat man dafür die parallele Schnittstelle verwendet ;)

Gruß
Roland

von Hengst (Gast)


Lesenswert?

Dazu musst Du lernen, was in einer CPU genau von Statten geht. Alles 
andere ist verschwendete Zeit

von Ralf (Gast)


Lesenswert?

> Aber selbst wenn dann z. B. der Befehl von der Software kommt: Bestrome
> Ausgang 1 kann ich mir nicht vorstellen, wie dies tatsächlich von
> statten geht.
>
> Um es auf den punkt zu bringen:
>
> Wie schafft es die Software einen Schalter zu setzen?
Antwort: Gar nicht. Die Software macht das nicht. Genauso wie das oben 
aufgeführte "bestrome Ausgang 1".
Was die Software macht ist, nach dem Mausklick per DLL dem USB-Hub zu 
signalisieren, dass der an ihn angeschlossene USB-Chip einen bestimmten 
(von der DLL vordefinierten) Datensatz erhalten soll. Dieser Datensatz 
setzt im USB-Chip ein Bit -> aus Sicht der SW wird also nur ein Bit 
gesetzt. Dieses Bit ist im Chip mit einem Transistor verbunden, dieser 
mit einem Pin, dieser wieder mit einem (stärkeren) Transistor und der 
mit dem Relais, wobei dieses auch noch mit der Versorgung verbunden sein 
muss.

Richtig "bestromen" ist also nur durch den USB-Chip möglich, der PC 
selbst schickt nur Daten über eine Schnittstelle.

Hmmmm.... Besser?

Ralf

von Jonas (Gast)


Lesenswert?

Ich glaube ihr habt recht.

Ich habe mir vorher über genau diesen Schritt noch keine Gedanken 
gemacht.
Wie das dann mit der Messkette etc. funktioniert verstehe ich schon, 
doch wie ihr schon gesagt habt, dazu muss ich die Funktionsweise und 
Vorgänge eines Rechners genauer verstehen.

Danke jedenfalls!

von PC-Of-Death (Gast)


Lesenswert?

der TO hat anscheind noch nicht verstanden wie ein PC funktioniert.

von Gill Bates (Gast)


Lesenswert?

> Wie schafft es die Software einen Schalter zu setzen?

Ganz einfach: Sie tute es nicht.

Dein Denkfehler ist, anzunehmen, die Software würde initial was tun. Dem 
ist nicht so, denn das kann sie nicht. Der Prozess beginnt mit dem 
einschalten der Hardware.

Der Prozessor spult sein fest verdrahtetes Programm ab und holt sich im 
BIOS seine Grunddaten (aka die Grundschaltung). Damit hat er die 
Grundlage geschaffen, sein Betriebsprogramm zu starten (aka zu booten).

Nun läuft das normale Programm: Der Prozessor wartet auf Eingaben und 
schaltet Transistoren wenn Du auf den Knopf drückst. Diese werden 
verstärkt und schalten das Relais.

Das ist alles sehr vereinfacht, aber der Grundtenor sollte klar sein: 
Die Software selbst tut nix, sie ist nur der "Verdrahtungsplan" für die 
Hardware

von Harald W. (wilhelms)


Lesenswert?

Jonas schrieb:

> Wie schafft es die Software einen Schalter zu setzen?

Das schafft sie nicht. Dafür ist sie viel zu "weich". :-)
Gruss
Harald

von Philosoph (Gast)


Lesenswert?

Hi,

Es gibt keine Software. Die Software ist nur eine Art "Blickwinkel" 
(Abstraktionsweise) mit der man die Hardware betrachtet.

In "Wirklichkeit" existiert nur Hardware.

von Norbert (Gast)


Lesenswert?

Philosoph schrieb:
> Es gibt keine Software. Die Software ist nur eine Art "Blickwinkel"
> (Abstraktionsweise) mit der man die Hardware betrachtet.
> In "Wirklichkeit" existiert nur Hardware.

So kurz und doch so falsch;-)

Möglicherweise ist es ja auch so, das die Software bestimmt wie die 
Hardware sich verhalten soll...

von Harald W. (wilhelms)


Lesenswert?

Philosoph schrieb:

> Es gibt keine Software.

...und was ist das? :-)
http://upload.wikimedia.org/wikipedia/commons/a/a6/Flyvende_puter.jpg
Gruss
Harald

von Philosoph (Gast)


Lesenswert?

> ...und was ist das? :-)
> http://upload.wikimedia.org/wikipedia/commons/a/a6...

Das ist ebenfalls Hardware. Nur die Tatsache, dass wir uns selber so 
hart vorkommen, lässt die Kissen weich erscheinen. ^^

> So kurz und doch so falsch;-)

Ja und Nein. Der Blickwinkel bestimmt richtig und falsch. Wenn man eine 
Festplatte anguckt, dann findet man zunächst mal nur Hardware (Atome). 
Lediglich unser Gehirn kommt durch eine Analyse der Strukturierung 
dieser Hardware auf die Idee zwischen Hardware und Software zu trennen 
und somit eine weitere Abstraktionsebene einzuführen, welche sich 
"Software" nennt.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

Hallo!

Letzte Woche habe ich darüber nachgedacht und mir ist keine 
zufriedenstellende Erklärung eingefallen.

Ich weiß wie ein Auto oder ein Fahrrad funktioniert, doch folgendes
kann ich mir nicht erklären:

Bei beiden muss, damit sie fahren eine Kraft
aufgewendet werden. Wo kommt diese her? Von einem anderen
Planeten?
Wenn ja, lässt sich diese Problematik beliebig weiterführen.

Es wäre schön, wenn ihr mir das Anhand des folgenden Beispiels erklären
könntet:

Ich sitze auf einem Fahrrad. Es fängt von alleine an zu rollen.

Wie geschieht der Übergang von der Strasse zu den Rädern?

Wenn sich das Rad dreht, dann rollt das Fahrrad, das verstehe ich.

Vielen Dank!

von Frank L. (florenzen)


Lesenswert?

Jonas schrieb:

[...]
> Aber selbst wenn dann z. B. der Befehl von der Software kommt: Bestrome
> Ausgang 1 kann ich mir nicht vorstellen, wie dies tatsächlich von
> statten geht.
>
> Um es auf den punkt zu bringen:
>
> Wie schafft es die Software einen Schalter zu setzen?
[...]

Hardware wird in den Speicher "eingeblendet". Was der Hauptspeicher, 
also RAM ist wirst du wissen. Das dieser aus Transistoren aufgebaut ist 
die sich einen Wert merken können wirst du ebenfalls wissen. Das man in 
diesem RAM gezielt bestimmte Segmente beschreiben bzw. lesen kann 
(Adresse) weisst du wahrscheinlich auch.
Der Adressbereich eines Computers oder µC umfasst aber nicht nur das RAM 
sondern auch Hardware. Auf einem Atmel ATMega48 zum Beispiel liegt der 
Port D an der Speicheradresse 0x0B. Schreibe ich dort mit Software einen 
Wert hin, z.B. binär 00000010 so schaltet der Ausgang PD1 auf "high". 
(OK, im Detail müssen dazu noch ein paar weitere Bedingungen erfüllt 
sein, das muß dich im Moment aber nicht stören).
Technisch erreicht wird das indem an dieser Speicheradresse keine 
Transistoren sitzen die sich etwas merken, sondern solche die etwas 
schalten.

Ich hoffe ich habe dein Problem erfasst und mich halbwegs verständlich 
ausgedrückt.


Gruß
f

von J.T.K. (Gast)


Lesenswert?

Johannes schrieb:
> Der PC besitzt meines Wissens keine GPIO-Pins.

Sehr weise Erkenntnis. Deshalb spricht man von dem Ding im PC auch von 
einem Mikroprozessor. Hätte er GPIOs, wäere es ein Microcontroller.

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

J.T.K. schrieb:
> Sehr weise Erkenntnis. Deshalb spricht man von dem Ding im PC auch von
> einem Mikroprozessor. Hätte er GPIOs, wäere es ein Microcontroller.

Humbug. Im PC steckt ein Prozessor. Prozessoren dürfen auch
GPIOs haben, schau dich ruhig mal in der Embedded/Linux-Welt um.

von Michael H. (michael_h45)


Lesenswert?

Jonas schrieb:
> Wie geschieht der Übergang von der Software des PC´s zur Hardware?
ISBN 155860491X Computer Organization & Design - The Hardware/Software 
Interface. Absolut empfehlenswert!

Und falls dir das nicht tief genug geht:
ISBN 0130907723 Digital Design

von Stefan F. (sfrings)


Lesenswert?

Beispiel für einen alten PC mit 8086 Prozessor und parallelem 
Durckeranschluss:

In Pascal:
Port[$378]:= 1;
Port[$378]:= 0;

In C:
outb(1,0x378);
outb(0,0x378);

In Assembler:
MOV DX,0378H
MOV AL,1
OUT DX,AL
MOV AL,0
OUT DX,AL

In Basic:
OUT &H378, 1
OUT &H378, 0

Der (Intel 8086) Prozessor gibt zunächst die Adresse 0x378 auf seinen 
Adress/Daten-Bus aus und sendet einen Adress-Latch Impuls. Dann gibt er 
den Daten-Wert auf seinem Adress/Daten-Bus aus (also 0 oder 1) und setzt 
den Memory/IO Ausgang auf Low, um zu signalisieren, daß er auf I/O 
Module zugreifen will. Dann sendet er einen Write-Impuls.

Der Prozessor hat also für Zugriff auf I/O Ports und Arbeitsspeicher 
separate Befehle.

Am Adress/Daten-Bus befindet sich ein D-Latch für die Adresse, ein 
Adress-Decoder, und ein zweites D-Latch für die Daten. Der Adress-Latch 
Impuls des Prozessors lädt die Adresse in das Adress-Latch. An dessen 
Ausgang befindet sich eine Logikschaltung, die erkennt, ob die Adresse 
0x378 geladen wurde. Wenn ja, dann erlaubt der Adress-Decoder die 
Weiterleitung des folgenden Write-Impulses an das Daten-Latch. Dieses 
lädt dann die Daten. Die Augänge des Daten-Latch stehen am Parallel-Port 
Pin 2-9 zur Verfügung.

Beim Wert 1 geht der Pin2  des Steckers auf High, bei einer 0 geht er 
aus Low.

Aktuelle PC's haben natürlich hoch integrierte Chipsätze, das 
Funktionsprinzip bleibt jedoch gleich. Der Prozessor hat spezielle 
Befehle, um auf I/O Baugruppen zuzugreifen. Es gibt daher zwei 
Adressräume: einen für den Arbeitsspeicher und einen für I/O Baugruppen.

Beispiel Schaltplan: 
http://www.elektronik-kompendium.de/public/arnerossius/schaltungen/fuerpc/postcard.png

Dieser Schaltplan zeigt eine I/O Schnittstellen-Karte für IBM PC. Sie 
besteht nur aus primitiven Logik-IC's. Links unten ist der ISA-Bus. Das 
Adress-Latch Register befindet sich auf dem Mainboard (zwischen CPU und 
ISA-Bus) und ist daher in diesem Schaltplan nicht zu finden. Unten in 
der Mitte siehst Du den Adress-Decoder. Bei einer ganz bestimmten 
Adresse leitet er den Write (IOW) Impuls an das Daten-Latch weiter (IC3 
CLK Pin). Der Ausgang dieses Daten-Latches ist mit einem 7-Segment 
Anzeige verbunden, die den Wert des Daten-Bytes hexadezimal anzeigt.

Anstelle dieser Anzeige könntest Du an die Ausgänge von IC3 auch 
Transistoren und Relaises anschließen.

Es gibt auch Mikroprozessoren mit nur einem Adressraum. Zum Beispiel 
könnten die ersten 1GB für I/O Baugruppen reserviert sein, und danach 
folgen Adressen für RAM. Diese Prozessoren haben für I/O keine 
besonderen Befehle und sie haben auch keinen Memory/IO Ausgang. Bei 
diesen Prozessoren würdest du auf den I/O Port zugrifen, indem Du 
einfach etwas an seine Adresse sendest:

byte* zeiger=0x378;
*zeiger=1;
*zeiger=1;

Beantwortet das Deine Frage?

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
Noch kein Account? Hier anmelden.