10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 MIKROPROZESSOR PROGRAMMIERUNG 3. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 HINTERBERGER M. 2007 Mikrocomputersysteme auf einem Chip → Mikrocontroller – Begriffsdefinitionen – CISCCISC- und RISC Cores – Businterface Digitale Signalprozessoren DSP – Begriffsdefinitionen – Gegenü Gegenüberstellung DSP - µC – Konvergente Prozessoren „Embedded Systems“ Systems“ - Auswahlkriterien fü für Mikroprozessoren/Mikrocontroller – Preis/Leistung (niedrige Gesamtkosten ↔ hohe Rechenleistung) – Entwicklungsumgebung – „Time to Market“ Market“ – Energieverbrauch – Platzbedarf – .... 5. Vorlesung Grundlagen der Mikroprozessortechnik – Begriffsdefinitionen – Central Processing Unit (CPU), Register, ArithmetischArithmetisch-logische Einheit (ALU), Flags, Steuerwerk … – Systembus, Adressbus, Datenbus, Steuerbus … – Wartezyklen, Zeitmultiplexe Bussignale – Mikrocontrollerarchitekturen (Von(Von- Neumann Architektur, Harvard Architektur) – Maschinenbefehle – Ablauf der Befehlsabarbeitung – BefehlsBefehls-Pipeline – Adressierungsarten 4. Vorlesung Einführung und Motivation – Der Einsatz von Mikroprozessoren – Mikroprozessoren/Mikrocontroller Herstellerüberblick – Historische Entwicklung – Ein Chip entsteht … Video – Entwicklung der Intel Prozessoren – Vorführung bzw. Demonstration diverser MikrocontrollerMikrocontroller- StarterKits restliche Vorlesungen 3. Vorlesung 2. Vorlesung 1. Vorlesung Gliederung der Lehrveranstaltung Speicherorganisation und Halbleiterspeicher – ROM – PROM/OTP (One Time Programmable) Programmable) – EPROM (Erasable (Erasable Programmable ROM) – EEPROM ( Electrically EPROM) – Flash Speicher – SRAM (Statischer RAM) – DRAM (Dynamischer RAM) – … Periphere Systemkomponenten – Interrupt System – Externer Bus – Parallele Ports – Serielle Ports – Timer – Einheit (GPT) – Capture/ Capture/Compare Einheit (CAPCOM) – Analog/Digital Umsetzer – Digital/Analog Umsetzer – PWM Module – Reset – Watchdog – Stromsparmodi Bussysteme – CAN Bus – I²C BUS – USB Bus Einfü Einführung in die „embedded“ embedded“ C-Programmierung – Aufbau und Struktur eines C Programmes – Assembler/Linker – C-Compiler fü für Mikrocontroller – Programmentwicklung und Debugging/Simulation Detaillierte Analyse eine 1616-Bit Mikrocontrollers Demonstration mehrerer Applikationsbeispiele Softwareentwicklung Entwicklungstrends 2 INSTITUT FÜR ELEKTRONIK 1 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Der Befehlssatz (Instruction Set) eines Prozessors umfasst alle binären Maschinenbefehle, die er ausführen kann. Er wird vom Hersteller bei der Fertigung implementiert. Der Befehlssatz ist in seinem Aufbau an die Struktur der CPU angepasst und ermöglicht die Ansprache aller vorhandenen Ressoucen Typische Befehlsgruppen: • Arithmetische Befehle. Sie dienen der numerischen Verarbeitung und umfassen Addition, Subtraktion und Vergleich zweier Operanden • Logische und Bitmanipulationsbefehle. Sie erlauben die logische Verknüpfung von Bitgruppen, das Setzen, Löschen, Invertieren und Testen einzelner Bits sowie die Verschiebung und Rotation von Bitstellen • Transportbefehle. Diese dienen dem Datenverkehr zwischen Registern, Speicherstellen und I/O Ports. • Programmsteuerbefehle. Diese bewirken eine Änderung des Programmflusses. Mit ihrer Hilfe kann die normalerweise linear aufeinanderfolgende Befehlsbearbeitung durchbrochen werden. Zu ihnen gehören Sprünge sowie Befehle zum Aufruf und zum Abschluss von Unterprogrammen • Prozessorsteuerbefehle. Sie beeinflussen die Arbeitsweise des Prozessors und dienen z.B. der gezielten Veränderung einzelner Flags, der Steuerung des Interruptsystems sowie der Aktivierung spezieller Betriebsarten (z.B. Stromsparmodi) Jeder Befehl besitzt ein in der Regel festgelegtes, reproduzierbares Zeitverhalten. Dieses wird durch die intern abzuarbeitenden Teilschritte bestimmt und in Takte pro Befehl (Clocks per Instruction CPI) gemessen. 3 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Adressierungskonzepte: Als Adressierungsart (Addressing Mode) wird der Algorithmus bezeichnet, der aus einer im Programm gegebenen Information den tatsächlichen Ort berechnet, an dem sich das Datum befindet oder gespeichert werden soll. Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen (=adressieren). Diese Möglichkeiten bezeichnet man als Adressierungsarten • Registeradressierung: Ziel der Adresse ist ein Register im Prozessor. Die Adresse des Registers wird direkt angegeben. • Absolute Adressierung: Ziel der Adresse ist eine Speicherzelle im Hauptspeicher. Die Adresse der Speicherzelle wird direkt angegeben. • Relative Adressierung: Ziel der Adresse ist eine Speicherzelle im Hauptspeicher. Zur übergebenen Adresse wird der Wert des Spezialregisters PC (program counter) als Offset hinzuaddiert. • Indirekte Adressierung: Ziel der Adresse ist eine Speicherzelle im Hauptspeicher. Die übergebene Adresse verweist auf ein Register, in dem wiederum die Adresse des eigentlichen Ziels im Hauptspeicher abgelegt ist. • Indizierte Adressierung: Ziel der Adresse ist eine Speicherzelle im Hauptspeicher. Übergeben werden zwei Adressen. Die erste verweist auf ein Register, in dem ein Wert abgelegt ist. Dieser Wert wird als Offset zur zweiten Adresse hinzuaddiert, das Ergebnis ist die Adresse des Ziels im Hauptspeicher. • Direkte Adressierung: HINTERBERGER M. 2007 Bei dieser Adressierungsart wird die Speicheradresse bei jedem Befehl direkt und vollständig angegeben. Die Gesamtheit der möglichen Adressen bildet den Adressbereich dieser Adressierungsart. 4 INSTITUT FÜR ELEKTRONIK 2 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Ein Mikrocontroller (Microcontroller) ist ein vollständiges Mikrocomputersystem auf einem Chip. Mikrocontrollerkern (Core), Speicher, Peripheriekomponenten und Interrupt-System sind gemeinsam auf einem Chip integriert und über einen bzw. mehrere Busse miteinander verbunden µC Mikrocontroller werden auch als Single-Chip-Mikrorechner, Einchip-Mikrorechner, Einchip-Rechner oder Einchip-Mikrocomputer bezeichnet ! 5 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip µC - EINSATZ • Anfänglich für den Einsatz bei programmierbaren Steuerungen in der Industrieautomatisierung (z.B. SPS) • Einsatz im KFZ, in der Telekommunikation, in Haushaltsgeräten, in der Medizintechnik, bei Chipkarten, bei Gebäudeautomatisierung, … • µC sind in einer großen Preis- und Leistungsbandbreite verfügbar • µC´s ermöglichen kostensensitive Lösungen auch für hochkomplexe und anspruchsvolle Aufgabenstellungen • µC sind das dominierende Bauelement im „Embedded- Control- Bereich“ 6 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 3 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Standardmikrocontroller (Standard Mikrocontroller) lassen sich keinem bestimmten Marktsegment zuordnen und sind in Abhängigkeit von ihrem Design relativ universell einsetzbar Kundenorientierte Mikrocontroller (Custom Mircocontroller) sind jeweils für ein bestimmtes Marktsegment zugeschnitten, werden im Kundenauftrag für konkrete Projekte in hohen Stückzahlen gefertigt und sind nur mit Einschränkungen universell verwendbar On-Chip-Komponenten stellen die Gesamtheit der integrierten Funktion eines Mikrocontrollers dar. Diese Funktionalität erstreckt sich vom Mikrocontrollerkern (Core) über Speicherkomponenten bis hin zur On-Chip-Peripherie 7 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Complex Instruction Set Computing - CISC Complex Instruction Set Computing (CISC), zu deutsch Rechnen mit komplexem Befehlssatz, ist eine bestimmte Designphilosophie für Prozessoren. Ein CISC Prozessor ist ein Prozessor mit komplexem Befehlssatz. Ein CISC-Befehlssatz zeichnet sich durch verhältnismäßig leistungsfähige Einzelbefehle aus, die komplexe Operationen durchführen können, aber dafür langsamer als RISC Befehle sind. sehr codeeffizient aufgrund komplexer Operationen innerhalb eines eines Befehls dadurch Reduktion der Anzahl der erforderlichen Befehle Jeder Befehl ist ein eigenes Mikroprogramm im ROMROM-Speicher eines CISCCISC-Prozessors Der Mikrocode wird der Reihe nach ausgeführt. Alle anderen Anweisungen Anweisungen müssen solange auf die Ausführung warten Einige der Anweisungen benötigen mehrere Arbeitsschritte, was sehr sehr viel Zeit kostet. → dadurch oft teuer, langsamer und nicht engeriearm CISC-Prozessoren/Mikrocontroller: • 808x und 80x86 von Intel • 680x0 von Motorola • Philips 8xC51 • Infineon C166 • Motorola HC12 • NEC µCOM75X • Renesas H8SX/1650 • …. HINTERBERGER M. 2007 8 INSTITUT FÜR ELEKTRONIK 4 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Reduced Instruction Set Computing - RISC Reduced Instruction Set Computing (RISC), zu deutsch Rechnen mit reduziertem Befehlssatz, ist eine bestimmte Designphilosophie für Prozessoren. Ein RISC Prozessor ist ein Prozessor mit reduziertem Befehlssatz. Ein RISC-Befehlssatz verzichtet zugunsten einer hohen Ausführungsgeschwindigkeit und eines niedrigeren Decodierungsaufwands auf Seiten der CPU, konsequent auf komplexe Befehle, wodurch die Ausführung schneller als bei einem CISC-Befehlssatz ist. Feste Befehlslä Befehlslängen, dadurch weniger Taktzyklen im Vergleich zu CISC zur Ausfü Ausführung notwendig Reduzierte Komplexitä Komplexität bei der Befehlsausfü Befehlsausführung Einfache Arithmetik, Datenaustausch innerhalb der CPUCPU-Register und Datenspeicher Befehlsausfü Befehlsausführung innerhalb eines Taktes sehr oft mö möglich Weniger CPU – Hardware erforderlich, folglich Kosten und Energieeinsparung → für gleiche Operationen mehr Befehle notwendig als bei CISC Reduzierung des Befehlssatzes RISC-Prozessoren/µC: die wichtigsten Befehlsfolgen sind fest verdrahtet • Commodore C64 (6510 MOS) • Microchip PIC16CXXX mehrere getrennte interne Bussysteme • Atmel AT90SXX von einander unabhängige Verarbeitungseinheiten • TI MSP430 Pipelining (Parallelverarbeitung bestimmter Befehle) • Renesas H8/300H … uvm. einfache Schaltungen, dadurch schnellere Ausführung Praktisch ist heute „jeder“ Prozessor ein RISCRISC-Prozessor, oder er hat zumindest RISCRISC-Elemente in sich. RISCRISC-Prozessoren sind im wesentlichen billiger herzustellen, kleiner und von der Verschaltung her überschaubarer. 9 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Besonderheiten vieler Mikrocontroller: Ein erweiterter und optimierter Befehlssatz, welcher Bitmanipulationen und ein einfaches Ansprechen der OnOn- ChipChip- Peripherie ermöglicht Erweiterte Adressierungsarten mit entsprechenden Zeigerregistern Umfangreiche Maßnahmen zur Reduzierung der Stromaufnahme, insbesondere durch Sicherstellung der CoreCore- Funktionalität auch bei sehr niedrigen Betriebsspannungen Großer möglicher Betriebsspannungsbereich Programmierbares Businterface zur flexiblen Anschaltung externer Erweiterungskomponenten Zusätzliche DSP Funktionalität (z.B. MAC Einheit) EMVEMV- Beständigkeit 10 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 5 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Eigenschaften moderner Mikrocontroller: Hohe Prozessorleistung – – – – – Effiziente Adressierungsarten kompakter und effizienter Befehlsumfang RAM und Flashspeicher, InIn-System programmierbar Vektorinterruptsystem (Verschachtelung möglich) Parallelität (Pipeline) Low Power – – – 1,8V – 3,6V (5V) Programmierbarer Taktgenerator (Flankensteilheit) Low Power 0,1 – 400µA Stromverbrauch möglich Peripheriekomponenten – – – Viele Interruptmöglichkeiten Vielfälltigkeit (ADC, CAPCOM, Timer, PWM, RS232, CAN …) Security & Savety features -> wie Watchdog, Watchdog, FuseFuse-Bits für Flashspeicher Entwicklungswerkzeuge – Assembler, C/C++/Java Compiler, Linker, Simulation, Debug, Debug, … Skalierbarkeit, Verfügbarkeit – Zahlreiche Derivate mit unterschiedlichen Peripheriekomponenten „LOW“-POWER 11 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Mikrocomputersysteme auf einem Chip Stromsparmodi: Stromsparmodi (Power Saving Modi). Insbesondere für portable Anwendungen sind niedrige Stromaufnahmen der eingesetzten µC wichtig. Neben der Möglichkeit, die Stromaufnahme über eine Reduzierung von Taktfrequenz und Betriebsspannung im Rahmen zulässiger Grenzen zu senken, sind bei den meisten µC mehrere Spezialfunktionsregister SFR oder spezielle Software-Befehle vorgesehen. Übersicht zu Stromsparmodi: Modus Funktion Aktivierung IdleIdle-Mode Taktabschaltung für CPU Über IDLEIDLE-Befehl Deaktivierung Über Reset oder Interrupt PowerPower-DownDown-Mode Taktabschaltung für CPU + OnOn-ChipChip-Komponenten Über PWRDNPWRDN-Befehl + Pinbeschaltung Über Reset SleepSleep-Mode CPU ohne Takt Über SleepSleep- Befehl Über Interrupt StandbyStandby-Mode OnOn-ChipChip- Oszillator wird gestoppt Über SleepSleep- Befehl / Pin Über exteren Interrupt ModuleModule-StopStop-Mode (Off Mode) Direktes Abschalten von OnOn-ChipChip-Komponenten Über SFR Über SFR ClockClock-Gearing (Power Save Mode) Teilung des Taktes Über SFR Über SFR 12 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 6 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Digitaler Signal Prozessor DSP Digitale Signalprozessoren (Digital Signal Processor) sind Spezialprozessoren für die sehr schnelle Verarbeitung von mathematischen Befehlen zur Bearbeitung komplexer Algorithmen der analogen Signalverarbeitung DSP steht für Digitaler Signalprozessor. Der DSP ist ein auf die digitale Signalverarbeitung ausgerichteter Prozessor, also ein Rechner, der mit Hilfe von arithmetischen Operationen Signale, wie auch Musik/Video verarbeitet. Durch die hohe Rechenleistung heutiger DSProzessoren erhält man hiermit eine Vielzahl von Möglichkeiten. DSP - Anwendungen: • Audio • Digital Video • Telekommunikation • Messtechnik/Regelungstechnik • Security/Automatisierung • Robotik •… 13 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Digitaler Signal Prozessor DSP VIDEO http://www.go-dsp.com/2005-fet/c2000/index.html 14 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 7 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Digitaler Signal Prozessor DSP ??? Suchbildrätsel ??? Das linke Bild unterscheidet sich vom rechten Bild durch …. Unterschiede zu herkömmlichen Prozessoren: • Parallelinstruktionen und mehrere Datenbusse zum parallelen Transport von Daten • Leistungsfähige arithmetische Strukturen Hardwaremulitplizierer/addierer MAC Einheit • Spezielle Rechenwerke und Register zur Adress- und Datenmanipulation ohne Nutzung der Arithmetikeinheit • Gleichzeitiger Zugriff auf Instruktionen und mehrere Operanden • Spezielle Adressierungsarten • Beliebig niedrige Frequenzen mit hoher Genauigkeit bearbeitbar, in der Analogtechnik sind niedrige Frequenzen durch die lange Einschwingzeit von RC- Gliedern mit Schwierigkeiten verbunden • Lösung komplexer Aufgaben mit Hilfe von DSP- Algorithmen sind in der Analogtechnik oft nicht oder nur sehr aufwendig realisierbar • Gute Reproduzierbarkeit • Kein Abgleich der Baugruppen erforderlich 15 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Digitaler Signal Prozessor DSP Beispiel: Streaming Media 16 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 8 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Digitaler Signal Prozessor DSP Beispiel: Portable Media Player 17 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Digitaler Signal Prozessor DSP Customer Application Video 18 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 9 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Trendwort „Konvergente Systeme“ Konvergenz (zu spätlateinisch convergere, sich hinneigen) bedeutet allgemein Annäherung (auch: das Zusammenstreben, das Aufeinanderzugehen, Ggs. Divergenz) oder Übereinstimmung (von Meinungen, Zielen, etc.). So hat der Begriff der Konvergenz auch im Fachgebiet „Mikroprozessortechnik“ an Bedeutung gewonnen. Konvergente Systeme: • Unterhaltungssysteme Anforderungen an die Prozessoren: • DMA zum effektiven Laden von Programmen und Daten in verschiedenen Betriebsarten • Telematik und Infotainmentsysteme für Fahrzeuge • Management der Speicherbandbreite • Management der Rechenressourcen • Netzwerkfähige und StreamingMedia- Systeme • (mobliles) digitales Radio/TV • Deterministische DSP-Code Ausführung • Schnelles Task- Switching • Dynamisches Leistungsmanagement •… •… Architektur mit Applikationsbezug Prozessoren für konvergente Anwendungen müssen aus der Systemperspektive heraus entwickelt werden und ein optimales Zusammenspiel verteilter Resourcen ermöglichen. Per Definition arbeiten in richtungsweisenden konvergenten Anwendungen solche Bausteine sowohl im Bereich der Benutzersoftware, als auch im DSP-Bereich zusammen. Dabei werden alle Verarbeitungsaufgaben eigenständig erledigt. HINTERBERGER M. 2007 Applikationen, die Multiformat-Medienverarbeitung, Multimode-Connectivity und ControlProcessing in Echtzeit miteinander kombinieren/verschmelzen, werden als konvergent bezeichnet. Deren Prozessoren ermöglichen zum einen die reibungslose Zusammenarbeit von Multimedia-, Netzwerk- und Systemsteuerungsfunktionen und erfüllen andererseits die Anforderungen an Leistungsfähigkeit und Leistungsverbrauch, die moderen EmbeddedAudio, Video- und Kommunikationsanwendungen an die Entwickler stellen. Konvergenz verlangt, dass auch die Prozessoren mit diesen Anwendungen zusammenwachsen und die effiziente Verarbeitung von Media- und Applikations-Tasks nicht nur Lippenbekenntnis der Hersteller bleiben 19 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Trendwort „Embedded Systems“ Embedded Systems sind mikroprozessorgesteuerte Systeme, die ihre Funktionalität durch Software-Programme erhalten. Diese werden einmal in das System eingebracht, werden unverlierbar gespeichert und bleiben für die Lebensdauer des Systems im Wesentlichen in unveränderter Form erhalten. Anmerkung: Im Gegensatz zu herkömmlichen Computern sind „Embedded Systems“ einfache Rechner mit bestimmter Funktionalität, die im zu steuernden oder zu überwachenden System integriert (eingebettet) sind. Sie bestehen aus einer Kombination von Hardware und Software (Mikrocontroller, Mikroprozessor, Bussystem, etc.) und enthalten häufig Einheiten, die Aufgaben der Sensorik und Aktuatorik erfüllen sowie Kommunikationsschnittstellen. Darunter sind nicht nur Mensch-Maschine-Schnittstellen zu verstehen, sondern auch Vernetzungsmöglichkeiten mit Maschinen. Anwendungen für „Embedded Systems“: • Kommunikationsgeräten • Automotive Elektronik und medizinischer Technik • Maschinen – Mechatronik • Industrieanlagen und anderen „intelligenten Objekten“ •… 20 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 „Embedded Systems“ Designentscheidungen für Embedded Systems: • Integration Je mehr Funktionalität der verwendete Mikrocontroller bereits enthält, desto weniger Peripheriebausteine werden benötigt, um die Anbindung an die benötigten Systemschnittstellen (Ein-/Ausgabe) zu ermöglichen. Je weniger Bausteine eine Platine benötigt, desto geringer ist der Platzbedarf der Leiterbahnen und die Signallaufzeiten zwischen den Bausteinen. Diese Überlegungen führten dazu, dass auf heutigen Mikrocontrollern meist schon bereits ausreichend RAM und anderer Peripherie-Funktionen vorgesehen sind. • Echtzeitanforderungen Hohe Verfügbarkeit und definierte Antwortzeiten sind häufig gestellte Anforderungen an ein Embedded System und damit auch an dessen Betriebssystem und Software. Beispielsweise muss die elektronisch gesteuerte Bremse oder der Airbag nahezu unverzögert im Millisekundenbereich reagieren. Die einfache und geschlossene Bauweise sowie die Verwendung spezieller Echtzeitbetriebssysteme erlauben es schon in der Entwicklungsphase, die Reaktionszeiten des Gesamtsystems abzuschätzen. • Stückpreis Der Stückpreis hängt wie viele Waren des Marktes von den Entwicklungs- und Herstellungskosten ab. Je höher die Stückzahl, desto geringer ist der Anteil der Entwicklungskosten je Stück. Bei großen Produktionsmengen wird daher von der Entwicklung viel Aufwand in die Optimierung des Ressourcenverbrauchs gesteckt, um z. B. durch Speichereinsparung die Materialkosten weiter drücken zu können. Bei geringen Stückzahlen fallen die Materialkosten dagegen weniger ins Gewicht. Hier lohnt es sich dann wieder mit teureren, aber dafür flexibleren Bausteinen (z .B. FPGAs) die Entwicklungszeit zu verringern. • Entwicklungsumgebung Eine integrierte Entwicklungsumgebung ist ein Anwenderprogramm zur Entwicklung von Software. Unter Entwicklern wird meist die Bezeichnung IDE verwendet, eine Abkürzung des aus dem Englischen stammenden Begriffs Integrated Development Environment (auch Integrated Design Environment). 21 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Auswahlkriterien für Mikrocontroller: WELCHER HERSTELLER ? WELCHER µP/µC ? 8-BIT / 16-BIT / 32-BIT / 64-BIT Digitale Signalprozessoren 22 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 11 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Auswahlkriterien für Mikrocontroller: Allgemeine Leistungsmerkmale: Teil 1 Controller Architektur CISC oder RISC VonVon-Neumann oder Harvard– Harvard– Architektur Interne Busbreite (4(4-, 88-, 1616-, 3232-Bit) Interne Taktfrequenz - Rechenleistung Adressraum Realisiertes Pipelingverfahren (Grad der Parallelität) Effizienz des Befehlssatzes und der Adressierungsarten Integrierte Peripherie auf dem µC (z.B. ADC, SPI, CAN, I²C, …) Internes/externes Interruptsystem Stromsparfunktion/Energieverbrauch Bauform (Gehäuseform) und Größe des Chips - Wärmeabfuhr Anzahl der vorhanden/benötigte I/O Pins ? Speichergröße, Art des Speichers, Speicherarchitektur, OnOn-Chip? Chip? Programmierbarkeit bei Massenproduktion/Serienfertigung Preis/Stück (bei hohen Stückzahlen) Skalierbarkeit und Modularität 23 INSTITUT FÜR ELEKTRONIK HINTERBERGER M. 2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Auswahlkriterien für Mikrocontroller: Allgemeine Leistungsmerkmale: Teil 2 Verfügbarkeit – Kompatibilität Wartbarkeit - Betriebssicherheit Lebensdauer EMV - Elektromagnetische Verträglichkeit – Funktionssicherheit – Störsicherheit CodeCode-Sicherung ? Produktpiraterie ? Datencodierung ? Ausbildungsgrad und „Know„Know-how“ der µCµC-SoftwareSoftware- und Hardwareentwickler für ausgewählten Mikrocontroller – Schulung/Weiterbildung notwendig ? – bereits Erfahrung gesammelt ? Vorhandene Erfahrungen mit ähnlichen Mikrocontrollersystemen ? – Positive/Negative Erfahrungen – Bekannte Probleme Entwicklungsumgebung – Hochsprachentauglich ? – Simulation – Debug – Qualität des Compilers (Compiler(Compiler-Fehler bereits bekannt – BUGS ?) – Preis der Entwicklungssoftware - Lizenzkosten für Entwicklungssoftware – Weiterverwendbarkeit erstellter Softwareprojekte ? 24 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 12 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Auswahlkriterien für Mikrocontroller: Preis (Gesamtkosten) und Leistung (hohe Rechenleistung) schließen sich scheinbar aus: Niedrige Kosten Hohe Leistung ? Kostenanalyse: • Kosten für Programmentwicklung, Tests und Fehlerbeseitigung • Kosten für Programmerweiterung für neue und verbesserte Produkteigenschaften • Kosten für Hardware • Kosten für Entwicklungsumgebung (Lizenzen) 25 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 13