+ All Categories
Home > Documents > Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale,...

Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale,...

Date post: 31-Mar-2019
Category:
Upload: ngoxuyen
View: 223 times
Download: 0 times
Share this document with a friend
29
2008 Jiri Spale, Programmierung eingebetteter Systeme 1 Programmierung eingebetteter Systeme (ES) Prof. Dr. Albrecht Swietlik Dr. Jiri Spale
Transcript
Page 1: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 1

Programmierung eingebetteter Systeme (ES)

Prof. Dr. Albrecht SwietlikDr. Jiri Spale

Page 2: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 2

Inhalt #11. Einführung (Spale)

Bedeutung von embedded Systemen (ES), Mikrocontroller-Arten, Anwendungsbeispiele

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

3. ARM9 KernArchitektur, Pipeline, Register, Befelsatz

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

5. Was der ES-Programmierer über die Hardware wissen muss (Spale)Anschluss von Peripherien, Entprellung, Tastatur, Anzeige

6. Programmiersprachen und Entwicklungswerkzeuge für ES (Spale)General purpose Sprachen, synchrone Sprache, HW-BeschreibungssprachenDeguggen und Testen: Logic Analyzer, Simulatoren, In-Circuit-Emulator, In-System-Programmer, JTAG

Page 3: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 3

Inhalt #27. netX – Vertiefung (Spale)

ARM Bus-Struktur, Data Switch, Host Interface, Dual Port Memory, Extension Bus, I2C

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

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

10. FireWire in Automatisierung (Spale)

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

12. Mehrprozessorsysteme (Swietlik)

Page 4: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 4

Was ist ein eingebettetes System?

… das ist es nicht!

Page 5: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

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“

Page 6: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

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• …

Page 7: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

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

Page 8: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

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

Page 9: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 9

Rechnerarchitekturen bei ESVon Neumann

Harvard

SHARC=super Harvard – Einsatz von DRAM

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

• 68HC08• Intel bis 486• ARM7

Page 10: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 10

Rechnerarchitekturen #2Von Neumann

Harvard

• Code und Daten über gleichen Bus übertragen• Fazit für Programmierer (auch für den Hochsprachenprogrammierer):

Programm- und Datenspeicher im gleichen Adressraum

•Program- und Datanspeicher getrennt, über getrennte Busse angesteuert•Fazit für Programmierer (auch für den Hochsprachenprogrammierer):

Programm- und Datenspeicher getrennt adressiert(C-Programmierer: Spracherweiterung notwendig, gcc reicht nicht aus)

Vorteile: gleichzeitiges Fetch + Laden von DatenSW-Fehler können kein Programmcode überschreibenmehrere Rechenwerke können parallel geladen werden

– parallele ProgrammeDatenwortbreite und Befehlswortbreite können unterschiedlich sein

-> gut für ES – Optimierung von ProgrammspeicherbedarfNachteile: Daten können kein Programmspeicher nutzen und umgekehrt

Page 11: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 11

Harvard-Architektura) Original mit getrennten Code-

und Datenadressräumen

b) modifizierte Variante mit einheitlichem Adressraum, aber getrennten Zugriffswegen

(eingesetzt bei Pentium, ARM9, …)

Page 12: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 12

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.

Page 13: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 13

Auswahl von Prozessoren

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

Page 14: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 14

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

Page 15: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 15

• 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

Page 16: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 16

• 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

Page 17: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 17

• 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)

Page 18: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 18

• Verbrauchselektronik

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

Anwendungsgebiete #4

Page 19: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 19

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

Page 20: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 201.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

Page 21: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 211.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

Page 22: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 221.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

Page 23: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 231.2 Application areas

Beispiele von ES #2 Waldmaschinen- vernetztes Computersystem

• Steuerung von Armen,Manipulatoren

• Navigationssystem

• Führung von Statistiken

• 16-Bit Prozessoren im Netzwerk

Page 24: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 241.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

Page 25: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 25

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

Page 26: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 26

Risiken

• bei Echtzeitanwendungen:harte Forderungen in Bezug auf das Zeitverhalten

• Dieses Gefahrenpotential wird häufig unterschätzt

• Risiko minimieren -> es bedarfeines systematischen Entwicklungsprozesses.

Page 27: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 27

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.

Page 28: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 28

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 $.

Page 29: Programmierung eingebetteter Systeme (ES)spale/forall/PES/Vorlesung/ppt/... · 2008 Jiri Spale, Programmierung eingebetteter Systeme 3 Inhalt #2 7. netX – Vertiefung (Spale) ARM

2008 Jiri Spale, Programmierung eingebetteter Systeme 29

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


Recommended