SEMINAR Aktueller Stand in der Mikrocontrollertechnik

Größe: px
Ab Seite anzeigen:

Download "SEMINAR Aktueller Stand in der Mikrocontrollertechnik"

Transkript

1 SEMINAR Aktueller Stand in der Mikrocontrollertechnik Alper Ceylan Matrikel Nr.: Seminar am Betreuer: Dr.-Ing. Helmut Jacob

2 Inhaltsverzeichnis Inhalt Seiten 1. Allgemeines 3 2. Aufbau und Arbeitsweise Aufbau des Mikrocontrollers Struktur und Komponenten Der Controllerbaustein 80(C)515/ Interne Funktionseinheiten des Controllers 8 3. Speicherorganisation und Programmierung Speicherorganisation Programmspeicher Datenspeicher Die Special Function Register SFR Adressierungsarten Programmierung Auswahl des richtigen Mikrocontrollers Einsatzgebiete des Mikrocontrollers Quellen

3 1. Allgemeines Der Mikrocontroller ist ein programmierbarer elektronischer Baustein, der alle notwendigen Komponenten für ein Mikrocomputersystem enthält wie z.b. CPU, Speicher, Peripheriekomponenten und Interruptsystem. Ein Mikrocontroller kann also mit sehr wenigen externen Bausteinen betrieben werden, man nennt sie daher auch Single-Chip-Computer oder Einchip-Computer. Im Gegensatz zum Mikroprozessor steht beim Mikrocontroller nicht die hohe Verarbeitungsleistung im Vordergrund, sondern eine hohe funktionelle Integration: Je mehr Funktionen auf dem Mikrocontroller-Chip sind, umso weniger Zusatzbausteine braucht man. Dies hat Vorteile für die Herstellung vollständiger Systeme: Der Schaltungsentwurf wird einfacher, das vollständige System wird kompakter, die Verlustleistung ist geringer, durch die geringere Anzahl von Leitungen, Sockeln und Steckern verringert sich auch das Risiko von mechanischen Verbindungsstörungen, die Fertigung und das Testen der Schaltungen kostet weniger. Das Haupteinsatzgebiet der Mikrocontroller ist die Steuerung in eingebetteten Systemen (Embedded Systems). Darunter versteht man Systeme, die von einem Controller gesteuert werden, ohne dass dieser nach außen in Erscheinung tritt. Durch die Fortschritte in der Integration und die sinkenden Preise konnten Mikrocontroller in immer mehr Applikationen als Steuerungszentrale eingesetzt werden. In vielen Fällen haben sie Steuerungen aus digitalen Bausteinen oder speicherprogrammierbare Steuerungen abgelöst. Mikrocontroller bieten hier den Vorteil größerer Flexibilität, denn die Funktion kann auf der Softwareebene geändert oder erweitert werden. Besonders deutlich wird dieser Vorteil bei feldprogrammierbaren Mikrocontrollern; das sind Controller die neu programmiert werden können, ohne dass man sie aus ihrer Schaltung entnehmen muss. Standardmikrocontroller sind universell gehalten und kommen in unterschiedlichen Applikationen zum Einsatz, sie werden frei verkauft. Kundenspezifische Mikrocontroller dagegen sind im Kundenauftrag für einen ganz speziellen Einsatz entworfen. Sie werden in hohen Stückzahlen gefertigt und als Teil eines fertigen Produktes an den Endkunden verkauft

4 Mikrocontroller werden heute in großer Vielfalt und Stückzahl gefertigt, und zwar mit Wortbreiten von 8 und 16 Bit. Für Aufgaben der Steuerung in Geräten und Anlagen ist das oft völlig ausreichend. An der Stückzahl der insgesamt gefertigten Prozessoren haben nicht die Pentiums, sondern Mikrocontroller und Signalprozessoren die Mehrheit von schätzungsweise mehr als 80%. Im Gegensatz zu den wenigen Typen von High-End- Prozessoren werden sie in "Familien" mit kompatiblen Befehlssätzen, aber unterschiedlichem Aufbau gefertigt. Die Mitglieder dieser Familien unterscheiden sich dann in Eigenschaften wie: Speicherart (ROM, RAM, PROM, EPROM) und Speichergröße auf dem Chip zusätzliche digital-analoge Wandlerbausteine (D/A und A/D) zusätzliche analoge Komponenten (z. B. Verstärker) zusätzliche Timerbausteine (also teilweise mehrere voneinander unabhängige Zeitgeber). Eine bekannte Controllerfamilie ist die 8051-Familie von Intel, zu der aber auch viele andere Firmen (z.b. Infineon) Familienmitglieder produzieren. 2. Aufbau und Arbeitsweise 2.1 Aufbau des Mikrocontrollers Der Mikrocontroller besteht hauptsächlich aus der: CPU, den Speichern für Instruktionen (Programmspeicher) und für Daten (Datenspeicher) sowie den Peripheriemodulen. Diese Komponenten tauschen Daten und Kontrollinformationen über Busse aus (Abbildung 1)

5 Abbildung 1 Struktur eines Mikrocontrollers CPU Die CPU (Central Processing Unit; auch als Core oder Mikrocontrollerkern bezeichnet) ist die programmierbare Einheit zur Adressierung und Manipulation von Daten sowie zur Steuerung des zeitlichen und logischen Ablaufs eines Programms Speicher Der Speicher dient zur Ablage von Daten und Programminstruktionen. Der Speicher für variable Daten ist ein Schreib-Lese-Speicher (z.b. RAM). Als Speicher für Programminstruktionen und feste Daten wird ein Festwertspeicher eingesetzt (z.b. ROM, PROM). Zusätzlich besitzen Mikrocontroller einen kleinen, in der CPU integrierten Registerspeicher für einen schnellen Schreib-Lesezugriff (Cache Speicher) Peripherie Über die Peripherie können von außen stammende Informationen eingelesen und wieder ausgegeben werden. Die Peripherie ist in einem begrenzten Umfang programmierbar, um ihre Funktionalität dem Bedarf der Anwendung anzupassen. Typische Peripheriemodule digitalisieren analoge externe Signale bzw. setzen interne digitale Signale wieder in analoge - 5 -

6 um (Analog-digital- bzw. Digital-analog-Wandler). Timer ermöglichen das Zählen externer Impulse oder messen Zeiten zwischen Ereignissen. Über Kommunikationsschnittstellen wird der Datenaustausch zu anderen Bausteinen über standardisierte Busse (z.b. CAN) aufrechterhalten. Natürlich lassen sich auch noch viele andere Funktionen je nach Wunsch des jeweiligen Anwenders in den Mikrocontroller integrieren. Die in der Abbildung 1 dargestellten drei Blöcke ermöglichen die vier Hauptoperationen des Mikrocontrollers: Datenmanipulation (Data-Processing), Datenspeicherung (Data-Storage), Datenaustausch zur Umwelt (Data-Movement) und Daten-Ereigniskontrolle (Control-Mechanism). Mit diesen Funktionen kann der Mikrocontroller zum Übertragen von Daten, zu deren Speicherung bzw. Manipulation (sowohl im Speicher als auch extern) eingesetzt werden. In den folgenden Abschnitten werde ich die verschiedenen Bausteine des Mikrocontrollers beschreiben, die diese Operationen ermöglichen. 2.2 Struktur und Komponenten Der Controllerbaustein 80(C)515/-535 Die Controllerbausteine 80(C)515 und 80(C)535 sind Mitglieder der 8051-Familie der 8-Bit Mikrocontroller. Die 8051-Controller-Familie hat sich weltweit als Marktführer durchgesetzt. Die Aufwärtskompatibilität der später entwickelten Typen zum Grundbaustein 8051 gibt dem Anwender die Möglichkeit, auf vorhandene Entwicklungs-Hilfsmittel zurückgreifen zu können. Die Controller bzw sind in NMOS-Technologie hergestellt. Diese Technologie ist kostengünstig. Von Nachteil ist, dass Stromverbrauch und Verlustleistung wesentlich höher sind als bei der neueren CMOS-Technik, die allerdings etwas mehr kostet. Die CMOS- Technologie wird durch ein eingeschobenes C in der Typenbezeichnung gekennzeichnet (80C515 bzw. 80C535). Der 80C515/80C535 ist aber voll funktionskompatibel mit dem 80515/ Der einzige Unterschied zwischen den sonst identischen Controllern 80(C)535 und 80(C)515 ist, dass der 80(C)515 ein 8Kx8-ROM enthält

7 Leistungsmerkmale: 8-Kbyte ROM eingebaut (nur -515) 256 Byte eingebauter RAM-Speicher sechs 8-Bit Input-/Output Ports Serieller Port, Vollduplex mit vier Betriebsarten, mit festen oder variablen Baudraten drei 16-Bit Zähler/Timer Capture and Compare-Einheit mit 16-Bit Registern A/D-Wandler mit programmierbaren Referenzspannungen acht gemultiplexte Analogeingänge 16-Bit Watchdog-Timer Power-down-Versorgung für 40 Bytes im RAM Bool sches Rechenwerk 256 direkt adressierbare Bits 12 getrennte Interruptquellen (7 externe, 5 interne), 4 Prioritätsebenen 1 µs Befehlszykluszeit bei 12 MHz Taktversorgung Abbildung 2 Blockschaltbild des Controllers 80(C)515/

8 2.2.2 Interne Funktionseinheiten des Controllers Mikrocontrollerkern (CPU) Die Kerne der Mikrocontroller entsprechen dem Mikroprozessor eines Rechners. Sie bestimmen die Datenverarbeitungsbreite, den Befehlssatz, den Registersatz, die Adressierungsarten, die Größe des adressierbaren Speichers usw.. Da in vielen Anwendungen keine hohe Rechenleistung gebraucht wird, haben die meisten Mikrocontroller noch einen 8-Bit-Kern, sogar 4-Bit-Kerne werden noch häufig eingesetzt. Bei der Arbeitsfrequenz gibt man sich häufig mit bescheidenen Taktfrequenzen zufrieden, z.b. 12 MHz oder weniger. Die Anzahl der rechenintensiven Controlleranwendungen wächst aber ein Beispiel ist die Steuerung von Kfz-Motoren und der Trend geht daher zu schnelleren 16- und 32-Bit-Kernen. Die Kerne der Mikrocontroller werden auf ihre spezielle Aufgabe angepasst. So werden z.b. Befehle oder Register ergänzt, um die spezielle On-Chip-Peripherie anzusprechen. Damit eine gute Speicherausnutzung erreicht wird, haben viele Controller Bitbefehle, mit denen einzelne Bits direkt gespeichert und manipuliert werden können. Oft wurden die Mikrocontrollerkerne aus vorhandenen Mikroprozessoren abgeleitet. Dies hat verschiedene Vorteile: Es spart für den Hersteller Entwicklungs- und Testzeit, vielen Benutzern ist der Befehlssatz schon bekannt und zum Teil können vorhandene Entwicklungswerkzeuge benutzt werden. Parallele oder serielle Schnittstelle Input/Output-Ports, kurz I/O-Ports, sind für Mikrocontroller besonders wichtig, sie erlauben den Austausch digitaler Signale mit dem umgebenden System. Ein Beispiel: Ein Mikrocontroller, der eine Infrarotfernbedienung steuert, kann über einen digitalen Eingang feststellen, ob gerade eine Taste gedrückt wird. Über einen digitalen Ausgang kann er die Sendediode ein- und ausschalten. Über I/O-Ports werden also binäre Signale verarbeitet, die mit TTL-Pegeln dargestellt werden. Alle Mikrocontroller verfügen daher über eigene I/O- Ports, diese sind meistens in Gruppen zu 8 Bit. Typischerweise gehört zu jedem Port ein Datenregister und ein Richtungsregister, das die Richtung des Datenaustausches (Ein- oder Ausgabe) festlegt. Die Portausgänge sind in ihrer Schaltungstechnik einfach gehalten. Die Ports werden auch benutzt, um externe Busbausteine anzusteuern. Mikrocontroller-Ports - 8 -

9 sind oft rücklesbar, d.h. im Ausgabebetrieb kann der anliegende Wert vom Controllerkern wieder eingelesen werden. Dies erspart die zusätzliche Abspeicherung des Portzustands in RAM-Zellen. Um einen vielseitigen Mikrocontroller zu erhalten, der aber nicht all zu viele Anschlussstifte hat, werden über die Portanschlussstifte oft alternativ andere Funktionen abgewickelt, z.b. Analogeingang, Zählereingang oder serielle Datenübertragung. Über Konfigurationsregister kann dann per Software die Arbeitsweise dieser Anschlussstifte festgelegt werden. A/D-Wandler A/D-Wandler sind Bausteine, die einen analogen Eingang und N digitale Ausgangsleitungen haben. Ein am Eingang anliegendes analoges Signal wird in eine ganze Zahl umgerechnet und in binärer Darstellung an den N digitalen Ausgangsleitungen ausgegeben. Die Analog- Digital-Umsetzung hat dann eine Auflösung von N Bit. Erfolgt die Umwandlung in kurzen Abständen, so kann eine sich ohne Sprünge verändernde Spannung in Form einer Liste von Zahlen protokolliert werden. Je schneller ein A/D-Wandler arbeitet, desto dichter liegen die protokollierten Werte und umso genauer wird die Änderung der analogen Spannung abgebildet. Watchdog-Timer Ein Mikrocontroller könnte durch einen versteckten Programmfehler oder durch umgebungsbedingte Veränderungen von Speicher- oder Registerinhalten, z.b. Störsignale, in eine Endlosschleife geraten. Damit fällt er praktisch aus und die Steuerung wird blockiert. Diese gefährliche Situation soll ein Watchdog-Timer (WDT) vermeiden. Ein Watchdog-Timer ist ein freilaufender Zähler, der bei Überlauf einen ein Reset des Mikrocontrollers auslöst. Im normalen Programmablauf muss daher der WDT regelmäßig durch das Programm zurückgesetzt werden um den WDT-Reset zu vermeiden. Dies kann man z.b. in der Hauptprogrammschleife machen, die ständig durchlaufen wird. Gerät das Programm des Controllers dann durch eine Störung ungewollt in eine Endlosschleife, so findet das Zurücksetzen des Watchdog-Timer nicht mehr statt (es sei denn, der Rücksetzbefehl des WDT liegt innerhalb dieser Endlosschleife) und dieser löst nach einer gewissen Zeit ein Reset aus. Nun wird das System neu hochgefahren und kann wieder korrekt arbeiten

10 Timer (Zähler) Zähler/Zeitgeber-Bausteine sind typische und sehr wichtige Peripheriegruppen, die fast jeder Mikrocontroller besitzt. Schon bei einer einfachen Impulszählung wird der Nutzen dieser Baugruppe offensichtlich: Ohne den Zähler/Zeitgeberbaustein müsste ein Mikrocontroller den betreffenden Eingang in einer Programmschleife ständig abfragen (pollen) und bei jeder zweiten Flanke den Wert einer Speichervariablen inkrementieren. Der Zählerbaustein befreit die CPU von dieser zeitraubenden Aufgabe. Das Kernstück des Zähler/Zeitgeberbausteins ist ein Zähler, der durch eingehende Impulse inkrementiert oder dekrementiert wird. Im Zählerbetrieb (Counter) kommen diese Impulse über einen Anschlussstift von außen in den Mikrocontroller und werden einfach gezählt. Im Zeitgeberbetrieb (Timer) werden die Impulse durch das Herunterteilen des internen Oszillatortaktes gewonnen. Da der Oszillatortakt bekannt ist, sind damit exakte Zeitmessungen möglich. Die Umschaltung erfolgt durch einen Multiplexer. Speicher Ein Mikrocontroller besitzt meist ein ROM, ein EPROM oder eine Flash-Memory als Programmspeicher und ein RAM als Datenspeicher. Programme können in jeden dieser Speicherbereiche geladen und in jedem Bereich ausgeführt werden. Das ROM kann allerdings nur während des Herstellungsprozesses programmiert werden. Daher ist die Flash-Memory meist der bevorzugte Programmspeicher. Da Programme im RAM nicht dauerhaft gespeichert werden können, ist seine Hauptfunktion die temporäre Speicherung von Rücksprungadressen im Stack-Bereich oder von Zwischenergebnissen des Programmlaufs. Interrupt-System Ein Mikrocontroller verfügt schon auf seinem Chip über verschiedene vielseitige Peripheriekomponenten. Über die I/O-Ports können weitere externe Komponenten angeschlossen werden. Der Mikrocontrollerkern muss also eine Vielzahl von Subsystemen ansteuern und bedienen. Ohne das Interrupt-Konzept müsste die CPU in vielen Abfrageschleifen die Zustandsflags der Peripheriekomponenten abfragen und wertvolle Zeit ginge verloren. Viel effizienter ist es, wenn z.b. der A/D-Wandler durch einen Interrupt signalisiert, dass die Wandlung beendet ist und ein Ergebnis vorliegt. Ebenso kann eine Zähler/Zeitgeber-Einheit mit einem Interrupt ein Compare-Ereignis signalisieren. Durch den

11 Interrupt-Betrieb wird die Effizienz enorm gesteigert und wegen der vielfältigen Peripherie spricht hier noch mehr für das Interrupt-Konzept als bei den Mikroprozessoren. Ein zusätzlicher Aspekt ist die oft geforderte Echtzeitfähigkeit, eine garantierte und sichere Reaktion des Mikrocontrollers auf ein Ereignis innerhalb einer definierten maximalen Reaktionszeit. Wegen der genannten Gründe verfügen fast alle Mikrocontroller über die Möglichkeit der Interrupt-Verarbeitung. Das Interrupt-System erlaubt es, auf das Peripherieereignis sofort zu reagieren, ohne die entsprechende Komponente ständig abzufangen. 3. Speicherorganisation und Programmierung 3.1 Speicherorganisation Die Controller der 8051-Familie sind für die Harvard-Architektur konzipiert. Diese Architektur teilt den Speicher in Programm- und Datenspeicher auf. Beide Speicher liegen im gleichen Adressbereich. Bei gleicher Adresse wählt der Controller über ein Steuersignal einen der beiden Speicher Programmspeicher Der 80(C)515 enthält einen eingebauten 8 KByte Programmspeicher als optionalen Teil. Der ROM-lose 80(C)535 arbeitet dagegen nur mit externem Speicher. In allen Fällen kann der externe Speicher bis zu 64 KByte groß sein. Liegt der Eingangspin EA (external access) auf High-Pegel, arbeiten die ROM-Versionen aus dem internen ROM. Dies geschieht solange der Programmzähler Adressen unterhalb 2000h enthält. Speicherplätze mit Adressen darüber bis FFFFh weisen immer auf den externen Programmspeicher. Da der 80(C)535 keinen internen Programmspeicher besitzt, muss der Anschluss EA hier generell auf Low- Pegel gelegt werden. In jedem Fall erfolgt die Adressierung beim Programmzugriff über den sechzehn Bit breiten Programmzähler (PC), unabhängig davon, ob mit internem oder internem Speicher gearbeitet wird

12 Abbildung Datenspeicher Der Datenspeicher lässt sich in einen internen und einen externen Bereich aufteilen. Der interne Datenspeicher, der sich beschreiben und lesen lässt (RAM), besteht aus drei getrennten Blöcken: dem unteren 128 Byte RAM, dem oberen 128 Byte RAM und dem 128 Byte großen Bereich der Special-Function-Registers (SFR). Weil die beiden letztgenannten Bereiche logisch den gleichen Adressraum belegen, erfolgt die Auswahl des jeweiligen Blocks durch die Adressierungsart. Die unteren 128 Byte können sowohl mit direkter als auch indirekter Adressierung angesprochen werden, die oberen 128 Byte des internen RAM jedoch nur durch Befehle, die indirekte Adressierung verwenden. Die SFR müssen daher ausschließlich direkt angesprochen werden

13 Abbildung 4 Die unteren 128 Byte des internen RAM lassen sich weiter in drei Gruppen aufteilen: Auf den Adressen 00h bis 1Fh sind allgemein verwendbare vier Registerbänke untergebracht. Der Controller arbeitet immer nur mit einer der Registerbänke. Jede Registerbank besteht aus 8 Bytes (R0 bis R7). Die anschließenden 16 Byte (Adresse 20h bis 2Fh) enthalten 128 direkt adressierbare Bits. Diese Bits lassen sich auf zwei verschiedene Weise ansprechen. Die erste Möglichkeit ist, ihre Bitadressen zu verwenden, d.h. Bit 00h bis 07h. Die andere ist, sich auf die Bitstelle im jeweiligen Byte 20h bis 2Fh zu beziehen. Die Adressen 30h bis 7Fh stehen allgemein als Datenbytes zur Verfügung. Die obere Hälfte des Datenspeichers umfasst 128 Bytes und geht von Adresse 80h bis FFh. Die Bytes sind mit Hilfe der Register R0 oder R1 indirekt adressierbar. Der Controller kann einen externen Datenspeicher von 64KByte ansprechen, der an ein externes Bussystem angeschlossen wird. Der externe Datenspeicher wird durch den DPTR (Datapointer) indirekt adressiert

14 3.1.3 Die Special Function Register SFR Die Special Function Register befinden sich überlappend mit der oberen Hälfte des internen RAM im Adressbereich 80h bis FFh. Sie sind über direkte Adressierung anzusprechen. Sie lassen sich mit ihrer absoluten Hexadresse benennen oder, bei einem geeigneten Übersetzerprogramm, auch mit ihrer symbolischen Adresse. Einige SFR sind nur als komplettes Byte anzusprechen, andere sind bitadressierbar. Bei geeignetem Übersetzerprogramm sind auch diese einzelnen Bits mit ihrem symbolischen Namen zu benennen. Der Bereich der SFR hat zwei wesentliche Aufgaben. Zum einen liegen in diesem Bereich alle CPU-Register, außer dem Programmzähler PC und den vier Registerbänken. SFR sind in erster Linie die Arithmetikregister A, B und PSW sowie die Zeiger SP, DPH und DPL (DPTR higher Byte und lower Byte). Zum anderen stellen eine Anzahl von SFR die Schnittstelle zwischen CPU und den integrierten Peripherieeinheiten dar. Letzteres heißt, dass alle Kontrollfunktionen und Datentransfers zu oder von Peripherieeinheiten ausschließlich über SFR abgewickelt werden. 3.2 Adressierungsarten Je nachdem, wie bei einer Assembler-Instruktion auf die benötigten Daten zugegriffen wird, unterscheidet der 8051 fünf Adressierungsarten. Im Folgenden werde ich jede Adressierungsart anhand eines Beispiels kurz beschreiben und außerdem eine in Datenbüchern übliche, sehr kurze Form der Befehlsbeschreibung darstellen. Dort bedeutet ein nicht in Klammern eingeschlossener Registername oder eine Adresse Inhalt des Registers bzw. Inhalt der durch die Adresse bezeichneten Speicherstelle. Ein geklammertes Register R0, R1 oder DPTR kommt bei indirekter Adressierung vor und bedeutet Inhalt der durch den Inhalt von R0, R1 bzw. DPTR adressierten Speicherstelle. A Rr #konst Akkumulator Register R0 bis R7 Datapointer 8-Bit Adresse für die direkte Adressierung des internen RAM indirekte Adressierung des internen RAM durch R0 oder R1 indirekte Adressierung des externen RAM durch Datapointer Konstante bei unmittelbarer Adressierung Tabelle 1 Bezeichnungen bei Befehlsbeschreibungen

15 3.2.1 Direkte Adressierung Die Speicherzellen des internen Datenspeichers können direkt adressiert werden. Direkt adressieren heißt, die Adresse, deren Inhalt bearbeitet werden soll, wird im Befehl angegeben. Direkte Adressierung ist die einzige Möglichkeit auf die SFRs zuzugreifen. Beispiel: MOV 20, überträgt eine Kopie des Inhaltes der Speicherstelle 100 Dezimal in die Speicherzelle 20 Dezimal Indirekte Adressierung Bei der indirekten Adressierung des internen RAM enthält das in der Anweisung gekennzeichnete Register R0 oder R1 der aktuellen Registerbank die Adresse der Daten, auf die der Befehl angewendet werden soll. Durch indirekte Adressierung mit R0 oder R1 kann aber nur auf den internen Datenspeicher zugegriffen werden. Für die indirekte Adressierung des externen Datenspeichers wird der Befehl MOVX verwendet. Als Register für die indirekte Adressierung des externen Datenspeichers wird DPTR verwendet. Beispiel: MOV A (R1) überträgt eine Kopie des Inhalts der Speicherzelle, deren Adresse im Zeigerregister R1 steht, in den Akkumulator Unmittelbare Adressierung (Wertzuweisung) Dabei steht der Wert, der übertragen oder mit dem eine Berechnung durchgeführt werden soll, nicht in einer Datenzelle, sondern unmittelbar als Operand im Befehlscode. Da der Befehlscode in einem dynamisch nicht veränderbaren Speicher (ROM) steht, handelt es sich bei diesem Wert um eine Konstante. Beispiel: MOV R5, #18 R7 #18 lädt die Konstante 18 Dezimal in das Register R

16 3.2.4 Register Adressierung Bei der Register Adressierung sind die Operanden in den Registern A, B, R0-R7 oder DPTR enthalten. Die Information, auf welches Register zugegriffen werden soll, ist im Opcode enthalten. Beispiel: INC R0 inkrementiert den Inhalt von R0. R0 R Indirekte, indizierte Adressierung Die indirekte, indizierte Adressierung wird verwendet, um den Programmspeicher auszulesen. Hierbei enthält das Register PC oder DPTR eine Basisadresse. Die endgültige Adresse ergibt sich aus der Addition der Inhalte des Basisregisters und des Akkumulators. Beispiel: MOVC A (DPTR+A) schreibt ein Byte aus dem Programmspeicher nach A. Die Adresse des Bytes berechnet sich als Summe des Inhalts von A und des DPTR. von in A Rr konst A * * * * Rr * * DPTR dadr * * * * * konst * * * * * Tabelle 2 Übersicht der Transfermöglichkeiten

17 3.3 Programmierung Wenn ein Programm für einen PC entwickelt wird, ist es selbstverständlich, dass auch die Programmentwicklung auf einem PC stattfindet. Der PC hat Bildschirm, Tastatur, Maus, Laufwerke usw. und wird zum Editieren, Testen, Debuggen und Speichern des Programms benutzt. Entwicklungssystem und Zielsystem sind also identisch, der erzeugte Maschinencode kann direkt auf dem Entwicklungsrechner ausgeführt werden. Bei einer Mikrocontroller-Entwicklung ist die Situation ganz anders: Der Mikrocontroller kann nicht als Entwicklungssystem benutzt werden, weil er in der Regel weder Bildschirm noch Tastatur hat. Außerdem wird ein Mikrocontroller nicht größer als nötig ausgewählt, auf dem fertigen System ist also kein Platz für platzraubende Entwicklungswerkzeuge. Man braucht also einen separaten Entwicklungsrechner, z.b. einen PC. Nun ist das Entwicklungssystem nicht mehr mit dem Zielsystem identisch, der Befehlssatz des Mikrocontrollers unterscheidet sich von dem des Entwicklungsrechners, und der Prozessor verfügt auch nicht über die spezielle Peripherie des Mikrocontrollers. Der Maschinencode wird durch einen Übersetzer auf dem Entwicklungssystem erzeugt, kann aber nicht mehr auf dem Entwicklungssystem ausgeführt werden, man betreibt also cross-platform-entwicklung. Aus diesem Grund werden spezielle Werkzeuge für die Mikorcontroller-Entwicklungen gebraucht. Besonders wichtig sind dabei die Möglichkeiten zur Fehlersuche. Kaum ein Programm läuft gleich fehlerfrei, meistens ist eine längere Phase des Testens und Fehlersuchens nötig Programmiersprachen Den direktesten Zugriff auf den Prozessor hat man mit Assembler. Dies ist jedoch gleichzeitig - zumindest auf den ersten Blick - die komplexeste Sprache, denn sie erfordert einen hohen Lernaufwand. Aufgrund stark unterschiedlicher Befehlssätze verschiedener Controllerfamilien ist das Gelernte nie 1-zu-1 übertragbar und meist nur direkt auf einen einzigen Prozessor oder allenfalls auf eine Familie "verwandter" Produkte anwendbar. Dennoch kann man sich mit einiger Erfahrung recht schnell in einen anderen Befehlssatz einarbeiten. In bestimmten Bereichen oder Teilen eines Projekts ist die Verwendung von Assembler dennoch unabdingbar. Für größere Entwicklungen werden mittlerweile auch höhere Programmiersprachen eingesetzt. Hier ist C klar dominierend, bei umfangreichen Projekten ist ein deutlicher Trend zu C++ erkennbar. Andere Sprachen (z.b. Basic, Pascal) kommen demgegenüber nur in verschwindend geringem Umfang zum Einsatz

18 4. Auswahl des richtigen Mikrocontrollers Die Auswahl des richtigen Controllers für Applikationen im Embedded Bereich stellt eine komplexe und nicht zu unterschätzende Aufgabe dar, bei der eine Vielzahl von Faktoren zu berücksichtigen sind. Es gibt dutzende Hersteller, und jeder davon hat unzählige Varianten im Angebot. Die Entscheidung wird oftmals nicht nur durch die Hardware- und Softwareanforderungen, sondern auch durch die Kostenrechnung beeinflusst. Insbesondere bei High-End Anwendungen ist die Wahl einer Controllerarchitektur eine strategische Entscheidung. Kriterien bei der Entscheidung Verfügbarkeit: Der benutzte Mikrocontroller sollte noch so lange wie möglich auf dem Markt zu erwerben sein. Das ist wichtig für langfristige Investitionen. Preis: Kostenfaktoren müssen bei der Wahl berücksichtigt werden. Mechanische Anforderungen: stabiler Aufbau, robust gegen mechanische Belastung, begrenzter Raum, vorgegebene Bauform Elektrische Anforderungen: vorgegebene Versorgungsspannung, limitierter Energieverbrauch, geringe Abwärme Zuverlässigkeit: Ausfallsicherheit, Notbetrieb z.b. bei Bremsen eines Autos (Diagramm 1) Takt/Geschwindigkeit: Ausführung von Tätigkeiten innerhalb einer vorgegebenen Zeit Echtzeitsysteme Schnittstellen: Mehr und flexiblere Schnittstellen als bei reinen Rechensystemen sind erwünscht Andere Kriterien: Speicher, Onboard-Peripherie, unterstützte Programmiersprachen usw. Diagramm

19 5. Einsatzgebiete des Mikrocontrollers Mikrocontroller sind heute als leistungsfähige Kleinrechner mit minimaler Peripherie ab etwa der Größe einer Briefmarke erhältlich und verfügen über ein breites Spektrum an Einsatzgebieten. Ein paar Anwendungsbeispiele sind: Haushalt (Geschirrspüler, Fernseher, Waschmaschine) Kommunikation (Mobiltelefone, Faxgeräte) Industrie (Steuerung und Regelung, Prozessautomatisierung) Autos und Verkehr (Motorsteuerung, Steuerungen und Regelungen im Verkehr) Fallbeispiel: Kfz-Technik Elektronische Steuergeräte mit ihren Sensoren und Aktoren sind aus dem Kraftfahrzeug nicht mehr wegzudenken. Sie haben die Automobilwelt revolutioniert. Alle wesentlichen Fahrzeugfunktionen werden elektronisch auf kleinstem Raum gesteuert und geregelt: die Motor- und Getriebesteuerung, die Sicherheitssysteme aber auch eine Vielzahl von Komfortsystemen und die Intelligenz im Fahrzeug wächst rasant weiter. Die elektronische Steuerung und Regelung eröffnet eine Vielfalt an Möglichkeiten. Sie verbessert die Fahrsicherheit und den Fahrkomfort. Gleichzeitig werden die Fahrzeuge immer sparsamer und umweltschonender. In den letzten Jahren entfiel ein großer Teil der verkauften Mikrocontroller auf den Bereich Kfz-Elektronik: Im Jahr 2002 waren es etwa 34 Prozent des gesamten Marktvolumens. So stecken in einem gut ausgestatteten Fahrzeug der Mittelklasse derzeit rund 40 Mikrocontroller, wobei das Spektrum von einfachen Anwendungen wie Zentralverriegelung oder Fensterheber bis hin zu sehr komplexen Steuergeräten für die Motorsteuerung oder das Antiblockiersystem gespannt ist. Allerdings werden meist noch Achtbitmaschinen eingesetzt. Da indes immer mehr Steuergeräte vernetzt sind und die einzelnen Steuergeräte immer mehr Funktionen übernehmen, steigen die Anforderungen an die Rechenleistung und es kommen immer häufiger 32-Bit Architekturen zum Zuge, wobei formelle Software- Entwicklungsprozesse und Software-Schichtenmodelle die Umstellung weiter beschleunigen

20 Bei der Steuerung von Fensterheber oder Sitzverstellung im Auto kommt man schon mit den einfachsten Mikrocontrollern aus, wobei die Steuerung intelligenterer Funktionen, also z.b. Kraftstoffeinspritzung und Zündsteuerung dagegen eher schon einen 16-Bit-Mikroprozessor oder Mikrocontroller benötigt. Für spezielle Funktionen wie z.b. Autonavigationssysteme werden sogar High-End-Prozessoren benötigt. Für Anwendungen in Steuerung, Regelung und Signalverarbeitung sind heute ganze Familien von Prozessoren mit spezieller Peripherie verfügbar, die aber alle mit SW-kompatiblen Standard-Prozessor-Kernen arbeiten. Dabei spielen Prozessor Kerne von Intel (8051) und Motorola (HC08, HC 11) eine Rolle. Bislang wurden im Fahrzeug verschiedene Mikrocontroller unterschiedlicher Hersteller eingesetzt, doch wegen der Vielzahl von Anwendungen und der langen Produktlebensdauer in der Automobilindustrie führt dies unweigerlich zu Problemen, da über eine extrem lange Zeit nicht nur alle Bauteile, sondern auch die Fertigungstechniken und Entwicklungstools verfügbar sein müssen. Durch skalierbare und befehlssatzkompatible Mikrocontrollerkerne mit klarer Roadmap für die Zukunft lassen sich solche Probleme nicht nur vermeiden, sondern zudem auch Kosten sparen. Abbildung

21 6. Quellen Microcomputer Components 8-Bit CMOS Single-Chip Microcontroller SAB / SAB 80C515 SAB 80C515 / SAB 80C535 Data Sheet / User's Manual Infineon Technologies AG, München Andreas Roth, Das Mikrocontroller Kochbuch MCS51 mitp Verlag, 2002 Dieter Schossig, Mikrocontroller te-wi Verlag, 1993 Silvia Limbach, Kompaktkurs Mikrocontroller Vieweg Verlag, 2002 Bernd-Dieter Schaaf, Mikrocomputertechnik Hanser Verlag, 1999 J. Schäuffele, Th. Zurawka: Automotive Software Engineering Vieweg, 2003 K.P.Köhn, R.Schultes, 8051 Prozessoren Franzis' Verlag, 1994 Zeitschrift - AUTO & ELEKTRONIK

8051Speicherorganistaion. SFR u. oberer Datenspeicherbereich teilen sich den SPECIAL FUNCTION REGISTER. gleichen Adreßbereich. indirekt adressierbar

8051Speicherorganistaion. SFR u. oberer Datenspeicherbereich teilen sich den SPECIAL FUNCTION REGISTER. gleichen Adreßbereich. indirekt adressierbar intern (auf CPU) PROGRAMMSPEICHER extern 2K bis 64K ROM 051: 4K max 64K 051:64K 051Speicherorganistaion 13.04.2000 - v3 extern interner XRAM DATENSPEICHER intern (auf CPU) SPECIAL FUNCTION REGISTER SFR

Mehr

EDT-REFERAT Adressierungsarten

EDT-REFERAT Adressierungsarten EDT-Referat BÜLBÜL Erkan 2ANB 95 /96 Seite 1 EDT-REFERAT Adressierungsarten INHALTSVERZEICHNIS 1.Theoretische Grundlagen 1.0 Einführung 1.1 Programm- & Datenspeicheradressierbereiche 2.Adressierungsarten

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Bernd-Dieter Schaaf Mikrocomputertechnik Mit MikroControllern der Familie 8051 unter Mitarbeit von Stephan Böcker 5., aktualisierte Auflage mit zahlreichen Bildern, Beispielen und Übungen HANSER 1 Der

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Mit Mikrocontrollern der Familie 8051 von Bernd-Dieter Schaaf 5., aktualisierte Auflage Hanser München 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 41761 8 Zu Leseprobe

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie im Buchhandel

Mehr

Microcomputertechnik

Microcomputertechnik Microcomputertechnik mit Mikrocontrollern der Familie 8051 Bearbeitet von Bernd-Dieter Schaaf 2. Auflage 2002. Buch. 230 S. Hardcover ISBN 978 3 446 22089 8 Format (B x L): 16 x 22,7 cm Gewicht: 407 g

Mehr

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikrocomputertechnik Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 - Mikroprozessor-Achritekturen Folie 2 Mikroprozessor-Achritekturen Klassifizierung anhand Wortbreite CPU-Architektur und Busleitungen

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 051 ISBN 3-446-4071-9 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-4071-9 sowie im Buchhandel

Mehr

Mikrocomputertechnik mit der 8051-Controller-Familie

Mikrocomputertechnik mit der 8051-Controller-Familie Mikrocomputertechnik mit der 8051-Controller-Familie Hardware, Assembler, C Bearbeitet von Jürgen Walter Neuausgabe 2008. Buch. xiii, 311 S. ISBN 978 3 540 66758 2 Format (B x L): 15,5 x 23,5 cm Weitere

Mehr

Mikrocomputertechnik

Mikrocomputertechnik J. Walter Mikrocomputertechnik mit der 8051-Controller-Familie Hardware, Assembler, C Mit 146 Abbildungen und 50 Tabellen Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie

Mehr

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister)

Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister) Prof. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/18 Praktikum Mikrorechner 4 (Bitmanipulation und Spezialregister) Prof. Kemnitz Institut für Informatik, Technische

Mehr

Mikroprozessortechnik Grundlagen 1

Mikroprozessortechnik Grundlagen 1 Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Aktuelle Controller 8051: Funktionsweise, äußere Beschaltung und Programmierung von Bernd-Dieter Schaaf, Stephan Böcker 6., aktualisierte und erweiterte Auflage Hanser München 2012

Mehr

Prof. Dr. Sven-Hendrik Voß Sommersemester 2018 Technische Informatik (Bachelor), Semester 2 Termin 5, Maschinenorientierte Programmierung

Prof. Dr. Sven-Hendrik Voß Sommersemester 2018 Technische Informatik (Bachelor), Semester 2 Termin 5, Maschinenorientierte Programmierung Prof. Dr. Sven-Hendrik Voß Sommersemester 2018 Technische Informatik (Bachelor), Semester 2 Termin 5, 07.05.2018 Maschinenorientierte Programmierung Seite 2 Assemblersyntax des 8051 Maschinenorientierte

Mehr

Im Bereich der Entwicklung und Herstellung von Prozessoren spielen

Im Bereich der Entwicklung und Herstellung von Prozessoren spielen Prozessor (CPU) Allgemeines, Begriffe, Entwicklung Der Prozessor ist heutzutage das Herzstück fast eines jeden elektronischen Geräts. Er ist ein hochkomplexer Chip, der mit feinsten Halbleiterstrukturen

Mehr

MikroController der 8051-Familie

MikroController der 8051-Familie i Dipl.-Ing. Roland Dilsch MikroController der 8051-Familie Aufbau, Funktion, Einsatz Vogel Buchverlag Inhaltsverzeichnis Vorwort 5 1 Was ist ein MikrocontroUer? 13 1.1 Aufbau eines Computers 13 1.2 Entstehung

Mehr

SPS S90U. 1. Grundlagen SPS Funktion

SPS S90U. 1. Grundlagen SPS Funktion 1. Grundlagen SPS 1.1. Funktion SPS bedeutet Speicher-Programmierbare Steuerung. Damit ist auch die Zielsetzung einer SPS erklärt: Über einen Speicher und einen Prozessor soll die Funktion von elektronischen

Mehr

Praktikum Mikrorechner 3 (Adressierungsarten)

Praktikum Mikrorechner 3 (Adressierungsarten) G. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/15 Praktikum Mikrorechner 3 (Adressierungsarten) G. Kemnitz Institut für Informatik, Technische Universität Clausthal

Mehr

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller Mini- Mikroprozessor-Experimentier-System mit einem 8051-Mikrocontroller Version 1.0b vom 04.10.2004 14:21 Inhalt 1 Einleitung...3 2 Hardware...4 2.1 Übersicht...4 2.2 Mikrocontroller AT89C51RB2...5 2.3

Mehr

E Mikrocontroller-Programmierung

E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E Mikrocontroller-Programmierung E.1 Überblick Mikrocontroller-Umgebung Prozessor am Beispiel AVR-Mikrocontroller Speicher Peripherie Programmausführung Programm laden

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Mikrocontroller. Vortrag von Louis Liedtke. 8. Dezember Fakultät Elektrotechnik und Informatik. Bild 1: Atmel ATmega8

Mikrocontroller. Vortrag von Louis Liedtke. 8. Dezember Fakultät Elektrotechnik und Informatik. Bild 1: Atmel ATmega8 Mikrocontroller Bild 1: Atmel ATmega8 Vortrag von 8. Dezember 2015 Gliederung 1. Begriffserklärung 2. Besondere Merkmale 3. Aufbau und Arbeitsweise 4. Programmierung 5. Nutzen 6. Fazit 2 1. Begriffserklärung

Mehr

Befehlssatz der Mikrocontroller der 51er -Familie

Befehlssatz der Mikrocontroller der 51er -Familie Befehlssatz der Mikrocontroller der 51er -Familie Abkürzungen: Mikrocontrollerfamilie 8051 Befehlssatz A : Akkumulator Rn : Register R0..R7 Ri : R0 oder R1 dadr : direkte Byte-Adresse im int. Speicher

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen

Mehr

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I Aufgabe Punkte Aufgabe 1: / 35 Aufgabe 2: / 25 Aufgabe 3: / 15 Aufgabe 4: / 15 Aufgabe 5: / 35 Aufgabe 6: / 15 Aufgabe 7: / 20 Aufgabe 8:

Mehr

8051-Mikrocontroller-Familie

8051-Mikrocontroller-Familie 8051-Mikrocontroller-Familie 8051-Komponenten und -Eigenschaften Prof. Dr.-Ing. Alfred Rożek MC65-Teil1.doc 1/17 Prof. Dr.-Ing. Alfred Rożek MC65-Teil1.doc 2/17 Prof. Dr.-Ing. Alfred Rożek MC65-Teil1.doc

Mehr

Speicheraufbau des AT89C5131

Speicheraufbau des AT89C5131 Speicheraufbau des AT89C5131 Prinzip: - getrennter Programmspeicher (ROM) und Datenspeicher (RAM) - interner Speicher (auf dem Chip) und externer Speicher (Zusatzbausteine) Das Experimentalsystem hat keinen

Mehr

Mikroprozessortechnik

Mikroprozessortechnik Klaus Wüst Mikroprozessortechnik Grundlagen, Architekturen und Programmierung von Mikroprozessoren, MikroControllern und Signalprozessoren 2., aktualisierte und erweiterte Auflage Mit 190 Abbildungen und

Mehr

Teil 2: Rechnerorganisation

Teil 2: Rechnerorganisation Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung

Mehr

Vorwort. Bernd-Dieter Schaaf. Mikrocomputertechnik. Mit Mikrocontrollern der Familie 8051 ISBN:

Vorwort. Bernd-Dieter Schaaf. Mikrocomputertechnik. Mit Mikrocontrollern der Familie 8051 ISBN: Vorwort Bernd-Dieter Schaaf Mikrocomputertechnik Mit Mikrocontrollern der Familie 051 ISBN: 97-3-446-41761- Weitere Informationen oder Bestellungen unter http://www.hanser.de/97-3-446-41761- sowie im Buchhandel.

Mehr

4.0 Der Atmel AT89LPx052 Mikrocontroller

4.0 Der Atmel AT89LPx052 Mikrocontroller 4.0 Der Atmel AT89LPx052 Mikrocontroller Die ersten beiden Derivate der Atmel LP Familie sind der AT89LP2052 und der AT89LP4052 in verschiedenen Gehäusevarianten mit 2 Kbytes bzw. 4 KBytes Flash. Gegenüber

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Bernd-Dieter Schaaf Mikrocomputertechnik Mit MikroControllern der Familie 8051 unter Mitarbeit von Peter Wissemann 4., aktualisierte Auflage mit 267 Bildern sowie zahlreichen Beispielen und Übungen HANSER

Mehr

Mikroprozessortechnik

Mikroprozessortechnik Klaus Wüst Mikroprozessortechnik Grundlagen, Architekturen, Schaltungstechnik und Betrieb von Mikroprozessoren und Mikrocontrollern 3., aktualisierte und erweiterte Auflage Mit 195 Abbildungen und 44 Tabellen

Mehr

FPGA vs. Mikrocontroller. Agenda

FPGA vs. Mikrocontroller. Agenda FPGA vs. Mikrocontroller Name: Jan Becker Matrikelnummer: 546508 Agenda - Kurzvorstellung eines FPGAs - Komponenten eines FPGAs - Programmierung eines FPGAs - Kurzvorstellung eines Mikrocontrollers - Komponenten

Mehr

Ein- Ausgabeeinheiten

Ein- Ausgabeeinheiten Kapitel 5 - Ein- Ausgabeeinheiten Seite 121 Kapitel 5 Ein- Ausgabeeinheiten Am gemeinsamen Bus einer CPU hängt neben dem Hauptspeicher die Peripherie des Rechners: d. h. sein Massenspeicher und die Ein-

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

MOP: Befehlsliste für den Mikrocontroller 8051

MOP: Befehlsliste für den Mikrocontroller 8051 Beuth Hochschule Berlin FB VI, Labor für Digitaltechnik MOP: Befehlsliste für den Mikrocontroller 8051 Erläuterung der Operanden Operand A addr11 addr16 bit /bit C #data #data16 direct DPTR PC Ri Rn rel

Mehr

Mikroprozessortechnik

Mikroprozessortechnik Klaus Wüst Mikroprozessortechnik Grundlagen, Architekturen, Schaltungstechnik und Betrieb von Mikroprozessoren und MikroControllern 4., aktualisierte und erweiterte Auflage Mit 195 Abbildungen und 44 Tabellen

Mehr

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232

Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232 Inhaltsverzeichnis 1 Ein-Bit-Rechner... 15 1.1 Rechenwerk... 15 1.1.1 Register und Takt... 16 1.1.2 Zwischenspeicher... 17 1.1.3 Native und emulierte Datenmanipulationsbefehle... 18 1.2 Steuerwerk... 20

Mehr

Mikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34

Mikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34 Mikrocontroller eine Einführung Florian Schmitt - 16.11.2010 1 / 34 Inhalt Was sind Mikrocontroller, wozu sind sie nützlich? Unterschiede und Gemeinsamkeiten mit dem PC Wie funktionieren Mikrocontroller

Mehr

Kapitel 18. Externe Komponenten

Kapitel 18. Externe Komponenten Kapitel 18 Externe Komponenten 31.05.11 K.Kraft E:\MCT_Vorlesung\MCT2011\Externe_31\Externe.odt 18-1 Anschluss von externen Komponenten Einfachste Art : Direkt an einem Port Beispiel Ausgabe : 7-Strich

Mehr

Mikrocontrollerprogrammierung in Assembler und C

Mikrocontrollerprogrammierung in Assembler und C mitp Professional Mikrocontrollerprogrammierung in Assembler und C für die Mikrocontroller der 8051-Familie - Simulation unter Multisim von Herbert Bernstein 1. Auflage Mikrocontrollerprogrammierung in

Mehr

Einführung in die Welt der Microcontroller

Einführung in die Welt der Microcontroller Übersicht Microcontroller Schaltungen Sonstiges Einführung in die Welt der Microcontroller Übersicht Microcontroller Schaltungen Sonstiges Inhaltsverzeichnis 1 Übersicht Möglichkeiten Einsatz 2 Microcontroller

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

Mehr

9. Assembler: Der Prozessor Motorola 68000

9. Assembler: Der Prozessor Motorola 68000 9.1 Architektur des Prozessors M 68000 9.2 Adressierungsarten des M 68000 9-1 9.1 Beschreibung des Prozessors M 68000 Charakteristische Daten des 56 Maschinenbefehle 14 Adressierungsarten Zweiadressmaschine

Mehr

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Prinzipieller Aufbau und Funktionsweise eines Prozessors Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr

Hardwareaufbau der Mikrocontroller der 51er -Familie

Hardwareaufbau der Mikrocontroller der 51er -Familie Hardwareaufbau der Mikrocontroller der 51er -Familie Mikrocontroller (51er Familie) Quarz Port Timer A D Serielle Schnittst. CPU ROM RAM Ext. ROM Ext. RAM Programmspeicher (ROM) Datenspeicher (RAM) FFFFh

Mehr

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher Version D3_16 vom 25.05.2016 Ziel dieses Versuches: Entwicklung einer Ablaufsteuerung mit einem 32 * 4 bit Speicherbaustein, um eine flexible

Mehr

Mikrocomputertechnik. Thema: Einführung in die Mikrocomputertechnik

Mikrocomputertechnik. Thema: Einführung in die Mikrocomputertechnik Mikrocomputertechnik Thema: Einführung in die Mikrocomputertechnik Einsatzgebiete von Mikrocomputern Haushalt: Waschmaschine Kühlschrank Mikrowelle Staubsauger Nähmaschine Industrie: CNC Steuerungen Messgeräte

Mehr

Fachbereich Medienproduktion

Fachbereich Medienproduktion Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen

Mehr

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02 Lösungsvorschläge zur Übungsklausur zum Kurs 1708 Technische Informatik II im WS 01/02 Aufgabe 1: (10 Punkte) Welche der folgenden Aussagen sind richtig? a) Unter dem Begriff Mikroprogramm versteht man

Mehr

Der von Neumann Computer

Der von Neumann Computer Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$

Mehr

Mikrorechner-Technik

Mikrorechner-Technik Springer-Lehrbuch Mikrorechner-Technik Band II Busse, Speicher, Peripherie und Mikrocontroller Bearbeitet von Helmut Bähring Neuausgabe 2002. Taschenbuch. xxvii, 425 S. Paperback ISBN 978 3 540 43693 5

Mehr

Einführung in das Mikrocontroller-System 80(C)515/80(C)535

Einführung in das Mikrocontroller-System 80(C)515/80(C)535 Seite 2 von 228 Inhalt Seite 1 Einführung... 7 2 Grundzüge der Architektur... 10 2.1 Die CPU... 10 2.2 Die Speicherorganisation... 10 2.3 Die externe Buserweiterung... 10 2.4 Die integrierten Peripheriekomponenten...

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Name : Klasse : Punkte : Note :

Name : Klasse : Punkte : Note : Name : Klasse : Punkte : Note : Zeit: 08.00 bis 09.30 Es dürfen alle Unterlagen verwendet werden. Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf

Mehr

Mikroprozessortechnik Mikrocontroller

Mikroprozessortechnik Mikrocontroller technik Mikrocontroller Seite 1 von 24 Inhalt Mikrocontroller... 3 Allgemeines... 3 Typische Baugruppen von Mikrocontrollern... 4 Mikrocontrollerkern (Core)... 4 Busschnittstelle... 4 Programmspeicher...

Mehr

Inhaltsverzeichnis VII

Inhaltsverzeichnis VII Inhaltsverzeichnis 1 Grundlagen der Mikrocontroller... 1 1.1 Mikrocontroller-Familie ATtiny2313, ATtiny26 und ATmega32.... 6 1.1.1 Merkmale des ATtiny2313, ATtiny26 und ATmega32..... 8 1.1.2 Pinbelegung

Mehr

8. SPS Komponenten: Beschreibung der Hardware-Komponenten einer SPS samt deren Eigenschaften

8. SPS Komponenten: Beschreibung der Hardware-Komponenten einer SPS samt deren Eigenschaften 8. SPS Komponenten: Beschreibung der Hardware-Komponenten einer SPS samt deren Eigenschaften Automatisierungsgerät: Zentralbaugruppe mit Prozessor Kommunikationsbaugruppe (Feldbusanschaltung) Bussysteme

Mehr

5.1 Beschreibung des Prozessors M Programmierung in Maschinensprache. 5.1 Beschreibung des Prozessors M 68000

5.1 Beschreibung des Prozessors M Programmierung in Maschinensprache. 5.1 Beschreibung des Prozessors M 68000 5. Programmierung in Maschinensprache (Assembler) 5.1 Beschreibung des Prozessors M 68000 5.1 Beschreibung des Prozessors M 68000 5.2 Adressierungsarten des M 68000 5.3 Maschinenbefehle des M 68000 5.4

Mehr

5. Programmierung in Maschinensprache

5. Programmierung in Maschinensprache 5. Programmierung in Maschinensprache (Assembler) 5.1 Beschreibung des Prozessors M 68000 5.2 Adressierungsarten des M 68000 5.3 Maschinenbefehle des M 68000 5.4 Unterprogrammtechnik 5. Maschinensprache

Mehr

10. Die Adressierungsarten des MSP 430

10. Die Adressierungsarten des MSP 430 10. Die Adressierungsarten 10.1 Übersicht über die Adressierungsarten 10.2 -Operanden 10.3 Indexregister mit Distanz 10.4 Symbolische (relativ zum ) 10.5 Absolute 10.6 Indirekte 10.7 Indirekte Adressierung

Mehr

Hardwareaufbau der Mikrocontroller der 51er -Familie

Hardwareaufbau der Mikrocontroller der 51er -Familie Hardwareaufbau der Mikrocontroller der 51er -Familie Mikrocontroller (51er Familie) Quarz Port Timer A D Serielle Schnittst. CPU ROM RAM Ext. ROM Ext. RAM Programmspeicher (ROM) Datenspeicher (RAM) FFFFh

Mehr

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche

Mehr

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus

é Er ist software-transparent, d.h. der Benutzer braucht nichts von seiner Existenz zu wissen. Adreßbus Cache- Control Datenbus 4.2 Caches é Cache kommt aus dem Französischen: cacher (verstecken). é Er kann durch ein Anwendungsprogramm nicht explizit adressiert werden. é Er ist software-transparent, d.h. der Benutzer braucht nichts

Mehr

Computer - Aufbau u. Funktionsweise

Computer - Aufbau u. Funktionsweise Teil 3 Folie: 1 Ein Computerarbeitsplatz Teil 3 Folie: 2 Was ist in der Box? Hauptplatine, Motherboard Das Bussystem Teil 3 Folie: 3 Unter einem Bussystem (oder kurz einem Bus) versteht man bei einem PC

Mehr

Helmut Bähring. Mikrorechner Technik. Übungen und Lösungen. Mit 78 Abbildungen und CD-ROM. Springer

Helmut Bähring. Mikrorechner Technik. Übungen und Lösungen. Mit 78 Abbildungen und CD-ROM. Springer Helmut Bähring Mikrorechner Technik Übungen und Lösungen Mit 78 Abbildungen und CD-ROM Springer Inhaltsverzeichnis Vorwort : VII I. Übungen zu Band 1 1 1.1 Grundlagen 1 Aufgabe 1: Zu den Maßeinheiten Kilo,

Mehr

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis

Mehr

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse Kapitel 11 Rechnerarchitektur 11.1 Der von-neumann-rechner Wir haben uns bisher mehr auf die logischen Bausteine konzentriert. Wir geben jetzt ein Rechnermodell an, das der physikalischen Wirklichkeit

Mehr

Praktikum Mikrorechner 1 (Einführung)

Praktikum Mikrorechner 1 (Einführung) G. Kemnitz Institut für Informatik, Technische Universität Clausthal November 5, 2014 1/16 Praktikum Mikrorechner 1 (Einführung) G. Kemnitz Institut für Informatik, Technische Universität Clausthal November

Mehr

Klausur Mikroprozessortechnik

Klausur Mikroprozessortechnik 1 Prof. Dr. K. Wüst WS 2001 FH Gießen Friedberg, FB MNI Studiengang Informatik Nachname: Vorname: Matrikelnummer: Klausur Mikroprozessortechnik 14.9.2001 Punkteverteilung Aufgabe Punkte erreicht 1 3 2

Mehr

Mikrocomputertechnik mit dem Controller C167

Mikrocomputertechnik mit dem Controller C167 Mikrocomputertechnik mit dem Controller C167 Programmierung in Assembler undc Schaltungen und Anwendungen von Prof. Dipl.-Ing. Günter Schmitt Oldenbourg Verlag München Wien Inhaltsverzeichnis Vorwort 9

Mehr

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur

05. Assembler-Programmierung. Datenstrukturen des ATMega32. Literatur 0. Assembler-Programmierung Datenstrukturen des ATMega32 Literatur mikrocontroller.net avr-asm-tutorial.net asm Alles über AVR AVR-Assembler-Einführung Assembler AVR-Aufbau, Register, Befehle 2008: ouravr.com/attachment/microschematic/index.swf

Mehr

Prinzipien und Komponenten eingebetteter Systeme

Prinzipien und Komponenten eingebetteter Systeme 1 Prinzipen und Komponenten Eingebetteter Systeme (PKES) (2) Mikrocontroller I Sebastian Zug Arbeitsgruppe: Embedded Smart Systems 2 Veranstaltungslandkarte Fehlertoleranz, Softwareentwicklung Mikrocontroller

Mehr

Vorwort 8. Kap. 1: Grundlagen 10

Vorwort 8. Kap. 1: Grundlagen 10 Inhaltsverzeichnis Vorwort 8 Kap. 1: Grundlagen 10 1.1 Analogie zwischen der Spieluhr und einem Prozessor 10 1.2 Unterschiede zwischen Mikroprozessor und Spieluhr 11 1.3 Die Programmierung eines Mikroprozessors

Mehr

Komponenten eines Mikrocontrollers

Komponenten eines Mikrocontrollers MC 27.04.2017 Komponenten eines Mikrocontrollers - Zentraleinheit: CPU (Central Processing Unit): 4, 8, 16 oder 32 Bit Datenwortbreite - Arbeitsspeicher: RAM (Random Access Memory = Speicher mit wahlfreiem

Mehr

ZENTRALEINHEITEN GRUPPE

ZENTRALEINHEITEN GRUPPE 31. Oktober 2002 ZENTRALEINHEITEN GRUPPE 2 Rita Schleimer IT für Führungskräfte WS 2002/03 1 Rita Schleimer TEIL 1 - Inhalt Zentraleinheit - Überblick Architekturprinzipien Zentralspeicher IT für Führungskräfte

Mehr

9. Die Adressierungsarten des MSP 430

9. Die Adressierungsarten des MSP 430 9. Die Adressierungsarten 9.1 Übersicht über die Adressierungsarten 9.2 -Operanden 9.3 Indexregister mit Distanz 9.4 Symbolische (relativ zum ) 9.5 Absolute 9.6 Indirekte 9.7 Indirekte Adressierung mit

Mehr

13 Mikrocontroller Allgemeines

13 Mikrocontroller Allgemeines 222 13 Mikrocontroller 13.1 Allgemeines Bei einem Mikrocontroller (Abk. MC oder μc) sind die CPU, Speicher, Peripheriekomponenten und Interruptsystem auf einem Chip integriert. Ein Mikrocontroller kann

Mehr

Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie

Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie Mikrocomputertechnik mit Controllern der AtmelAVR-RISC-Familie Programmierung in Assembler und C - Schaltungen und Anwendungen von Prof. Dipl.-Ing. Günter Schmitt 4., korrigierte Auflage Oldenbourg Verlag

Mehr

3. Hardware CPLD XC9536 von Xilinx. CPLD / FPGA Tutorial

3. Hardware CPLD XC9536 von Xilinx. CPLD / FPGA Tutorial 3. Hardware 3.1. CPLD XC9536 von Xilinx Programmierbare Logikbausteine sind in unzähligen Varianten verfügbar. Die Baugrößen reichen von 20 bis 1704 Pins. Der Preis beginnt bei wenigen Euro für einfache

Mehr

Geräteentwurf mit Mikroprozessoren 1

Geräteentwurf mit Mikroprozessoren 1 Geräteentwurf mit Mikroprozessoren 1 Vorlesung am Institut für Elektronik der TU Graz Dipl.-Ing. Dr. Gerhard Stöckler SS 2003 Vorausgesetzte Kenntnisse: Grundlagen der Digitaltechnik Binäre Informationsdarstellung

Mehr

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005

Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005 Architektur der Intel 8051 Familie und Grundlegende Programmierung Reto Gurtner 2005 1 1. DIE GESCHICHTE DER 8051-MIKROCONTROLLERFAMILE 4 2. GRUNDLEGENDE HARDWARESTRUKTUR UND FUNKTIONSMODELL 5 2.1 HARDWARESTRUKTUR

Mehr

Von-Neumann-Architektur

Von-Neumann-Architektur Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..

Mehr

TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl

Mehr

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W,

1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W, 81 1 Aufgaben Wie funktioniert ein Computer Netzteil a) Welche Spannungen werden von PCNetzteilen bereitgestellt? 3 BV 5W 12W 5 V 12W b) Warum können PCNetzteile hohe Leistungen liefern obwohl die eingebauten

Mehr

Mikrocontrollertechnik

Mikrocontrollertechnik Matthias Sturm Mikrocontrollertechnik Am Beispiel der MSP430-Familie mit 102 Bildern und 44 Tabellen Fachbuchverlag Leipzig im Carl Hanser Verlag Inhaltsverzeichnis 1 Ein-Bit-Rechner 15 1.1 Rechenwerk

Mehr

2.5. Mikrocontroller-Komponenten

2.5. Mikrocontroller-Komponenten 2.5.6 DMA Für besonders schnellen Datentransfer können leistungsfähige Mikrocontroller Daten ohne Beteiligung des Prozessorkerns transportieren: DMA (Direct Memory Access) Ein DMA-Datentransfer kann stattfinden

Mehr

Intelligenter Modemadapter für den PC

Intelligenter Modemadapter für den PC Intelligenter Modemadapter für den PC Jürgen Hasch, DG1SCR, Meisenstr. 23, 73066 Uhingen Motivation Möchte man an einem PC mehrere Modems betreiben, so hat man die Wahl zwischen einer quasi-passiven Lösung

Mehr

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 2 Der Mikrocontroller Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 1 beschrieben. Auf dem Chip sind die, ein ROM- für das Programm, ein RAM- für die variablen

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)

Mehr

Mikrocomputertechnik

Mikrocomputertechnik Mikrocomputertechnik Thema: CPU Timing XC888 und Interrupt System des XC888 und Timer/Counter 0 und 1 -Im InterruptBetrieb - CPU Timing XC888 CPU Timing XC888 Befehl Befehl Befehl Befehlszyklus Befehlszyklus

Mehr

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium

Mehr