Modellbasierte Software- Entwicklung eingebetteter Systeme

Modellbasierte SoftwareEntwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer...
Author: Andrea Schenck
4 downloads 0 Views 2MB Size
Modellbasierte SoftwareEntwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und

Fraunhofer Institut für offene Kommunikationssysteme FOKUS

Wo stehen wir? • • •



Embedded Systems: Definition, Märkte, Programmierung, Softwareprozesse Anforderungserhebung und -analyse Modellierung   

Systemmodellierung (SysML) Kontinuierliche Modellierung (Simulink / Scilab) Diskrete Modellierung (UML)

Codegenerierung und Modelltransformation  Hardware für eingebettete Systeme • Sicherheit

• •

  

Funktionale Sicherheit Fehlertoleranzkonzepte Werkzeugqualifikation

Validierung  

Modellbasierter Test Verifikation und statische Analyse

Spezielle Domänen   

Automotive Software Engineering Medizintechnik Automatisierungstechnik, Robotik

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 2

Embedded Platforms • Wie realisiert man elektrische / elektronische / elektronisch programmierbare Regler?  welche Hardware, Software?  welche Peripherie (Sensorik, Aktuatorik?)  wie kommt die SW auf die HW?

• Übung mit Evaluations-Boards

 andere Eval-Boards auf Anfrage!

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 3

Embedded Computing Paradigma

(C) Marwedel

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 4

Eingebettete Systeme: Aufbau Applikationsschicht Steuerungsalgorithmus

Benutzungsschnittstelle

Middleware Realzeit-Betriebssystem Hardware Netzverbindung

Prozessankopplung

Sensorik, Aktuatorik

(Funk-) Netzwerk

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 5

Eingebettete Systeme: Hardware • Spezielle Prozessoren     

8-bitter, minimale Kosten, energieoptimiert keine MMU, Coprozessoren, FloatingPoint Microcontroller mit zusätzlichen Steuerungsleitungen Spezialprozessoren (DSP, SoC, Krypto) Trend für Entwicklung: FPGAs

• Spezielle Speicher

 meist bewegungslos (keine magnetischen/optischen Medien)  ROM, PROM, EEPROM; zunehmend: Flash Disks  minimaler RAM, auch; dual ported RAM

• Zusatzhardware

 Spezielle Platinen, AD/DA-Wandler, ASICs  einsatzspezifische Sensoren und Aktuatoren

• Einfache Kommunikationsbusse und –netze

 CAN, Feldbusse; zunehmend auch Ethernet, Bluetooth etc.

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 6

Embedded Prozessoren • Mikroprozessoren  Recheneinheit, separater Speicher & Peripherie

• Microcontroller

 integrierte Rechen- und Speichereinheit

• System-on-Chip (SoC)

 Peripherie & IPs integriert

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 7

Recheneinheit (CPU) • Characteristika von embedded-CPUs       

einige wenige Register wenig Befehle (oft ohne Gleitpunktarithmetik) niedrige Taktraten (16Hz – 1GHz) niedrige Energieaufnahme (2 – 100W) hoher Temperaturbereich (-40° – +85°C) lange Verfügbarkeit (5 – 20 Jahre) niedriger Preis (0,1 – 10 $)

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 8

Energieeffizienz • “die wichtigste Eigenschaft eingebetteter Prozessoren” • Verschiedene Methoden zum Energiesparen       

Taktrate senken, dynamisch adaptive Taktraten Betriebsspannung senken, dynamische Spannungsversorgung Größenreduktion der Schaltelemente Reduktion der Anzahl der Schaltelemente Bereiche abschalten Kommunikation reduzieren energiebewusste Software

• Multi- und Many-Core-Prozessoren • Energieverbrauch = ∫ Leistungsaufnahme  Kühlung, Gehäuse, ...  Batterielebensdauer

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 9

ASICs “Application specific integrated circuit”

• Custom-designed Chip für  spezielle Geschwindigkeitsanforderungen, oder  maximale Energieeffizienz

• Nachteile  Hohe Kosten (Maskenkosten 105 - 107 $)  geringe Flexibilität (Technologie- und Standard-Anderungen)  Entwicklungszeit und –aufwand

• Nur bei sehr hohen Stückzahlen akzeptabel H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 10

FPGAs “Field programmable gate array” • “Programmierbare Hardware” • Gatter aus Logikblöcken • Programmierung durch Setzen der elementaren Funktionen • Sehr schnelle Berechnungen möglich • Hohe Tool- und Stückkosten

Quelle: Wikipedia

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 11

Speicher • sowohl von-Neumann– als auch Harvard-Architektur • Speichermanagement durch das Betriebssystem  Security!

• üblicherweise nicht erweiterbar • • • •

 (aber: Flash-Cards als Ersatz)

RAM (typischerweise 4 - 128 kB) ROM (nichtvolatiler Programmspeicher) EEPROM (für Settings / Bootloader) Cache: 32 B – 320 kB; üblich: 32 kB oder 64 kB  L1 / L2 Caches

 maximale Programmgröße ist limitiert! H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 12

Peripherie • • • • • • • •

Analog-Digital /Digital-Analog Wandler (ADC / DAC) Discrete IO, General Purpose Input/Output (GPIO) Serielle Schnittstellen, z.B. RS232, USB, I2C Netzwerkschnittstellen: z.B. Ethernet, WLAN, PCI Feldbusse: z.B. CAN, LIN, MOST, PROFIBUS, usw. Echtzeituhr und Timer Speicherkartenleser (SD Cards, Compact Flash usw) Debuggingschnittstellen: JTAG, ISP

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 13

Beispiel: ARM Familie • (Advanced RISC Machines Ltd.) • “IP” (Intellectual Property); Fertigung durch

Lizenznehmer (AMD, Apple, IBM, 3Com, Infineon,

Freescale, HTC, Intel, Samsung, Qualcomm, Atmel, Toshiba, Renesas, NXP, Nvidia, Texas Instruments, ...)

• Marktführer im Embedded- und Smartphone-Bereich • Prozessorfamilie: ARM1 – ARM11, StrongARM, XScale, Cortex-XX, ...  32- und 64-Bit, SIMD, Crypto-IP, ...

• Befehlssatz “Thumb” bzw. “Thumb2”     

16- oder 32-Bit breite 3-Register-Befehle (z.B. ADD r0, r1, r2) üblicherweise Integer-Arithmetik, ggf. ohne Division zirkuläre Register-Bitshifts Conditional execution (4 Bedingungsbits, vermeidet Sprünge) Barrel-Shifter (zweiter Operand kann verschoben werden)

• Code-Größe versus Ausführungseffizienz

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 14

Beispiel: TI MSP430 Familie • 16-Bit RISC-Mikrocontrollerfamilie von Texas Instruments  optimiert für niedrigen Stromverbrauch -

Active Mode: 230 µA at 1 MHz, 2.2 V Standby Mode: 0.5 µA Off Mode (RAM Retention): 0.1 µA

 Prozessorkosten ab 25 ct

• 4-25 MHz (ab 40ns Zykluszeit); MSP430G2553: 16 MHz • 27 Grundinstruktionen, je 1-6 Takte • Adressierbarer Speicher 16KB Flash, 512B RAM • • • •

 20-Bit Adressbus  Feste Speicheraufteilung

16 Interrupts, verschiedene Schlafmodi 16 Register, verschiedene Adressierungsarten Peripherie: 8ch 10-bit ADC, 2 16-bit Timers, I2C, 2 SPI, 1 UART “MSP430G2553 qualified for high-reliability automotive applications targeting zero defects”

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 15

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 16

http://sockeye.cs.washington.edu/teaching/micro/msp430Tut.pdf

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 17

Atmel RN-mega 2560 • ATmega AVR® 8-Bit Microcontroller  RISC Architecture, up to 16 MIPS Throughput at 16 MHz, On-Chip 2-cycle Multiplier  100 pin  256 K Flash 8K RAM, 4K EEPROM  Timer, PWM-Kanäle  16 analoge Eingänge, 86 programmierbare I/O Leitungen  vier TTL UARTS (RX/TX)  RS232, USB, I2C, SPI-Bus  …

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 18

Beispiel: Lego RCX • Robotic Command Explorer (1998)  „Programmable Brick“  ursprüngliches Design: S. Papert, MIT Media Lab

• Vorläufer: Code Pilot, Cybermaster, Scout  wie programmieren?

• Nachfolger: NXT (2006), EV3 (2013) • • • •

Hitachi Single-Chip-Mikrocontroller Display, 4 Knöpfe, Batteriefach 3 analoge Eingänge, 3 analoge Ausgänge IR-Kommunikation (seriell)

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 19

Sensoren • Verarbeitung analoger Signale beginnt mit der Erfassung • Fast alle physikalischen und/oder chemisch erfassbaren Messgrößen wurden / werden zur Konstruktion von Sensoren genutzt

 Gewicht, Beschleunigung, Strom, Spannung, Temperatur, Helligkeit,…  Chemische Stoffe, z.B. Methangas

• Oft werden auch Sekundäreffekte genutzt  Ausdehnung des Batteriegehäuses bei Vollladung  Auslenkung der Motorspindel im Herzunterstützungssystem  Dämpfung des Schalls durch Fettpartikel in der Milch

• Passive und aktive Sensoren • “Smarte” Sensoren: mit integrierter Signalaufbereitung

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 20

Analoge und digitale Sensoren • Analoge Sensoren werden direkt an den Controller angeschlossen (GPIO); AD•

Wandlung im Chip Digitale Sensoren besitzen eigenen Prozessor und kommunizieren über ein Protokoll mit der CPU (CAN, I2C, …)

z.B. Lego Mindstorms EV3: • analoge Sensoren



   

Spannungsmessung, 100=Kurzschluss, 0=kein Kontakt Über U=R*I lässt sich Widerstand messen Schalter, Temperatursensor (passiv) Lichtsensor, Drehsensor (aktiv)

   

z.B. z.B. z.B. z.B.

- 3 ms Batteriespannung, 0.1 ms Sensorwert digitale Sensoren

Ultraschall-Abstandsmessung Schallsensor Gyroskop Kamera mit Bildverarbeitungssoftware

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 21

Beispiel: CMOS Bildsensor • Based on

standard production process for CMOS chips, allows integration with other components.

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 22

Andere Sensoren • Sehr viele sehr unterschiedliche Sensoren verfügbar 



Wiki listet über 100 Sensortypen -

Pressure sensors Proximity sensors Engine control sensors Hall effect sensors

Kosten: 0.01€ - 105 €

• Spezialsensoren • • • • •

Fingerabdruck-Leser Barometer GPS-Empfänger Regensensor für Scheibenwischer Milchfettgehaltssensor für Tankwagen

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 23

Aktuatoren • Displays, LEDs, Lämpchen • Elektromagnete • Motorausgänge

 Leistungssteuerung über Pulsweitenmodulation (PWM)  meist separate Motorcontroller

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 24

Zusatzfolien H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 25

Discretization of time Ve is a mapping ℝ → ℝ

In this course: restriction to digital information processing; Known digital computers can only process discrete time series.  Discrete time; sample and hold-devices. Ideally: width of clock pulse -> 0

• Vx is a sequence of values or a mapping ℤ → ℝ

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

(C) Marwedel

Folie 26

Aliasing Impossible to reconstruct fast signals after slow sampling: multiple fast signals share same sampled sequence; Example: Signal: 5.6 Hz; Sampling: 9 Hz

1.5

1

0.5

0

-0.5

-1

~1 s -1.5

[http://www.cise.ufl.edu/~prabhat/Teaching/cis6930-f04/comp1.ppt]

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 27

Quantization Noise • N = (approximated - real signal) called quantization noise. Example: quantization noise for sine wave

* [http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma.html] H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 28

Discretization of values: A/D-converters 1. Flash A/D converter (1)

Digital computers require digital form of physical values A/D-conversion; many methods with different speeds. Example: 1. Flash A/D converter:

• Encodes input number of most significant ‘1’ as an unsigned number, e.g. “1111” -> “100”, “0111” -> “011”, “0011” -> “010”, “0001” -> “001”, “0000” -> “000” (Priority encoder).

(C) Marwedel

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 29

Discretization of values: A/D-converters 1. Flash A/D converter (2)

• Parallel comparison with • • • •

reference voltage Speed: O(1) Hardware complexity: O(n) with n= # of distinguished voltage levels Applications: e.g. in video processing

(C) Marwedel

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 30

Discretization of values 2. Successive approximation

• • • • •

Key idea: binary search: Set MSB='1' if too large: reset MSB Set MSB-1='1' if too large: reset MSB-1

Speed: O(ld(n)) Hardware complexity: O(ld(n)) with n= # of distinguished voltage levels; slow, but high precision possible.

(C) Marwedel

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 31

Successive approximation (2) V

1100 Vx

1011 1010

1000 V-

t (C) Marwedel

H. Schlingloff, SS2014 – modellbasierte Software-Entwicklung eingebetteter Systeme

Folie 32