Einchipmikrorechner und Signalprozessoren

Aus II-Wiki
Zur Navigation springen Zur Suche springen
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Einleitung

Einordnung

  • Einchipmikrorechner (EMR, µC)
  • Digitaler Signalprozessor (DSP)

Gemeinsamkeiten

  • Einchip-Konzept: wesentliche Bauteile alle auf einem Chip (CPU, Speicher, IO, Taktgeber)
  • minimierte (minimale) Außenbeschaltung: Abblockkondensator, Quarz
  • autonomer Betrieb: Unbeaufsichtigter Betrieb, ohne (nur mit applikationsspezifischem) Bedienereingriff
  • aufgabenspezifisch angepasst: "Nur soviel (Hardware) wie nötig"
  • große Typenfamilien: viele Typen mit jeweils mehreren Ausführungen, Unterschiede in Speicher/Pins
  • Crosswerkzeuge: Entwicklung auf PC, aber Code für Chips
  • Software: muss sich nicht mehr verändern (ist in sich geschlossen)

Unterschiede

EMP DSP
Leistung niedrig bis mittel mittel bis hoch
Datenbreite 4, 8, 16, 32 16, 32, 64
Speichergröße
* intern sehr wenig bis mittel meist nur mittel
* extern wenig bis mittel groß bis sehr groß
Besondere Befehle Bit-Befehle,
Bit-Adressierung
MAC (Multiplikation und Addition in einem Befehl),
zirkuläre Adressierung,
Saturation (Festkomma-Arithmetik)
Typische Anwendungen Steuergeräte in Industrie und Kraftfahrzeugtechnik,
Haushaltselektronik,
tragbare Geräte (MP3, Handy)
digitale Filter/Regler,
Bildverarbeitung und Mustererkennung,
Messgeräte, Messtechnik,
Audioeffektgeräte, Modems

Bauteile

Rechnerkern

  • RISC oder CISC
  • Harvard oder von-Neumann (Princeton)
  • viele Spezialregister (SFR)
  • allg. Register häufig verbunden mit internem RAM

Speicher

<graphviz> digraph G { "Speicher" -> "intern"; "Speicher" -> "Speicherinterface";

"intern" -> "ROM"; "intern" -> "RAM";

"Speicherinterface" -> "Seriell"; "Speicherinterface" -> "Businterface"; "Speicherinterface" -> "\"glueless\"\n(Treiberlos)"; } </graphviz>

ROM

  • Masken-ROM
  • PROM/OTR
  • EPROM
  • EEPROM
  • FLASH-EEPROM
  • FRAM
  • "Bontout"
  • "ROM-less"

Ein- und Ausgabe

<graphviz> digraph G { "Ein- und Ausgabe" -> "digital, Standard"; "Ein- und Ausgabe" -> "analog"; "Ein- und Ausgabe" -> "speziell";

"digitale, Standart" -> "parallel"; "digitale, Standart" -> "seriell";

"seriell" -> "synchron"; "seriell" -> "asynchron";

node [shape=box]; "Kommunikation"; "Zähler/Zeitgeber"; "Geräte";

"speziell" -> "Kommunikation"; "speziell" -> "Zähler/Zeitgeber"; "speziell" -> "Geräte";

} </graphviz>

Sonstiges ("Hilfs"-baugruppen)

  • Reset
  • Takt
  • Power-Management
  • Interruptsystem
  • DMA
  • Watchdog

Typenbeispiele

(nicht prüfungsrelevant)

Mikrocontroller am Beispiel der C166 Familie

  • 16bit Datenbreite
  • CISC-Kern
  • Intelähnlicher Befehlssatz
  • von-Neumann-Architektur
  • bis 30 Mhz Taktfrequenz
  • Addresbreite 16bit/24/bit
  • Mehrfachnutzung von Pins

Befehlssatz - Architektur

Allgemeiner Registersatz

  • 16x16bit Register R0-R15
  • Register R0-R7 lassen sich auch über H und L ansprechen

Spezialfunktionsregister (SFR)

  • es existieren sehr viele Register

u.a. in:

  • Prozessorkern
  • Peripherieeinheiten
  • Interruptsystem
  • Chipsteuerung
  • Adresseinheit
  • ...

SFR im Prozessorkern

  • PSW (Prozessor Status Word, "Flag-Register"); 16bit breit
Beispiele für Flags:
Statusflags:
  • C: Carry (Übertrag)
  • V: Overflow (Überlauf)
  • Z: Zero
  • N: Negativ
  • ...
Steuerflags:
  • IEN: Interrupt Enable
  • USRO: frei verfügbar
  • SP (Stackpointer)
  • STKUV (Stackunderflow)
  • STKOV (Stackoverflow)
  • SYSCON: Systemkonfiguration
  • ...

Speichermodell

  • von-Neumann: ein Adressraum
  • interner ROM
  • interne RAMs
  • SFRs (reservierte Speicheradressen)
  • allgemeine Register
  • reservierte Bereiche
  • Rest: externer Speicher

kleines Speichermodell

  • nicht segmentiert
  • logische 16 Bit-Adresse wird umgesetzt auf physikalische 16 Bit-Adresse
  • Speicherraum: Byte = 64 KiByte

großes Speichermodell

  • segmentiert
  • logische 16 Bit-Adresse erhält zusätzliche Segmentbeschreibung (Länge variiert)
  • wird ungeformt auf physikalische 24 Bit-Adresse
  • Speicherraum: Byte = 16 MiByte

Vorteil:

  • mehr Speicherplatz
  • Segment = Grobpositionierung
  • Änderung davon seltener (wird nicht bei jedem Zugriff geändert)
Segmentierter Datenzugriff

Segemntierter Datenzugriff.jpg

Segmentierter Programmzugriff
Adressraumstruktur
Allgemeine Register: Mapping in den Speicherraum

Befelssatz

Transportbefehle

Stackbefehle

Arithmetik/Logik

Multiplikation/Division

Schieben/Rotieren

Steuerfluss-Befehle

Sprungbefehle

Intrasegment
Intersegment

Unterprogrammbefehle

Bit-Befehle

Sonstige Befehle

SW-Entwicklung

Details zur internen Peripherie

Interrupt-System

Arten von Interrupts

Interrupttabelle

SFR für HW-Interrupts

DSP am Beispiel der Familie C6000 (Ti)

Beispiele zum Befehlssatz

weitere Arithmetik/Logik

Konvertierung

Vergleiche und Bedingungen

Transportbefehle

Adressierung

Stack

Warteplätze

Sprungbefehle

Beispiele

SW-Entwicklung

Hilfsmittel auf höherer Ebene

DMA-Einheit

Datensatz eines DMA-Auftrages

DMA-Beispiel 1: Ausgabe eines Blocks

DMA-Beispiel 2: Block-Kopieren mit Spiegelung der Byte-Reihenfolge

Typische Systeme mit C6000