1.1  Mikrocontroller-Grundlagen

Bevor wir uns detailliert mit dem MSP430 beschäftigen, befassen wir uns kurz mit allgemeinen Mikrocontroller-Grundlagen. Ein Mikrocontroller wie der MSP430 kann als ein vollwertiger Ein-Chip-Computer angesehen werden, der in Bezug auf Größe, Leistungsfähigkeit, Energieverbrauch und implementierte Peripherie für den Einsatz in einfachen Schaltungen optimiert wurde. Allgemeine Grundlagen zur Architektur, Technologie und Aufbau von Mikrocontrollern sind beispielsweise in [Bie04Stu06Wüs06] zu finden. Da wir uns in diesem Buch jedoch auf die anwendungsspezifischen Aspekte des Einsatzes von Mikrocontrollern konzentrieren wollen, fällt die allgemeine Darstellung entsprechend kurz aus.

Zentrale Komponenten des eigentlichen Prozessorkerns sind die CPU mit ihren internen Registern, dem Speicher für Programm (ROM) und Daten (RAM) sowie das Clock-System zur Erzeugung des Arbeitstaktes. Dies wird ergänzt durch optionale interne Komponenten wie einen Watchdog-Timer oder eine Arithmetik-Einheit. Integrierte Peripheriekomponenten stellen den Kontakt zur Außenwelt her. Neben digitalen I/O-Ports können auch komplexere Schnittstellen wie RS232, SPI, USB, Ethernet oder CAN bereits integriert sein.


PIC

Bild 1.1.: Blockschaltbild des MSP430F149 [Tex04]


Der Übergang zur analogen Welt wird z.B. mit integrierten A/D- und D/A-Wandlern sowie Komparatoren unterstützt. Für zeitlich bezogene Aktionen stehen verschiedene Timer zur Verfügung. Bild 1.1 zeigt exemplarisch den funktionellen Aufbau eines Prozessors aus der MSP430-Familie. Die hier aufgelisteten Komponenten sind typisch für so genannte ”General-Purpose-” Mikrocontroller. In Erweiterung dazu gibt es spezialisierte Mikrocontroller, die eine Vielzahl spezifisch auf eine Aufgabe zugeschnittene Zusatzausstattung gleich mitbringen.


PIC

Bild 1.2.: Übergang der Kategorien zwischen Mikroprozessor, Mikrocontroller und ASIC


Beispiele für diese spezialisierten Mikrocontroller sind hochintegrierte Funksysteme, die Sender und Empfänger voll integrieren, Schrittmotorsteuerungen mit integrierter Leistungsendstufe, Kryptografiechips, MP3-Chips, die nur noch einen externen Speicher benötigen und vieles andere mehr. An diesem Ende der Skala erfolgt der gleitende Übergang in die Welt der ASICs (application specific integrated circuit) mit integriertem Prozessorkern, Bild 1.2.

Zentrale Komponente des Mikrochips ist die so genannte Mikroprozessoreinheit (kurz „MPU“). Sie beinhaltet wie bei einem normalen Computer eine Steuer- und Recheneinheit. Der Speicher und auch die übrige Peripherie ist über einen internen Adress- und einen internen Datenbus an diese angeschlossen. Die MSP430-Familie besitzt eine so genannte ”von-Neumann-Architektur”. Das heißt, dass sowohl für den Programmcode als auch für den Datenspeicher der gleiche Daten- und Adressbus verwendet wird. Der Rechenkern selbst ist ein so genannter RISC- (Reduced Instruction Set Computer) Prozessor. Das heißt, dass der gesamte Befehlssatz des Prozessors auf ein Minimum, hier auf nur 27 Befehle mit jeweils sieben Adressierungsarten, reduziert ist [Tex06c]. Jeder dieser 27 Befehle wird optimal durch die Prozessorhardware unterstützt, so dass die Kernfunktion aller Befehle innerhalb eines Prozessortaktes abgearbeitet werden kann. Dazu kommen je nach Adressierungsart noch Taktzyklen zur Bereitstellung der Operanden. So dauert eine einfache Zuweisung mit CPU-Registern (zum Beispiel mov Rn,Rm) insgesamt nur einen Prozessortakt, Befehle mit komplexer relativer Adressierung (beispielsweise add X(Rn),X(Rm)) benötigen 6 Prozessorzyklen. Da der Prozessor zudem eine 16-Bit-Architektur besitzt, ist die resultierende Verarbeitungsgeschwindigkeit durchaus beachtlich.

Der MSP430 verfügt je nach Typ über eine Vielzahl von integrierten intern und extern orientierten Peripheriekomponenten. Den meisten dieser Komponenten ist in den folgenden Kapiteln des Buches ein ganzer Abschnitt gewidmet, der die entsprechende Funktion ausführlich erklärt und die Anwendung mit Codebeispielen erläutert.


Tabelle 1.1.: intern orientierte Peripheriemodule

Peripheriemodul

Erklärung

Basic-Clock-Modul

Taktsystem, das die verschiedenen Taktquellen im Prozessor zur Verfügung stellt

Flash-Memory-Controller

Zugriff auf den internen Flash-Programmspeicher

Supply-Voltage-Supervisor

Überwachung der Versorgungsspannung

Hardware-Multiplier

CPU-Modul, mit dem Multiplikationen sehr schnell berechnet werden können

DMA-Controller

Modul für den direkten Speicherzugriff von Peripheriekomponenten, damit der Prozessorkern dadurch nicht belastet wird

Watchdog-Timer

Interner Timer, der als ”Totmannschalter” den Prozessor neu startet, wenn er nicht bedient wird

JTAG-Interface

Schnittstelle, die für das In-Circuit-Debugging während der Entwicklung verwendet wird

Bootstrap-Loader

Mit diesem kann mittels eines einfachen seriellen Protokolls neue Software in den Prozessor geladen werden

  


Die in Tabelle 1.1 und Tabelle 1.2 zusammengefasste Aufzählung gibt eine einleitende Übersicht und eine kurze Erklärung der verschiedenen in der gesamten MSP430-Familie vorkommenden Peripheriemodule. Die Bezeichnung der Module ist den entsprechenden MSP430-User-Manuals [Tex06cTex07e] entnommen und absichtlich nicht eingedeutscht, damit die zugehörige Referenz einfach wiedergefunden werden kann.

Die in Tabelle 1.1 beschriebenen ”intern” orientierten Module nehmen im Wesentlichen prozessorinterne Funktionen war und unterstützen das Rechenwerk bei der Abarbeitung des Programms. Ein weiterer Aspekt sind Taktgenerierung und Überwachungsfunktionen sowie Funktionen zur Unterstützung des Entwicklungsprozesses. Demgegenüber stehen die ”extern” orientierten Module, (Tabelle 1.2), die der Verbindung des Mikrocontrollers mit der Außenwelt dienen (analoge oder digitale Schnittstellen) oder andere spezialisierte Funktionen wahrnehmen. Dadurch reduziert sich die benötigte Anzahl an externen Komponenten im Vergleich zu Mikroprozessoren drastisch und ein hochintegrierter Schaltungsentwurf wird erst möglich.


Tabelle 1.2.: extern orientierte Peripheriemodule

Peripheriemodul

Erklärung

Digital I/O

allgemeine digitale Ports, die einzeln entweder als Eingang oder als Ausgang konfiguriert werden können

Timer

Zähler, die abgeleitet vom Prozessortakt oder externen Quellen zählen

USART

Kommunikationsschnittstelle, die je nach Ausführung mehrere Protokolle (RS232, SPI, I2C) beherrscht

Comparator

Analoger Komparatorbaustein

ADC10, ADC12, SD16

Analog-Digital-Wandler mit 10 bzw. 12 Bit, oder Sigma-Delta-Wandler mit 16 Bit Auflösung

DAC12

12 Bit Digital-Analog-Wandler

OA

Analoger Operationsverstärker (operational amplifier)

LCD Controller

Interface zum direkten Betrieb eines LCD-Panels

ScanIF

Sensor-Interface für resistive, induktive und kapazitive Sensoren, die periodische Signale abgeben (z.B. Tachogeber)