2. Hardware-Plattformen Hardware-Plattformen für eingebettete Systeme 2.1 Mikrocontroller 2.2 Systems on Chip (SoC) 2.3 Energiespartechniken 2.4 Java und Java-Prozessoren für eingebettete Systeme 2.5 Mikrocontroller-Komponenten 2.6 Mikrocontroller-Beispiele 2.7 Signalprozessoren 2.8 Signalprozessor-Beispiele 2.9 Analoge Schnittstellen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 1 2.1 Mikrocontroller Mikrocontroller: Mikrorechner auf einem Chip Für spezielle Anwendungsfälle zugeschnitten Meist Steuerungs- oder Kommunikationsaufgaben Anwendung oft einmal programmiert und für die Lebensdauer des Mikrocontrollers auf diesem ausgeführt Anwendungsfelder sind breit gestreut Oft unsichtbar in uns umgebenden Geräten verborgen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 2 2.1 Mikrocontroller Anwendungsfelder für eingebettete Systeme im Haushalt die Steuerung der Kaffeemaschine, der Waschmaschine, des Telefons, in der Automatisierung des Staubsaugers, das Steuern und Regeln von Prozessen, des Fernsehers, ... das Überwachen von Prozessen, das Regeln von Materialflüssen, die Steuerung von Fertigungs- und in der KFZ Technik Produktionsanlagen, ... das Motormanagement, das Antiblockiersystem, das Stabilitätsprogramm, die Traktionskontrolle, diverse Assistenten, z.B. beim Bremsen, ... Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 3 2.1 Mikrocontroller 2.1.1 Abgrenzung zu Mikroprozessoren Ein-Chip Mikrorechner mit aufgabenspezifischer Peripherie Mikrocontroller Prozessorkern RAM ROM EPROM EEPROM Ein/Ausgabesteuerung Unterbrechungssteuerung Zähler/Zeitgeber ... ... Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Takt Erweiterungsbusschnittstelle 4 2.1 Mikrocontroller Ziel: Möglichst wenige externe Bausteine für eine Steuerungsaufgabe Idealfall: Mikrocontroller, Quarz, Stromversorgung sowie ggf. Treiber und ein Bedienfeld Beispiel: Fernbedienung Infrarot- Mikrocontroller leuchtdiode Tastaturmatrix Quarz Spannungsversorgung Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 5 2.1 Mikrocontroller Schalenmodell eines Mikrocontrollers: Zähler / Zeitgeber serielle / parallele EA Kanäle Schreib-/Lesespeicher RAM Watchdog A/DWandler Prozessorkern EchtzeitKanäle ROM PROM EPROM Flash EEPROM DMA & Unterbrechungen Festwertpeicher Erweiterungsbus Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Ruhebetrieb 6 2.1 Mikrocontroller Prozessorkern: • prinzipiell kein Unterschied zum Kern eines Mikroprozessors • Kosten spielen jedoch meist die dominante Rolle => einfacher als der Kern eines Mikroprozessors Varianten: 1. Eigens für den Mikrocontroller entwickelter einfacher Kern Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 7 2.1 Mikrocontroller 2. Verwendung älterer Kerne von Mikroprozessoren • bewährte Technik, Kompatibilität, reduzierte Kosten • Leistungsvermögen meist ausreichend • Modifikationen: – Stromsparmodus – kein Cache – keine virtuelle Speicherverwaltung => Reduktion des Stromverbrauchs, Verbesserung des Echtzeitverhaltens Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 8 2.1 Mikrocontroller Speicher • integrierter Festwert- und Schreiblesespeicher • Aufnahme von Daten und Programmen • Vorteil: Einsparung von Anschlüssen und Decodierlogik bei vollständiger interner Speicherung • Größe und Typ des Speichers unterscheiden oft verschiedene Untertypen desselben Mikrocontrollers • z.B. je nach Stückzahl der Anwendung unterschiedlicher Typ des Festwertspeichers (ROM, PROM, EPROM, EEPROM, FLASH) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 9 2.1 Mikrocontroller Serielle und parallele Ein-/Ausgabekanäle • grundlegenden digitalen Schnittstellen eines Mikrocontrollers • seriell oder parallel • synchron oder asynchron AD/DA-Wandler • grundlegenden analogen Schnittstellen eines Mikrocontrollers • Anschluss analoger Sensoren und Aktoren • Auflösung und Wandlungszeit sind die wichtigsten Größen • AD-Wandler sind häufiger anzutreffen als DA-Wandler Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 10 2.1 Mikrocontroller Zähler und Zeitgeber • im Echtzeitbereich ein wichtiges Hilfsmittel • für eine Vielzahl unterschiedlich komplexer Anwendungen einsetzbar Bsp:- Zählen von Ereignissen, Messen von Zeiten kommen mit einem Zähler bzw. Zeitgeber aus - Pulsweitemodulation, Frequenz- oder Drehzahlmessung, Schrittmotorsteuerungen benötigen mehrere Einheiten => Die bei Mikrocontrollern verfügbare Bandbreite reicht von einfachen Up-/Downcountern über Capture-CompareEinheiten bis zu autonomen Zeitgeber-Coprozessoren Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 11 2.1 Mikrocontroller Watchdog • „Wachhund“ zur Überwachung der Programmaktivitäten eines Mikrocontrollers • Programm muss in regelmäßigen Abständen Lebenszeichen liefern • Bleiben diese aus, so nimmt der Wachhund einen Fehler im Programmablauf an => Reset Beispiel: Mars Sojourner Mission Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 12 2.1 Mikrocontroller Echtzeitkanäle • Echtzeiterweiterung der parallelen E/A-Kanäle • Kopplung eines parallelen Kanals mit einem Zeitgeber => der Ein-/Ausgabezeitpunkt wird von der Hardware und nicht der Software bestimmt => Jitterfreie Ein-/Ausgabe Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 13 2.1 Mikrocontroller Unterbrechungen (Interrupts) • Unterbrechung des Programmablaufs bei Ereignissen • Schnelle, vorhersagbare Reaktion auf Ereignisse • Insbesondere wichtig bei Echtzeitanwendungen • Behandlung eines Ereignisses durch eine Interrupt-Service- Routine • Mikrocontroller kennen meist externe Unterbrechungsquellen (Eingangssignale) und interne Unterbrechungsquellen (Zähler, Zeitgeber, E/A-Kanäle, ...) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 14 2.1 Mikrocontroller DMA (Direct Memory Access) • Direkter Datentransfer zwischen Peripherie und Speicher ohne Beteiligung des Prozessorkerns • Höhere Datenraten durch spezielle Transferhardware • Entlastung des Prozessorkerns • Prozessorkern muss lediglich die Randbedingungen des Transfers festlegen • Meist in Mikrocontrollern gehobener Leistungsklasse zu finden Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 15 2.1 Mikrocontroller Ruhebetrieb (Standby Mode) • Oft begrenzter Energievorrat oder Wärmeemission bei Mikrocontroller-Anwendungen • Ruhebetrieb zur Reduktion des Energieverbrauchs • Abschaltung nicht benötigter Peripheriekomponenten und Festwertspeicher • Erhaltungsspannung am Schreib-/Lesespeicher • Statische Prozessorkerne erlauben einen Takt von 0 Hz Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 16 2.1 Mikrocontroller Erweiterungsbus • Reichen die internen Komponenten eines Mikrocontrollers für eine Anwendung nicht aus => Erweiterungsbus zum Anschluss externer Komponenten • Ein Bus benötigt viele Anschlüsse (z.B. 16-Bit-Adressen, 8-BitDaten, 4 Steuersignale = 28 Anschlüsse) => – Multiplexing (z.B. Daten-/Adressmultiplexing: Daten und Adressen teilen sich die gleichen Leitungen) – Bus muss sich Anschlüsse mit internen Peripheriekomponenten teilen (Ressourcenkonflikt) – Stufenweise Reduktion des Adressraums Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 17 2.1 Mikrocontroller 2.1.2 Anwendungsfelder Beispiel Automatisierungstechnik Anforderungen: Schnittstellenvielfalt, Echtzeitverhalten, Zuverlässigkeit, Energieverbrauch, ... Mikrocontroller werden im wesentlichen dann angewendet, wenn lokale Intelligenz mit möglichst geringen Aufwand (Kosten, Platzbedarf, Strombedarf, ...) realisiert werden muß Anwendungsfelder in der Automatisierung: • Prozesssteuerung • Steuerung von Bedienelementen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 18 2.1 Mikrocontroller 2.1.2.1 Prozesssteuerung Vor Ort z u a u t o m a t i s i e r e n d e s S y s t e m lokale, schnelle MSR-Einrichtung mit Mikrocontroller Sensoren Aktoren räumlich entfernt Verbindungsnetzwerk (hierarchisch oder verteilt), z.B. Feldbusse lokale, schnelle MSR-Einrichtung mit Mikrocontroller Sensoren Aktoren . . . Sensoren Aktoren Prozessleitrechner (Mikrorechner) Verbindungsnetzwerk (hierarchisch oder verteilt), z.B. Ethernet Dispositions- & Visualisierungsrechner (Mikrorechner) Prozessleitrechner (Mikrorechner) lokale, schnelle MSR-Einrichtung mit Mikrocontroller Sensor-/AktorProzessebene ebene Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte System- & Leitebene Betriebsebene 19 2.1 Mikrocontroller Messen, Stellen, Regeln Realisierung schneller Vor-Ort-Meß-, Stell-, und Regeleinrichtungen • Messen: Erfassen von analogen und digitalen Sensordaten Umrechnung von elektrischen in physikalische Werte nach vorgegebenen Kennlinien Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 20 2.1 Mikrocontroller Beispiel: Kennline eines Temperatursensors Temperatur Thermofühler Spannung T e m p e r a t u r Thermofühler [C] Spannung [mV] Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 21 2.1 Mikrocontroller • Messen (fortg.): Linearisierung von nichtlinearen Sensoren Korrektur von Meßfehlern, z.B. Nullpunktfehler, TemperaturDrift, ... Datenerfassung von multiplen Sensoren (z.B. Druck, Temperatur, ...) Auswerten der erfassten Daten Datenkompression und -weiterleitung Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 22 2.1 Mikrocontroller Beispiel: temperaturkompensierte Druckmessung PO1 Mikrocontroller TxD, RxD zum Leitrechner AI0 AI1 VCC Temperatur-Sensor Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Druck-Sensor 23 2.1 Mikrocontroller • Stellen: Umrechnung von physikalischen in elektrische Werte nach vorgegebenen Kennlinien Heizelement Strom Heizelement Temperatur S t r o m [mA] Temperatur [C] Linearisierung nichtlinearer Aktoren Ausgabe digitaler und analoger Steuerdaten an die Aktoren Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 24 2.1 Mikrocontroller Beispiel: Ansteuerung zweier analoger Aktoren TxD, RxD Mikrocontroller zum Leitrechner AO0 AO1 Heizelement Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Schieber 25 2.1 Mikrocontroller Wandlungskette beim Messen und Stellen Messen: Sensor Physikalische Größe Elektrische Größe Stellen: Aktor Physikalische Größe Kennlinienberechnung, Linearisierung, Korrektur Korrigierter Digitaler Wert digitaler Wert EingabeSchnittstelle Kennlinienberechnung, Linearisierung, Korrektur Korrigierter Digitaler Wert digitaler Wert AusgabeSchnittstelle Elektrische Größe Aufgabenbereich des Mikrocontrollers Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 26 2.1 Mikrocontroller Problem: Zusammenhang von elektrischer Eingangsgröße und physikalischer Ausgangsgröße oft von Störgrößen beeinflusst Beispiel: Drehzahl eines Motors hängt von der elektrischen Spannung und der Last ab Lösung: Kombination von Messen und Stellen => Regeln Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 27 2.1 Mikrocontroller • Regeln: Messen des Istwertes Soll-/Istwertvergleich (Regelabweichung) Ermittlung der Stellgröße (Regelalgorithmus, z.B. P, PI, PID, Fuzzy, Neuronal, ..) => Rückführung (geschlossener Regelkreis) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 28 2.1 Mikrocontroller Ein Regelkreis mit einem Mikrocontroller: Mikrocontroller Sollwerte LeitRechner Istwerte Regler (Regelalgorithmus, Stellgrößen z.B. PI, PID, ...) Aktoren Regelstrecke (zu regelndes System) Sensoren Messgrößen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 29 2.1 Mikrocontroller 2.1.2.2 Steuerung von Bedienelementen Beispiel: Steuerung eines einfachen Handterminals Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Soll-Temperatur: 20 Anstiegszeit: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 0 + - = 30 2.1 Mikrocontroller Realisierung: (möglichst wenige externe Komponenten) serieller Port TxD, RxD Mikrocontroller zum Leitrechner parallele Eingabeports paralleler Ausgabeport 8888888888888 LCD-Anzeige Tastaturmatrix Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 31 2.1 Mikrocontroller 2.1.3 Leistungsklassen und Familien Leistungsklasse eines Mikrocontrollers: wird vom Prozessorkern bestimmt. Datenbusbreite ist hier ein wesentliches Merkmal => 8-Bit-, 16-Bit-, 32-Bit-Mikrocontroller Anmerkung: bezeichnet bei Mikrocontrollern oft nur die Breite des internen Datenbusses und der Register Breite des Erweiterungsbusses meist schmäler Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 32 2.1 Mikrocontroller Mikrocontrollerfamilie: Menge von Mikrocontrollern mit gleichem Prozessorkern, aber unterschiedlicher Peripherie und unterschiedlichem Speicher => Anwendungsorientierte, kostenoptimale Lösungen werden möglich Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 33 2.1 Mikrocontroller Beispiel: Intel Mikrocontrollerfamilien: Familie Intel 8 Bit MSC51 MSC251 Intel 16 Bit MSC96 MSC296 Intel 32 Bit PXA Festwertspeicher (KBytes) Schreiblese -speicher (Bytes) Zeitgeber (Anzahl) Serielle E/A (Anzahl) AD-Wandler (Anzahl x Bit) Takt (MHz) 4 - 32 0 - 16 128 - 512 512 - 1024 2-4 4 0-1 1-2 (0-4) x 8 - 12 - 33 16 - 24 32 - 56 - 1K - 1,5K 2K 3 2 1-2 1 (6-8) x (8-10) - 20 - 50 50 64 - 256K 3 - 11 8 - 10 - - Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 200 - 520 34 2.1 Mikrocontroller Namensgebung der MSC51/251 Familie: X X 8 X C X 1 XX – X Taktfrequenz in MHz (zB. 16 = 16 MHz) Peripherie- und Speicher Ausstattung (z.B. BH oder FA oder FB oder ...) Interner Festwert-Speicher: 3 = nein, 5 = ja Festwert-Speicher Typ: 0 = keiner/ROM, 3 = ROM, 7 = EPROM Gehäuse-Form: P = Plastik Dual Inline (DIP), N = Plastik Leaded Chip Carrier (PLCC) Temperatur-Bereich: leer = 0° bis 70°, T/L = -40° bis +85°, A/B = -40° bis +125° Namensgebung MCS51 Familie X X 8 X C 251 XX – X Taktfrequenz in MHz (zB. 16 = 16 MHz) Peripherie- und Speicher Ausstattung (z.B. BH oder FA oder FB oder ...) Interner Festwert-Speicher Typ: 0 = keiner, 3 = ROM, 7 = EPROM Gehäuse-Form: P = Plastik Dual Inline (DIP), N = Plastik Leaded Chip Carrier (PLCC) C = Keramik DIP Temperatur-Bereich: leer = 0° bis 70°, T = -40° bis +85° Namensgebung MCS251 Familie Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 35 2.1 Mikrocontroller Beispiele: TP87C251SB-16: 251-Familie, 16 MHz, internes EPROM, Plastik DIP, -40 ... + 85 °C TP83C251SB-16: 251-Familie, 16 MHz, internes ROM, Plastik DIP, -40 ... + 85 °C TP80C251SB-16: 251-Familie, 16 MHz, kein interner Festwertsp., Plastik DIP, -40 ... + 85 °C Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 36 2.1 Mikrocontroller PXA: ARM Version 5 RISC Prozessorkern Vertreter: • PXA210 (obsolet) • PXA250 (obsolet) • PXA26X (obsolet) • PXA255 (pinkompatibel zu PXA250) • PXA27X (270, 271, 272) • PXA29X Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 37 2.1 Mikrocontroller Beispiel: Atmel Mikrocontrollerfamilien: Familie Festwertspeicher (KBytes) Atmel 8 Bit AVR 8 1 - 256 MSC51 komp. 2 - 128 Atmel 32 Bit AVR 32 ARM 0 - 256 Schreiblese -speicher (Bytes) Zeitgeber (Anzahl) Serielle E/A (Anzahl) AD-Wandler (Anzahl x Bit) Takt (MHz) 128 - 8k 256 - 2k 2 2-4 1-2 0-3 (1 - 16) x 10 (0-8) x (8-0) 16 - 20 40 - 60 64k 8K - 96K 6 6-9 10 4-6 1 x 16 8 x 10 133 33-190 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 38 2.1 Mikrocontroller Die Mitglieder der AVR8 Familie: ATtiny1X 2X 4X 8X Grundmodelle mit 1, 2, 4 oder 8 kBytes ROM. Je nach X unterschiedliche Versionen, z.B. ATtiny11 mit 6 MHz, ATtiny12 mit 8 MHz und ATtiny13 mit 20 MHz Taktfrequenz. ATmega 8X 16X 32X 64X 128X 256X AT90X Erweiterte Modelle mit 8 bis 256 kBytes ROM. Je nach X unterschiedliche Varianten, z.B. ATmega128 mit 4 kBytes RAM und ATmega1280 mit 8 kBytes RAM AT94X Spezialversionen, z.B. AT90CAN128 mit CAN-Bus-Einheit oder AT90PWM1 mit Pulsweitenmodulator Enthält programmierbare Logik (FPGA) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 39 2.1 Mikrocontroller Beispiel: Freescale Mikrocontrollerfamilien (ehem. Motorola): Familie Freescale 8 Bit RS08 HC08 HCS08 Freescale 16 Bit S12 HC12 HC16 Freescale 32 Bit MCore I.MX(ARM) 68k/Coldfire MPC5XXX Festwertspeicher (KBytes) Schreiblese -speicher (Bytes) Zeitgeber (Anzahl) Serielle E/A (Anzahl) AD-Wandler (Anzahl x Bit) Takt (MHz) 1-2 8 - 64 4 - 64 63 256 - 2K 256 - 4K 1 2-8 0-8 0-4 0 -3 (6-24) x (8-10) (0-16) x 10 10 4-8 8 - 20 16- 512 32 - 130 0-8 2K - 32K 1K - 8K 1K - 4K 1 - 12 8 4, TPU 1-6 2-6 1-2 (8-24) x 10 8 x (8-10) 8 x 10 16 -40 8 - 25 16 - 25 0 - 256 256 - 1024 0 - 256 0 - 1024 8K - 32K 16K - 48K 0 - 32K 26K - 36K 0-4 16 2-16,TPU 7-70,TPU 3 1-4 1 - 3, CP 5-9 (0-8) x 10 (16-32) x 10 (0-16) x 10 (32-40) x 10 16 - 33 40 - 50 16-200 40-400 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 40 2.1 Mikrocontroller Mitglieder der 68k/ ColdfireFamilie: 68k MC68302 MC68306 MC68331 MC68332 MC68336 MC68340 MC68360 MC68376 MC68VZ328 (DragonBall VZ) MC68SZ328 (DragonBall Super VZ) Multi-Protokoll-Prozessor, für Kommunikationsaufgaben optimiert, autonomer Kommunikations-Prozessor (CP) Economie-Prozessor, integrierter Controller für dynamischen Speicher Für Steuerungsaufgaben optimierter Controller, umfangreiche Peripherie Für Steuerungsaufgaben optimierter Controller, gegenüber dem 68331 verbesserter Prozessorkern und autonomer Zeitgeber Coprozessor (TPU) Integrierter SRAM Controller Integrierter DMA-Controller Integrierter DMA- und InterruptController CAN-Bus Interface Integrierter LCD Controller Erhöhte Geschwindigkeit, integrierte DA-Wandler Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 41 2.1 Mikrocontroller Mitglieder der 68k/ ColdfireFamilie (fortg.): ColdFire MCF520 MCF525 MCF532 MCF540 MCF548 Hochleistungsmikrocontroller, flexible Speicherverwaltung, Ethernetunterstützung Controller/Decoder für Audioplayer Mensch-MaschineSchnittstellenunterstützung, LCD, Ethernet, USB, Verschlüsselung Höchste Verarbeitungsleistung (316 MIPS) Für vernetzte Steuerungsaufgaben, CAN, Ethernet, USB, Verschlüsselung Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 42 2.1 Mikrocontroller Beispiel: NEC Mikrocontrollerfamilien: Familie NEC 8 Bit K0S K0 NEC 16 Bit K0R NEC 32 Bit V850 V850ES V850E V850E2 Festwertspeicher (KBytes) Schreiblese -speicher (Bytes) Zeitgeber (Anzahl) Serielle E/A (Anzahl) AD-Wandler (Anzahl x Bit) Takt (MHz) 1 - 24 8 - 128 128 - 512 512 - 7168 2-4 5-6 0-2 0-5 (0-8) x (8-10) (4-10) x (8-10) 5 - 10 20 4K - 12K 8 4 16 x 10 20 4K - 24K 6K - 48K 4k - 146k 146k 2 - 12 6 - 11 0 - 24 12 5 - 10 2-4 4-9 4 (12 - 16) x 10 (8 - 24) x 10 (0-24) x (8-10) 8 x 10 20 20 40-150 200 64 - 256 64 - 512 64 - 640 0 - 512 0 Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 43 2.1 Mikrocontroller Beispiel: Infineon Mikrocontrollerfamilien: Familie Infineon 8 Bit C500 C800 XC800 Infineon 16 Bit C166 XC166 Infineon 32 Bit TriCore Festwertspeicher (KBytes) Schreiblese -speicher (Bytes) Zeitgeber (Anzahl) Serielle E/A (Anzahl) AD-Wandler (Anzahl x Bit) Takt (MHz) 16 - 64 8 8 - 32 256 - 2k 8k 768 – 2k 3-7 3 4 1-2 1 2-3 8 x 10 5x8 8 x 10 20 40 24 - 27 0 - 32 128 - 256 1K - 3K 8k - 12k 1-5 5 2 4 (0-8) x 10 (12 - 16) x 10 24 40 0-6 0-5 (0-32) x (8-12) 96-150 16-1,5M 128K-1,5 M Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 44 2.1 Mikrocontroller 2.1.4 Auswahlkriterien für den Einsatz von Mikrocontrollern (aus der reichhaltigen verfügbaren Palette) Aufgabenstellung Messen Steuern Regeln Überwachen Mensch-Maschine-Schnittstelle Kombination obiger Punkte Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 45 2.1 Mikrocontroller allgemeine Leistungsmerkmale CISC- oder RISC-Architektur Von-Neumann oder Harvard-Architektur Wortbreite (4, 8, 16, 32 Bit) Adressraum Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 46 2.1 Mikrocontroller Architekturmerkmale des Prozessorkerns Welche Befehlsarten stehen zur Verfügung/werden benötigt ? Lade- und Speicher-Operationen logische & arithmetische Operationen Multiplikation & Division Schiebeoperationen, Barrel-Shifter Bit-Testoperationen Gleitkomma-Operationen Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 47 2.1 Mikrocontroller Architekturmerkmale des Prozessorkerns (fortg.) Welche Adressierungsarten sind erforderlich? Unmittelbar Direkt Register Registerindirekt Registerindirekt mit Autoinkrement, Autodekrement Registerindirekt mit Verschiebung Indiziert Indiziert mit Verschiebung Relativ komplexere Adressierungsarten Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 48 2.1 Mikrocontroller Architekturmerkmale des Prozessorkerns (fortg.) Welche Datenformate werden benutzt ? Ganzzahlen (16, 32, 64 Bit) Gleitkommazahlen (32, 64, 80 Bit) Einzelbit-Datentypen Zeichen und Zeichenketten Felder Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 49 2.1 Mikrocontroller Speichermerkmale Wieviel Programm- und Datenspeicher benötigt die Anwendung? Reicht die Größe des internen Daten- und Programmspeichers? Ist ein externer Busanschluss vorhanden? Was ist die max. externe Speichergröße? Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 50 2.1 Mikrocontroller Peripheriemerkmale Anzahl der: parallelen E/A-Kanäle seriellen E/A-Kanäle Interrupt-Eingänge Zähler/Zeitgeber A/D-Wandler D/A-Wandler DMA-Controller Echtzeitkanäle speziellen Peripherie wie CAN, I2C, ... Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 51 2.1 Mikrocontroller Merkmale zur Ereignisbehandlung die Anzahl der Unterbrechungseingänge, eine Prioritäten-Steuerung bei mehrfachen Unterbrechungen, frei wählbare oder starre Prioritäten, das Sperren einzelner Unterbrechungen und die Reaktionszeit auf eine Unterbrechung. Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 52 2.1 Mikrocontroller Weitere technische Merkmale Taktfrequenz Taktzyklen pro Befehl Möglichkeit zum Anschluss langsamer Peripherie Energiebedarf Abwärme Stromspar-Modus Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 53 2.1 Mikrocontroller Ökonomische Merkmale Preis Verfügbarkeit Produktpflege Kundenunterstützung (Support) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 54 2.1 Mikrocontroller 2.1.5 Softwareentwicklung In der Regel: Quelldateien Versions-Verwaltung freigegebene Quelldateien Cross-Development integrierte Entwicklungsumgebung Editor geänderte Quelldateien Übersetzer Objekt-Dateien Symbole Binder Test Debugger Anwendungsprogramm Ausführbare Datei Entwicklungssystem: PC Download Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte Zielsystem: Mikrocontroller 55 2.1 Mikrocontroller Da die Entwicklung bis auf den letzen Schritt auf einem leistungsfähigen PC stattfindet => die Entwicklungsumgebung ist zunächst ähnlich zur PCProgrammentwicklung: Versionsverwaltung, Editoren, Übersetzer, Debugger Es gibt jedoch Unterschiede! Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 56 2.1 Mikrocontroller Programmiersprachen - Früher Assembler - heute meist C, nur zeitkritische Teile in Assembler - bei leistungsfähigeren Mikrocontrollern auch C++, erfordert aber mehr Ressourcen und erzeugt mehr Dynamik - Java in der Regel zu ressourcen-intensiv - Es existieren jedoch einige Forschungsbemühungen in diese Richtung (siehe später) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 57 2.1 Mikrocontroller Speicherbedarf - hier liegt ein wesentlicher Unterschied zur Programmentwicklung auf dem PC - bei Mikrocontrollern ist Speicher eine knappe Ressource - Übersetzer optimieren meist in Richtung Speicherbedarf (selten Geschwindigkeit) - Speichersparende Algorithmen sind gefragt - Algorithmen, die vor 10-20 Jahren für den PC entwickelt wurden, können hier interessant werden (zu dieser Zeit hatten PCs etwa den Speicherumfang heutiger Mikrocontroller) Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 58 2.1 Mikrocontroller Adressfestlegung beim Binden - bei PCs: dynamische Adressfestlegung zur Laufzeit - nur so können mehrere Programme gleichzeitig bearbeitet werden - bei Mikrocontrollern: statische Festlegung der Adressen beim Binden (Locator) - Die Adressen müssen an das Speicherabbild (Memory Map) des Mikrocontrollers angepasst werden: Programm -> Festwertspeicher Daten -> Schreiblesespeicher Erste Programm-Instruktion, Interrupttabellen, ... , müssen an die richtige Stelle gelegt werden Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 59 2.1 Mikrocontroller Beispiel einer 0 Code, Größe 3217 Bytes Einsprungadresse 0 Memory Map 4 KByte Festwertspeicher 0FFF unbelegt 8000 8BFF Daten, Größe 625 Bytes 3 KByte Schreib-/Lesespeicher Stack, Größe 325 Bytes unbelegt FE00 Peripherie FFFF Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte E/A-Adressbereich 60 2.1 Mikrocontroller Laden und Testen – Simulator auf dem Entwicklungssystem grober Test, da Zeitverhalten anders und Zielperipherie nicht vorhanden – Test auf dem Zielsystem mittels Download und Monitor näher am Zielsystem (Zeitverhalten, Peripherie), immer noch komfortables Testen, Monitor verändert aber Systemverhalten (Initialisierungen, Speichertypen, ...) – Test auf dem Zielsystem ohne Monitor endgültige Zielumgebung, Programm im Festwertspeicher (ext. Programmieren oder Flash-Code-Loader), Ladezeiten lang, Test schwierig Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 61 2.1 Mikrocontroller Entwicklungs-PC MikrocontrollerSimulator (Software) Download, z.B. über serielle Schnittstelle Download o. Programmieren von int. oder ext. EPROMs, Flash-RAMs, ... PC-Interface MikrocontrollerTestsystem Mikrocontroller Contr. DebugMonitor MikrocontrollerZielsystem HW-Interface Ziel-Hardware Test-Hardware Goethe-Universität Frankfurt am Main – Lehrstuhl für Eingebettete Systeme - Prof. Dr. U. Brinkschulte 62