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