14.01.2009 VL Microcontroller - Dipl.-Inf. Swen Habenberger 1 Microcontroller Teil 2 Wiederholung...

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