Modellbasierte Software-Entwicklung 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
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!
Embedded Computing Paradigma (C) Marwedel
Eingebettete Systeme: Aufbau Applikationsschicht Steuerungsalgorithmus Benutzungsschnittstelle Realzeit-Betriebssystem Middleware Hardware Sensorik, Aktuatorik Netzverbindung Prozessankopplung (Funk-) Netzwerk
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.
Embedded Prozessoren Mikroprozessoren Microcontroller Recheneinheit, separater Speicher & Peripherie Microcontroller integrierte Rechen- und Speichereinheit System-on-Chip (SoC) Peripherie & IPs integriert
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 $)
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
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
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
Speicher maximale Programmgröße ist limitiert! 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!
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
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
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”
http://sockeye.cs.washington.edu/teaching/micro/msp430Tut.pdf
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 …
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)
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
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) 3 ms Batteriespannung, 0.1 ms Sensorwert digitale Sensoren z.B. Ultraschall-Abstandsmessung z.B. Schallsensor z.B. Gyroskop z.B. Kamera mit Bildverarbeitungssoftware
Beispiel: CMOS Bildsensor Based on standard production process for CMOS chips, allows integration with other components.
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
Aktuatoren Displays, LEDs, Lämpchen Elektromagnete Motorausgänge Leistungssteuerung über Pulsweitenmodulation (PWM) meist separate Motorcontroller
Zusatzfolien
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 ℤ ℝ (C) Marwedel
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 s [http://www.cise.ufl.edu/~prabhat/Teaching/cis6930-f04/comp1.ppt]
Quantization Noise N = (approximated - real signal) called quantization noise. Example: quantization noise for sine wave * [http://www.beis.de/Elektronik/DeltaSigma/DeltaSigma.html]
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
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
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
Successive approximation (2) 1100 1011 Vx 1010 1000 V- t (C) Marwedel