27
2008 Jiri Spale, Programmierung eingebetteter Systeme 1 Programmierung eingebetteter Systeme (ES) Prof. Dr. Albrecht Swietlik Dr. Jiri Spale

Programmierung eingebetteter Systeme (ES)webuser.hs-furtwangen.de/~spale/forall/PES/Vorlesung/ppt/embedded... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 7 µ-Prozessor,

  • Upload
    hamien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

2008 Jiri Spale, Programmierung eingebetteter Systeme 1

Programmierung eingebetteter Systeme (ES)

Prof. Dr. Albrecht SwietlikDr. Jiri Spale

2008 Jiri Spale, Programmierung eingebetteter Systeme 2

Inhalt #11. Einführung (Spale)

Bedeutung von embedded Systemen (ES), Anwendungsbeispiele

2. Technische Mittel im ES-Praktikum (Swietlik)netX evaluation Bords, Entwicklungsystem Hitex, StartEasy. Vorstellung der Versuche.

3. netX-Funktionseinheiten im Bezug auf das Praktikum (Spale)GPIO, PIO, Timer, Interrupts, UART

4. Einführung Programmdesign für ES ohne Verwendung von BS (Spale)

5. Was der ES-Programmierer über die Hardware wissen muss- Vertiefung (Spale)Mikrocontroller-Arten. Speziell: Architektur ARM9Hardwareaufbau, Konfurierbarkeit, Speichertzypen RAM/ROM/Flash. Memory mapping.Anschluss und Interaktion mit externen Signalen.Analoge Signale, ADU, DAU

2008 Jiri Spale, Programmierung eingebetteter Systeme 3

Inhalt #26. Softwareentwurfsmethodik (Spale)

V-Modell, Hardware-in-the-Loop.Entwicklungsumgebungen, Testen, Debuggen, JTAG-Schnittstelle, Emulatoren vs. Simulatoren

7. Echtzeit Betriebsysteme (Swietlik)Aufgaben, Struktur, Produkte. Beispiel RCX

8. Busse, Kommunikationsschnittstellen (Swietlik)Profibus, echtzeit Ethernet, CAN

9. FireWire in Automatisierung (Spale)

10. Programmierung von ES in Hochsprachen (Swietlik)embedded Java

11. Mehrprozessorsysteme (Swietlik)

2008 Jiri Spale, Programmierung eingebetteter Systeme 4

Was ist ein eingebettetes System?

… das ist es nicht!

2008 Jiri Spale, Programmierung eingebetteter Systeme 5

Was ist ein eingebettetes System?Definition [Thaller 1997]Ein durch Software kontrollierten Computer oder Mikroprozessor, der Teil eines größeren Systems ist,dessen primäre Funktion nicht rechenorientiert ist.

Berkeley Modell [Ed Lee]:Eingebettete Software ist Software, die mit physikalischenProzessen verbunden ist. Das technische Problem ist die Verwaltung vonZeit und Konkurrenz in Rechnersystemen.

Daniel Gajski (Director Center for Embedded Computing Systems, UCI):„An embedded System is a computer that does not look like a computer“

2008 Jiri Spale, Programmierung eingebetteter Systeme 6

Charakteristiken von ES• Zweckbestimmtheit – Ausführung dedizierter Funktionen

• Fester Bestandteil eines technischen Gesamtsystems

• Interaktion mit Umgebung mittels Sensorik und Aktuatorik

• Bestehen aus Hard- und Software

• Eingesetzte Hardware:a) Standardhardware

• Mikroprozessoren• Mikrokontroller

b) Spezialhardware • z. B. MPEG-Dekoder in der Videotechnik• DSP• …

2008 Jiri Spale, Programmierung eingebetteter Systeme 7

µ-Prozessor, µ-Controller, µ-Computerµµµµ-Prozessor (seit 1970, TI)• kleine Abmessungen• alle Funktionseinheiten des Prozessors auf einem Mikrochip

µµµµ-Controller, µµµµC, MCU, Einchip-Rechner, SoC (System on Chip)• auf einem Chip: mindestens Prozessor + Peripherien• oft inklusive Programm- und Daten-Speicher• heute auch CAN, LIN, USB, I2C, SPI, UART, Eth, PWM, LCD-Ctrl, ADU,DAU

µµµµ-Computer (µ-Rechner) – Begriff im Wandel• 1960-1980: Computer mit einem µ-Prozessor als Zentraleinheit;

Abgrenzung von Mainframes und Minirechnern• heute: obige Def. bei jedem Rechner erfüllt; unten µC werden heute meist Rechner kleiner als PC gemeint, µ-Controller, Prozessrechner,…Begriff gerät wahrscheinlich in Vergessenheit

2008 Jiri Spale, Programmierung eingebetteter Systeme 8

Embedded und real-time systems

embeddedembedded

embedded embedded

realreal--timetime

realreal--timetime

Echtzeitsysteme:Einhaltung von Deadlineszwingend erforderlich

Deadlines-Beispiele:• Zykluszeiten bei

- Verarbeitung von Eingaben- Generieren von Steuersignalen

• maximale Latenzzeit bei der Reaktion auf äußere Ereignisse

2008 Jiri Spale, Programmierung eingebetteter Systeme 9

Rechnerarchitekturen bei ESVon Neumann

Harvard

SHARC=super Harvard – Einsatz von DRAM

• Intel Pentium• PIC (Microchip Technology Inc)• AVR-Reihe (Atmel)• ARM9• DSP, z.B. C6x Familie von TI

• 68HC08• Intel bis 486• ARM7

2008 Jiri Spale, Programmierung eingebetteter Systeme 10

8-Bit-Prozesoren = Oma‘s Zeiten?Prozessorarten nach Operanden-Länge:vereinfacht: ein 8-Bit-Prozessor geeignet für Umgang mit Zahlen 0..255

4 oder 8-Bit: Mikrowellen, Taschenrechner, PC-Tastaturen, IR-FB

16 oder 32-Bit: SPS, Handys, PDA, tragbare Videospiele

32 oder 64-Bit: PC, Laset-Jets

Trend: Mehrkern-Prozessoren (2-10 Kerne): PC, DSPWeitere Frequenz-Erhöhung stoßt auf physikalische Grenzen.Offene Fragen bei 100-1000 Kerne-Prozessoren: Struktur, Memory-Sharing,

Verbindungen, Programmierweise, Bedienung durch BS.

Bsp: kundenspezifischer IBM-Prozessor für Sony Playstation 3:Hauptkern basiert auf der Power PC-Architektur, verteilt Arbeit an 6 einfachere spezialisierte DSP. Verbindung durch Gate-Arrays.

2008 Jiri Spale, Programmierung eingebetteter Systeme 11

Auswahl von Prozessoren

Quelle: LinuxDevices.com. Sixth annual Embedded Linux Market Survey. May 2006

2008 Jiri Spale, Programmierung eingebetteter Systeme 12

Bedeutung von ES

• ca. 9/10 aller elektronischen Bauelemente in ES

• ES findet man in allen Bereichen der Technik

• Hauptgründe:– Fortschritte in Schlüsseltechnologien

(Mikroelektronik, formale Methoden)– Vielfalt von Anwendungen

2008 Jiri Spale, Programmierung eingebetteter Systeme 13

• Elektronik für Automobilindustrie– Steuerung von Fensterheber,

Schiebedach– Sitzverstellung (Positionsspeicher)– Getriebesteuerung (Automatik)

1.2 Application areas

Anwendungsgebiete #1

Bordnetz eines Fahrzeuges mit unterschiedlichen Bussystemen

– Klimaanlage– Park Distance Control– Elektronische Zündung– Bremsunterstützung– ABS– ESP– Airbags– Totwinkelmelder– ... U.v.m ...

Mehrere Netze

Bis zu 100 vernetzte Prozessoren

2008 Jiri Spale, Programmierung eingebetteter Systeme 14

• Flugtechnik• Schienenfahrzeuge

1.2 Application areas

Anwendungsgebiete #2

Prager Metro auf einer TeststreckeČKD/Siemens Transportation Systems Prague

Low-floor tram 14T in PragŠkoda Pilsen, Design Porsche Design Group

2008 Jiri Spale, Programmierung eingebetteter Systeme 15

• Telekommunikation• Militäranwendungen• Authentifizierung

1.2 Application areas

Anwendungsgebiete #3

http://www.submarine.co.mp/wallpaper/submarine_640.jpg

Blockschaltbild einer Prozessor-Chipkarte Krypto-Chip (links) und der dazugehörige Mikroprozessor (rechts)

2008 Jiri Spale, Programmierung eingebetteter Systeme 16

• Verbrauchselektronik

– Fernseher, Videorecorder, Kameras– CD/DVD-Player,– MiniDiscPlayer– Digitale Videoschnittsysteme, Spielekonsolen– Waschmaschine, Trockner, E-Herd– Haustechnik, Heizungsanlagen– Telefone, Telefonanlagen– PDAs, Mobiltelefone, Organizer

Anwendungsgebiete #4

2008 Jiri Spale, Programmierung eingebetteter Systeme 17

Anwendungsgebiete #5• Industrie-Automation

– Industrieroboter (pro Achse ein Kontroller)– CNC-Maschinen– Prozesssteuerungen (chemische Industrie)

• Gebäude-Automation– Gebäude/Klimatechnik

• Handel– Kassensysteme

Werkstückträgersystem mit RoboterstationStein-Automation, VS-Schwenningen

2008 Jiri Spale, Programmierung eingebetteter Systeme 181.2 Application areas

Anwendungsgebiete #6• Medizintechnik

– Infusionspumpen– Herzschrittmacher– Prothetik

• Elektronik / Wissenschaft– Messgeräte, Funktionsgeneratoren,– Oszilloskope, LogicAnalyzer

Laser-Doppler-Anemometermit FFT-Prozessor

Oszilloskop und Logic AnalyzerIn unserem Praktikum

Herzschrittmacher

2008 Jiri Spale, Programmierung eingebetteter Systeme 191.2 Application areas

Anwendungsgebiete #7PC-Komponenten• Spezialprozessoren

– Graphics, sound

• 32-bit Processoren

– IR, Bluetooth– Network, WLAN– Harddisk– RAID controllers

• 8-bit Processoren

– USB– Keyboard, mouse

2008 Jiri Spale, Programmierung eingebetteter Systeme 201.2 Application areas

Beispiele von ES #1

Pilsner Unique Bar

• Zapfhähne für jeden Gast auf den Tischen

• ml-genaues Messen der Durchflussmenge

• Terminale zur Wahl der Biersorte, Bestellenvon Speisen und Abrechnung

• kontaktlose Meßwert-Übertragung

• Computer-gestützte Kalibrierung

• zentrales Budgeting, Bestellwesen für alle Filialen

2008 Jiri Spale, Programmierung eingebetteter Systeme 211.2 Application areas

Beispiele von ES #2 Waldmaschinen- vernetztes Computersystem

• Steuerung von Armen,Manipulatoren

• Navigationssystem

• Führung von Statistiken

• 16-Bit Prozessoren im Netzwerk

2008 Jiri Spale, Programmierung eingebetteter Systeme 221.2 Application areas

Beispiele von ES #3

Computergestützte Funktionen:

• Radar• Navigationssystem• Waffen• Schadenkontrolle• …….

Quelle: http://www.news.navy.mil (public domain)

• Große Server• Tausende Prozessoren im Netzwerk

Extrem große ES

2008 Jiri Spale, Programmierung eingebetteter Systeme 23

Spezifika beim ES- Entwurf

• komplexes Zusammenspiel von Hard- und Software, Echtzeit

• Fehlerursache meist in der Kombination von Ereignissen

• mangelnde Erprobungsmöglichkeiten unter realen Bedingungen

• Notwendigkeit der Wiederverwendung von Komponenten

• Termin- und Kostendruck, Konkurrenzdruck

2008 Jiri Spale, Programmierung eingebetteter Systeme 24

Risiken

• bei Echtzeitanwendungen:harte Forderungen in Bezug auf das Zeitverhalten

• Dieses Gefahrenpotential wird häufig unterschätzt

• Risiko minimieren -> es bedarfeines systematischen Entwicklungsprozesses.

2008 Jiri Spale, Programmierung eingebetteter Systeme 25

Unfälle durch ES #1

1993: Bruchlandung eines Airbus A-320 auf dem

Warschauer Flughafen

Ursachen:• Fehlkonstruktion des Sensors zur Erkennung derBodenberührung

• Im „Flight Mode“ ließ sich die zum Bremsen notwendigeSchubumkehr nicht einschalten

=> Kein Pilotenfehler, sondern falsche Entwurfsentscheidungender Konstrukteure und Software-Ingenieure.

2008 Jiri Spale, Programmierung eingebetteter Systeme 26

Unfälle durch ES #21996: Absturz einer Ariane 5 Rakete

Ursachen:

Softwarefehler im Trägheitsnavigationssystem(das Programm wurde unverändert von der Ariane 4 übernommen, da esbei Ariane 4 gut funktionierte)Die größere horizontale Bewegung der Ariane 5 beim Start gegenüber der Ariane 4 führten zu einem Variablenüberlauf.Folge: 1. Absturz das redundanten Back-up System

2. Absturz des Hauptnavigationssystems

=> Der Ausfall eines sehr kleinen Teils der Software führte zueinem Totalausfall des Gesamtsystems mit einem Schadenvon ca. 8 Mrd. US $.

2008 Jiri Spale, Programmierung eingebetteter Systeme 27

Belehrung: Quality of Development• Integrierte Verifikation und Validation “IV&V”

• Spezifikations– und Konfigurationsmanagement, Anforderungsüberwachung und Codeinspektion

• Statische und dynamische Analyse, automatisiertes Testen

• Simulation, Formale Verifikation und Modellprüfung

• Review der Software durch Hardware-Ingenieure und umgekehrt

Zusammenspiel erforderlich!

Technologie-Entwicklung

Qualitätssicherung

Projektmanagement