Wie wird Binär in elektrische Signale umgewandelt?

16

Ich fange gerade in der Elektronik an und bin schon fasziniert. Nachdem ich in den letzten Tagen mit einem Arduino gespielt habe, ist mir bewusst, dass Binär eine Darstellung verschiedener Spannungen ist - wie zum Beispiel + 5V-Darstellung 1und GND-Darstellung 0.

Ich habe versucht herauszufinden, wie der Mikrocontroller auf physikalischer Ebene den Binärwert in diese Spannungen umwandelt. Ich kann anscheinend nirgendwo eine Beschreibung finden. Kann jemand sein Wissen teilen oder mich auf einen Ort / ein gutes Buch hinweisen, das beschreibt, wie dies funktioniert?

Matt
quelle
1
Ich kann mich nicht erinnern, welches es war, aber schauen Sie sich dieses Video an. Guter Inhalt.
Abdullah Kahraman
2
Tatsächlich wandelt der Mikrocontroller das Binärsignal nicht in die variierenden Spannungen um. Binär ist die Spannung. A + 5V wird als "HIGH" oder "1" bezeichnet. Und 0V wird als "NIEDRIG" oder "0" bezeichnet. Schauen Sie sich die elektronischen Schalter genauer an. MOSFET.
Abdullah Kahraman
Sie fragen NICHT nach einer Umwandlung von "Analog in Digital" oder "Digital in Analog", oder?
Abdullah Kahraman
3
Es könnte hilfreich sein, anders herum darüber nachzudenken. "Binär" ist eine Art symbolisches mathematisches Gebilde, mit dem wir Menschen gerne argumentieren. Logikschaltungen können Binärsignale mit unterschiedlichen Spannungen darstellen. Wir entwerfen Logikschaltungen so, dass das, was die Schaltungen mit den Spannungspegeln tun, logisch konsistent ist, wenn wir Menschen diese Spannungen als Binärzahlen interpretieren.
JustJeff
1
@abdullahkahraman Sie haben Recht, ich glaube nicht, dass ich über DAC spreche, wie Sie sagen. Vielen Dank für den Link zum Video, es ist sehr informativ. Auf diese Weise haben Sie mir auch die MIT OCW-Website vorgestellt, die anscheinend eine großartige Lernressource darstellt. Vielen Dank!
Matt

Antworten:

18

Ich möchte einen Teil der Antwort von KellenJB etwas anders formulieren:

Es gibt keine Umwandlung von binären Einsen und Nullen in Spannungen wie 5 V und 0 V. Der Mikrocontroller oder eine physikalische Schaltung arbeitet nur mit den Spannungen.

Diese Spannungen werden in unseren Köpfen in binäre Einsen und Nullen "umgewandelt", wenn wir uns ein vereinfachtes Modell über die Funktionsweise der Schaltung vorstellen.

Das Photon
quelle
2
Ja. Ja, ja, ja und (oh ja) ja.
JustJeff
1
Und ich würde hinzufügen, dass, um eine 0 zu sein, die Spannung nur nahe bei 0 oder unter einer Schwelle sein muss (sagen wir <0,8 V) und eine 1 größer als eine Schwelle sein muss (sagen wir> 2,0 V). Die Grenzwerte unterscheiden sich durch die zum Aufbau des Gerätes verwendete Technologie und die Betriebsversorgungsspannung 5V in seinem Fall.
Kenny
1
Vielen Dank an alle. Wenn also ein Computer läuft, gibt es überhaupt keine tatsächliche Weitergabe von binärem Maschinencode? Der als Firmware hochgeladene Binärcode wird vermutlich dann in einem Speicher gespeichert, auf den der Prozessor beim "Zugriff" mit einem Spannungszyklus reagiert, der dem Binärcode entspricht. (Hoffe, das macht Sinn)
Matt
Um "hochgeladen" zu werden, muss der Code bereits eine physikalische Form haben: Spannungen auf einem Draht, die Positionen einiger Hebel (oder Tasten auf einer Tastatur), was auch immer. Im Speicher werden die Bits als Ladungsansammlungen auf einem Kondensator gespeichert ... der auch eine Spannung auf dem Kondensator erzeugt.
Das Photon
1
Mein Standpunkt ist, dass Formen auf einem Bildschirm oder auf einem Blatt Papier nur Lichter oder Tintenkleckse sind, bis unser Verstand sie als eins oder null interpretiert. Stellen Sie sich einen Buchstaben in einem Alphabet vor, das Sie nicht kennen (sagen wir kyrillisch oder thailändisch). Es ist nur ein Tropfen Tinte, bis eine russische oder thailändische Person vorbeikommt, um es zu interpretieren und zu wissen, für welchen Klang es steht. Aber diese philosophische Unterscheidung bringt uns wahrscheinlich vom Thema ab.
Das Photon
11

Es findet nicht wirklich eine "Bekehrung" statt. Binäre Einsen und Nullen sind nur eine virtuelle Darstellung der zugrunde liegenden Spannungen. Tatsächlich kann in vielen Systemen eine hohe Spannung 0 bedeuten, während eine niedrige Spannung 1 bedeutet. Es gibt einige Gründe, warum dies getan wird, aber wahrscheinlich möchten Sie dies frühzeitig untersuchen.

Um zu verstehen, was in der Logik vor sich geht, ist es wahrscheinlich am besten, in den Transistor zu schauen. Ein Transistor kann für viele Dinge verwendet werden, aber auf einer einfachen Ebene können Sie ihn als Schalter behandeln. Konzeptionell können Sie sich das wie Ihren Lichtschalter an der Wand vorstellen, aber anstatt durch physisches Bewegen des Schalters gesteuert zu werden, wird es durch die Änderung des Stroms gesteuert. Sie können das eingeschaltete Licht als 1 und das ausgeschaltete Licht als 0 behandeln. Jetzt können Sie diese Schalter in verschiedenen Sätzen kombinieren, um verschiedene Logikelemente (wie AND, OR, NOR usw.) zu erstellen.

Ich weiß, dass meine Antwort nicht sehr detailliert ist, aber ich hoffe, dass sie Ihre Frage beantworten wird. Wenn Sie weitere Erklärungen benötigen, würde ich gerne weitere Details hinzufügen. Ich möchte Sie einfach nicht überwältigen.

Kellenjb
quelle
Vielen Dank für die tollen Antworten !! Wäre es richtig zu denken, dass der Mikroprozessor mit einer bestimmten Taktrate läuft und in jedem Zyklus einen Befehlssatz (Spannung in Bezug auf Binärwerte?) Über diese Transistoren sendet, die als logische Gatter fungieren. Und die Transistoren erzeugen dann ein relevantes Ausgangssignal basierend auf der kombinierten Logik (und, oder, NAND usw.)?
Matt
1
Vereinfacht gesagt ... ja. Hier gibt es viele Abstraktionsschichten. Es ist schwierig, alles, was hier vor sich geht, in einer einzigen Antwort zu erklären, da viele Abstraktionsebenen erforderlich sind, um alles zu verstehen. Es kann leicht ein paar College-Level-Klassen dauern, um alles zu lehren. Sie können entweder einfach Dinge so nehmen, wie sie an der Oberfläche sind, oder sich auf viel Lernen vorbereiten.
Kellenjb
Danke @kellenjb, du warst wirklich hilfreich. Ich bin ermutigt, mehr zu lernen!
Matt
10

Die kurze Antwort ist es nicht „umwandeln“, die Spannungen sind die Binärwerte (oder eine Darstellung davon). Genau wie wenn Sie eine Zahl auf ein Blatt Papier schreiben, stellen die Markierungen die Zahl dar, oder auf einem Abakus zählen die Steinpositionen die Zahl.

Binär ist ein Zahlensystem, genau wie Dezimalzahl (oder Oktalzahl, Hexadezimalzahl usw.).

Während die Dezimalzahl (Basis 10) 10 Symbole hat (0123456789), hat die Binärzahl (Basis 2) nur zwei (01).

Die Folge 10 in einer beliebigen Basis bedeutet die Basis zur ersten Potenz, also in Dezimal 10 bedeutet 10 ^ 1 = 10, und in Binär bedeutet sie 2 ^ 1 = 2. Im Anschluss bedeutet 100 in Dezimal 10 ^ 2 = 100 und in binär bedeutet es 2 ^ 2 = 4. Und so weiter.

Die Darstellung von Dezimalzahlen unter Verwendung von Elektronik wäre möglich, aber kompliziert. Daher wählten sie Binärzahlen, die durch einfache 0 und 1 (oder Ein / Aus) dargestellt werden können.
Es gab Variationen hiervon, wie ternäre Systeme (mit drei Zuständen) und natürlich analoges Rechnen . Vor den Transistoren gab es mechanische Lochkartenautomaten (Google weiß viel, einige sehr interessante Lektüre, wenn Sie die Zeit haben).
Die frühesten binären Digitalcomputer wurden mit echten Schaltern (elektronischen Relais) hergestellt. Die Zuse Z3 (1941) ist ein Beispiel:

Zuse Z3

Danach wurden anstelle von Relais Vakuumröhren verwendet (konnten ohne bewegliche mechanische Teile schneller schalten), die anstelle von Relais die Umschaltung durchführten. Die ENIAC ist ein Beispiel für einen frühen Computer mit Vakuumröhren.

Dann kamen in den 60er Jahren Transistoren und bald darauf ICs. Die Transistoren erfüllen die gleiche Funktion wie die Relais / Ventile früherer Maschinen, waren jedoch viel kleiner, schneller und verbrauchten weniger Strom.

Die eigentliche Theorie hinter der grundlegenden Funktionsweise von binären Computerschaltungen hat sich nicht geändert, genauso wie wir die Art und Weise, wie wir Zahlen in der Mathematik manipulieren, nicht geändert haben - Algorithmen verbessern sich, aber die grundlegenden Regeln bleiben gleich.

Wenn Sie also wissen, wie binär funktioniert, und Sie über eine einfache Schaltung verfügen, die eine 1 oder 0 als zwei verschiedene Spannungspegel (z. B. 5 V und 0 V) ​​speichern kann, sowie über andere einfache Schaltungen, die einfache logische Funktionen wie UND und ODER ausführen können Sie können sie alle kombinieren, um komplexere Aufgaben zu erledigen.
Da alle diese Binärkreise nur die grundlegendsten Schalter sind, können Sie dasselbe mit allem erreichen, das zwischen zwei Zuständen wechseln kann, wie mechanisch / Relais / Ventil / Transistor /?.

Um ein Beispiel für das Speichern einer Zahl in Binärform zu geben, nehmen wir an, wir haben 8 Schalter (welcher Typ nicht wichtig ist).
Eine 1 wird durch 5 V und eine 0 durch 0 V dargestellt.
Wir wollen die Nummer 123 speichern.

In Dezimalzahl ist es 123 = (1 x 10 ^ 2) + (2 x 10 ^ 1) + (3 x 10 ^ 0).
In Binärzahl ist es 01111011 = (0 x 2 ^ 7) + (1 x 2 ^ 6). + (1 x 2 ^ 5) + (1 x 2 ^ 4) + (1 x 2 ^ 3) + (0 x 2 ^ 2) + (1 x 2 ^ 1) + (1 x 2 ^ 0)
Also alles Wir stellen die Schalter 0,1,3,4,5,6 auf 5V und die Schalter 7 und 2 auf 0V. Dies "speichert" die Nummer 123 in binärer Form. Dieser Aufbau würde als "Register" bezeichnet.

Wenn Sie mehr darüber erfahren möchten, wie die Schalter zu komplexeren Schaltkreisen kombiniert werden, sollten Sie sich ein gutes Buch über digitale Logik zulegen oder Google fragen.

Diese Seite scheint anfangs gar nicht so schlecht zu sein.

Oli Glaser
quelle
0

Das Programm, das Sie ausführen, verwendet Spannungen, die Einsen und Nullen darstellen. Alles an diesem digitalen Teil sind Spannungen, die entweder nahe an Masse oder nahe an der Versorgungsspannung liegen (5 V in Ihrem Beispiel). Wenn Sie ein Prozessorregister mit 0xFF laden, können Sie davon ausgehen, dass Sie 8 separate 5-Volt-Signale irgendwo im Chip erzeugen. Wenn Sie diesen Registerwert dann in einem Steuerregister speichern, das sich auf die Ausgangsanschlüsse bezieht, bewirken die Ausgangsanschlüsse des Geräts, dass die 5-V-Signale im Prozessorregister andere 5-V-Signale erzeugen, die mit den externen Anschlüssen des Geräts verbunden sind .

Oldtimer
quelle
0

Die Spannungen sind nur ein Weg, um die Binärdaten darzustellen. Es ist eine sehr effiziente und praktische Konvertierung, die die Implementierung von Binärlogik unter Verwendung verschiedener Transistorkonfigurationen ermöglicht.

Die Art und Weise, wie binäre Logik normalerweise elektronisch implementiert wird, erfolgt mithilfe der CMOS- Technologie ( http://en.wikipedia.org/wiki/CMOS ), bei der zwei MOS-Transistoren in einem komplementären Paar eingerichtet werden, um ein CMOS-Gate zu bilden. Es gibt jedoch auch andere elektronische Implementierungen der binären Logik, z. B. TTL ( http://en.wikipedia.org/wiki/Transistor –transistor_logic) oder Relais. Aber Sie könnten wirklich alles verwenden, Papier, Papierroboterziegen: http://www.robives.com/category/product_tags/logic_goats . Die elektronische CMOS-Implementierung ist einfach effizient und praktisch.

Aus diesen einfachen CMOS-Gattern können Sie kompliziertere Logikgatter erstellen: NAND und NOR, wobei das Standardgatter NICHT ist, sind die grundlegenden. Daraus können Sie alles aufbauen, was binäre Logik, einen Addierer, eine Registerdatei, einen Speicher ist. Daraus können Sie eine ALU bis hin zum kompletten Mikroprozessor aufbauen.

Wenn Sie weitere Informationen wünschen, können Sie ein Buch über digitale Logik lesen, das mir zufällig gefällt:

http://www.amazon.com/Digital-Systems-Principles-Applications-11th/dp/0135103827/ref=sr_1_1?s=books&ie=UTF8&qid=1326877355&sr=1-1

Ein praktischer Weg, um zu verstehen, wie eine CPU aufgebaut ist, besteht darin, eine eigene CPU mit VHDL und FPGA zu bauen. Sie können günstige FPGA-Entwicklungsboards erwerben und die Software ist normalerweise kostenlos (für eine eingeschränkte Lizenz). Ich habe ein paar von digilent, die ziemlich erschwinglich sind:

http://www.digilentinc.com/

wesen
quelle
-3

Einfach ausgedrückt ist in einem gegebenen Bereich (normalerweise von 5 bis 12 Volt) das höchstwertige Bit 0 in der ersten Hälfte dieses Bereichs und 1 in der anderen. Das nächsthöhere Bit wird berechnet, indem die Hälfte weiter in zwei Teile geteilt wird, bis alle Bits berechnet wurden.

Bei Binär handelt es sich also nur um das Erhöhen und Verringern von Spannungen, die periodisch gemessen werden.

Hier ist ein vereinfachtes Beispiel. Lassen Sie uns im Bereich von 1 V bis 256 V (analog) 137 in binär (numerisch) mit Pseudocode übersetzen:

// used this way: analogToNumeric(137, 256);
function convert(var number, var length) {
    if (number > length) { return(ERROR); }
    function convert(var half, var binary) {
        if (half < 2) { return(binary); }
        elseif (number < half) {
            return(convert((half / 2), append(binary, 0)));
        } else {
            return(convert((half / 2), append(binary, 1)));
        }
    } return(convert((length / 2), list()));
}
Samuel Duclos
quelle