MezData-Logo Creative Commons License 820 :TI-TECHNOLOGIE: Aufgaben zur Adressierung

Schlüsselwörter: Mikrokontroller, Adressraum

Busse und Treiber

  1. Warum werden Busse verwendet? Um bei vielen zu verbindenden Komponenten Leitungen zu sparen
  2. Nennen Sie drei Beispiele für Busse! Datenbus, Adressbus, Steuerbus
  3. Zeichen Sie das Schaltsymbol eines Tri-State-Bus-Treibers. siehe Hier...
  4. Erklären Sie die Funktion eines Tri-State-Bus-Treibers anhand einer Funktionstabelle. siehe Hier...

Adressarithmetik

Nehmt den Taschenrechner, mit der Mode-Funktion kann man einfach umrechnen!

  1. Welchen Adressbereich in Hex-Darstellung hat ein Baustein mit 32 Adressen? Dezimal 0..31; Hexadezimal 0..1F
  2. Wie viele Adressen hat ein 64 MByte-Flash-Speicher, wie lautet die höchste Adresse in Hex-Darstellung? 26 Adressleitungen; 64 * 1024*1024 = 67108864 Adressen, höchste Adresse Dezimal: 67108863; Hexadezimal: 64 M = 40 0 00 0016 - 1 = 3 FF FF FF16
  3. Eine 80 GB-SCSI-Festplatte ist in 1kByte Blöcke aufgeteilt.
    1. Wie viele Bytes kann die Platte speichern? 80 * 1024*1024*1024 = 85899345920 Byte
    2. Welcher Adressbereich in Hex-Darstellung ergibt sich für die Blockadressen? 80 GB / 1KB = 80 M Blöcke: 0..4 FF FF FF16
    3. Welcher Adressbereich in Hex-Darstellung ergibt sich für die Daten-Adressen innerhalb der Blöcke? 1K Adressen: 0..3 FF16
    4. Ermitteln Sie die Block- und Daten-Adresse in Hex-Darstellung für das 100.000ste Byte (Zählweise ab 1) der Platte. 100.000 / 1024 = 97,65.. somit liegt das Byte auf dem Block mit der Adresse 97 = 6116, nun noch 100.000-(97*1024)-1 für die Adresse im Block: 671 = 29F16
    5. Suchen Sie im Internet nach den Daten einer 80 GB-Festplatte und vergleichen Sie die Anzahl der Bytes mit Ihrem Ergebnis, Erkenntnisse?? Die Hersteller schummeln! Rechnen mit 1000*1000*1000 statt mit 1024*1024*1024.

Antworten gugst du auch hier...

Bausteine mit CPU verbinden

Baustein Grösse
in Byte
Anzahl
Adress-
Leitungen
Adressraum CPU-Adresse
Dezimal Hex Dezimal Hex
ROM 128 7 0..127 0..7F 0..127 0..7F
I/O 64 6 0..63 0..3F 128..191 80..BF
EEPROM 64 6 0..63 0..3F 192..255 C0..FF
RAM 256 8 0..255 0..FF 256..511 100..1FF

Mit einer CPU sollen Rom (128 Byte), Peripherie (64Byte), EERom (64Byte) und Ram (256Byte) verbunden werden.
Die Bausteine sollen in obiger Reihenfolge von der CPU angesprochen werden können.

Wie gross muss der Adressraum der CPU sein, wie viele Adressleitungen werden benötigt? 128+64+64+256 = 512 Adressen, Adressraum: 0..511 = 0..1FF16. Somit braucht man log2 512 = 9 Adressleitungen

Erstellen Sie eine Tabelle mit den Adressbereichen in Hex- und Dezimaldarstellung der Bausteine aus Sicht der CPU.

Erstellen Sie eine Werte-Tabelle für die CS Leitungen der Bausteine

Zn A8 A7 A6 CPU-
Adressraum
Chip-Select (CS)
ROM I/O EEPROM RAM
0 0 0 0 00..3F 1 0 0 0
1 0 0 1 40..7F 1 0 0 0
2 0 1 0 80..BF 0 1 0 0
3 0 1 1 C0..FF 0 0 1 0
4 1 0 0 100..13F 0 0 0 1
5 1 0 1 140..17F 0 0 0 1
6 1 1 0 180..1BF 0 0 0 1
7 1 1 1 1C0..1FF 0 0 0 1

Ermitteln Sie die log. Gleichungen für die CS Leitungen

Vervollständigen Sie den Schaltplan.

Antworten gugst du auch hier...

Bus-Timing

  1. Zeichnen Sie ein Timing-Diagramm für einen Lese-Zugriff
  2. Zeichnen Sie ein Timing-Diagramm für einen Schreib-Zugriff