View
104
Download
0
Category
Preview:
Citation preview
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 1
Microcontroller Teil 2
Wiederholung
Duales Zahlensystem
Schaltungslogik
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 2
Wiederholung Geschichte des Microcontrollers
Zuse Z3 Von-Neumann Architektur Intel 4004 Transistortechnik
2 Mrd Transistoren auf einem Chip
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 3
Duales Zahlensystem Dezimalsystem: Zahlensystem zur Basis 10
Ziffern 0 - 9 Binärsystem: Zahlensystem zur Basis 2
Ziffern 0 und 1 Oktalsystem: Zahlensystem zur Basis 2^3 = 8
Ziffern 0 - 7 Hexadezimalsystem: Zahlensystem zur Basis 2^4 = 16
Ziffern 0-9 und A-F
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 4
Umrechnung Dezimalzahl in Binärzahl
243= 243 % 2 = 1
= 243 / 2 = 121
= 121 % 2 = 1
= 121 / 2 = 60
= 60 / 2 = 30 Rest 0
= 30 / 2 = 15 Rest 0
= 15 / 2 = 7 Rest 1
= 7 / 2 = 3 Rest 1
= 3 / 2 = 1 Rest 1
= 1 / 2 = 0 Rest 1 => 11110011
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 5
Umrechnung Binärzahl in Dezimalzahl
11110011= 1*2^0 + 1* 2^1 + 0* 2^2 + 0* 2^3 + 1* 2^4
+ 1* 2 ^5 + 1* 2^6 + 1* 2^7
= 1*1 + 1*2 + 0*4 + 0*8 + 1*16
+ 1*32 + 1*64+1*128
= 1+2+16+32+64+128
= 243
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 6
Umrechung Dezimalzahl in Hexadezimalzahl
243 = 243 % 16 = 3 => 3
= 243 / 16 = 15
= 15 % 16 = 15 => F
= 15 / 16 = 0
=> 243 = F3
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 7
Umrechnung Hexadezimalzahl in Dezimalzahl
F3 = 3*16^0 + F * 16^1
= 3*1 + 15 * 16
= 3 + 240
= 243
TIPP zum Üben: Der Windowstaschenrechner kann diese 3 Zahlenformate darstellen und in einander überführen
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 8
Umwandlung Binärzahl in Hexadezimalzahl und umgekehrt
11110011 = 1111 0011 = F 3 F 3 = 1111 0011 = 11110011
Hexadezimalzahlen werden oft mit 0x als Prefix geschrieben: 0xF3
Umwandlungen in jedes beliebige Zahlensystem, z.B. Oktalsystem funktionieren analog.
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 9
2er Komplement Bildung einer Negativen Zahl
Positive Darstellung der Zahl Invertierung aller Bits Addieren von 1
Beispiel: -13 für eine 8 Bit Zahl Berechne 13: 00001101 Invertiere Bits: 11110010 Addiere 1: 11110011
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 10
Zahlenkreis der 2erKomplementzahlen
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 11
Signed vs unsigned Man unterscheidet zwischen signed und unsigned
Zahlen Signed: Mit Vorzeichen (Negative und Positive Zahlen)
Egal ob 8-, 16- oder 32-Bit Zahlen, das höchstwertige Bit gibt das Vorzeichen an.
Unsigned: Ohne Vorzeichen (Nur positive Zahlen) Alle Bits tragen zum Ergebnis bei
Achtung: 11110011 = 243 (unsigned) 11110011 = - 13 (signed)
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 12
Zahlenbereiche Ganze Zahlen (Integer)
Signed: bei 8 Bit: −128 bis +127 bei 16 Bit: −32.768 bis +32.767 bei 32 Bit: −2.147.483.648 bis
+2.147.483.647 bei 64 Bit: −9.223.372.036.854.775.808 bis
+9.223.372.036.854.775.807 (9 Trillionen) Unsigned:
bei 8 Bit: 0 bis 255 bei 16 Bit: 0 bis + 65.535 bei 32 Bit: 0 bis +4.294.967.295 bei 64 Bit: 0 bis + 18.446.744.073.709.551.615
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 13
Fragen?
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 14
Rechnen mit Binärzahlen (Ganzzahlig)
Addition Subtraktion Multiplikation Division
Mögliche Probleme Overflow (Addition) Underflow (Subtraktion) Multiplikation erfodert doppelte Byte Anzahl Division geht nicht auf
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 15
Addition von 2 8-Bitzahlen 9 + 5 = 14 00001001 (9)
+ 00000101 (5)
= 00001110 (14)
120 + 65 = 185 0111 1000 + 0100 0001 = 1011 1001 Signed oder unsigned?
Unsigned:Korrektes Ergebnis (185) Signed: Overflow (-71)
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 16
Subtraktion Subtraktion ist die Addition des negativen Zweier
Komplements 9-5 = 4 <=> 9 + (-5) = 4 0000 1001 (9)
+ 1111 1011 (-5)
= 0000 0100 (4)
-120 – 65 = -185?
1000 1000 + 1011 1111 = 0100 0111 (71)
UNDERFLOW!!!
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 17
Multiplikation / Division 2^8*2^8=2^16 Es werden immer doppelt soviele Bytes gebraucht,
wie die Ursprungszahlen hatten. Muliplikation und Division bedeutet eine Verschiebung
der Bits nach links (Multiplikation) und nach rechts (Division)
<< 4 bedeutet eine Multiplikation mit 2^4 (LeftShift) Auffüllen mit 0 von hinten
>> 4 bedeutet Division durch 2^4 (RightShift) Auffüllen von vorne mit Vorzeichenbit
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 18
Multiplikation 12 * 13 = 156 0000 1100 * 0000 1101 = 0000 0000 1001 1100
1100 · 1101
-----------
1100
+ 1100
+ 0000
+ 1100
-----------
10011100 (156)
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 19
Multiplikation Verbesserungen der Multiplikation:
Booth-Algorithmus Bit-Pair-Verfahren weitere Verbesserungen des
Booth-Algorithmuses Verbesserungen beruhen darauf das viele 0 in den
positiven Zahlen und viele 1 am Anfang von negativen Zahlen stehen
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 20
Division 168 / 6 = 28 Rest 0
172 / 6 = 28 Rest 4
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 21
Fragen?
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 22
Fliesskomma/Gleitkommazahlen f = s · m · 2^e
F = Fliesskommazahl, z.B. 0,345 S = Vorzeichenbit (1 Bit) M = Mantisse (23 bzw. 52 Bit) E = Exponent ( 8 bzw. 11 Bit)
Normalisierung notwendig 2,0 * 10^1 = 0,2* 10^2 = 20* 10^0
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 23
Dezimalzahl nach Binärzahl 11,25 = 0 1000 0010 01101000000000000000000 Exponent muss so gewählt werden, dass die Mantisse
eine Zahl zwischen 1 und 2 erhält Bildung des 2er Logarithmus Log(11,25) = 3,.....
Damit dieser Exponent nicht negativ wird wird 2^Bitanzahl Exponent-1 hinzuaddiert
(hier also 128-1=127) Mantisse = (11,25/2^3 - 1) *2^{23} = (1,40625 - 1) * 2^23 = 3407872 ->
01101000000000000000000
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 24
IEEE754 Einfache Genauigkeit 0 < e < 255 = x = (−1)⇒ v · 1.m · 2e−127 Normale reelle Zahl
e = 0, m = 0 = x=0 ⇒ Null
e = 0, m = 0 = x = (−1)⇒ v · 0.m · 21−127 Nichtnormalisierte Zahl
e = 255, m = 0 = x = (−1)⇒ v · ∞ Unendlich
e = 255, m = 0 = x = NAN Not a Number, keine Zahl⇒
Genauigkeit 15 Stellen Dies bedeutet nicht 15 Nachkommastellen,
sondern z.B.: 1234567890,12345 das alle weiteren
Nachkommastellen „ungenau“ sind
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 25
Fragen
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 26
Digitale Schaltungstechnik NOT (Invertierer) AND (*) Konjunktion OR (+) Disjunktion XOR NAND NOR
Konjungierte Normalform Disjunktierte Normalform
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 27
Standardisierung von Schaltungen• Gängige Normen:
• International Electrotechnical Commission (IEC)
– Norm 60617-12 ist Standard
• US ANSI IEEE 91-1984
– Alternativer Standard
• DIN 40700 (Deutsche Industrie Norm)
– Wurde 1996-1998 durch die DIN-Norm 60617 ersetzt
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 28
AND• Schaltsymbole:
– IEC
– ANSI
– DIN
• Stellt eine Multiplikation dar
• Schreibweise AB bzw
• Logisch: A ^ B
• Fachbegriff: Konjunktion
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 29
OR• Schaltsymbole:
– IEC
– ANSI
– DIN
• Stellt eine Addition dar
• Schreibweise A+B bzw
• Logisch: A V B
• Fachbegriff: Disjunktion
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 30
XOR• Schaltsymbole:
– IEC
– ANSI
– DIN
• Es darf nur genau ein Eingang wahr sein
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 31
NAND• Schaltsymbole:
– IEC
– ANSI
– DIN
• Häufiger Baustein in der Halbleitertechnik
• Sheffer-Operation
– Sheffer hat nachgewiesen, dass man alle logischen Operatoren mit NANDs realisieren kann
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 32
NOR• Schaltsymbole:
– IEC
– ANSI
– DIN
• Häufiger Baustein in der Halbleitertechnik
• Peirce-Operation
– Peirce hat die Grundlagen für Sheffer gelegt
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 33
Überblick
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 34
Wahrheitstafeln• Wahrheitstabellen werden verwendet um Boole'sche
Funktionen zu definieren, und / oder sie darzustellen.
• Die Anzahl der möglichen Kombinationen steigt exponentiell mit der Anzahl der Eingangsvariablen an => 2 ^Anzahl der Eingangsvariablen
– Anwendung auf Funktionen mit nur wenigen (4) Eingangsvariablen beschränkt.
• Zur Vereinheitlichung von Wahrheitstabellen stehen auf der linken Seite die Zahlen als Binärcode da
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 35
Wahrheitstabellebeispiel
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 36
Konjugierte Normalform• Eine Formel der Aussagenlogik ist in konjunktiver
Normalform, wenn sie eine Konjunktion von Disjunktionstermen ist. Disjunktionsterme sind dabei Disjunktionen von Literalen. Literale sind nichtnegierte oder negierte Variablen. Eine Formel in KNF hat also die Form
• Beispiel:
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 37
Disjunktive Normalform• Eine Formel der Aussagenlogik ist in disjunktiver
Normalform, wenn sie eine Disjunktion von Konjunktionstermen ist. Ein Konjunktionsterm wird ausschließlich durch die konjunktive Verknüpfung von Literalen gebildet. Literale sind dabei nichtnegierte oder negierte Variablen. Eine Formel in DNF hat also die Form
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 38
Beispiel
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 39
De Morgansche Regeln• DeMorgan hat die Gesetze für die Umformung von
logischen Aussagen formuliert
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 40
Fragen
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 41
Halbaddierer
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 42
Schaltbild Halbaddierer
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 43
Volladdierer
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 44
Schaltbild Volladdierer
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 45
4-Bit-Addierer
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 46
Probleme: Hazards• Übergang 111 zu 110
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 47
Lösung zusätzliche Gatter
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 48
FPGA
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 49
Flip-Flops• Flip-flops dienen als Speicher eines Bits
• Werden häufig als Registerbausteine eingesetzt
– Genauer Aufbau wird bei der Architektur des Prozessors besprochen werden
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 50
Frage
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 51
KV-Diagramme
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 52
Beispiele für Karnaugh-Diagramme
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 53
Beispiel einer Schaltung
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 54
Optimierte Schaltung durch Bildung von Blöcken
14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 55
7-Segment-Anzeige• 7-Segmentanzeigen
– Häufiger Einsatz in Digitaluhren und
– Taschenrechnern
• Zur Darstellung der Zahlen von 0-9
• Werden wieviele Bits als Eingänge benötigt?
• Werden wieviele Bits zur Ansteuerung der Anzeige benötigt?
• Übung: Wahrheitstabelle
• Übung: Minimale Schaltung durch Anwendung von KV-Diagrammen und KNF bzw DNF
Recommended