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 1
und 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?
Antworten:
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.
quelle
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.
quelle
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:
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.
quelle
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 .
quelle
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/
quelle
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:
quelle