Upload
hedwig-bornemann
View
108
Download
1
Embed Size (px)
Citation preview
Modellbasierte Software-Entwicklung eingebetteter Systeme
Prof. Dr. Holger SchlingloffInstitut für Informatik der Humboldt Universität
und
Fraunhofer Institut für Rechnerarchitektur und Softwaretechnik
Folie 2H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Intel-Wettbewerb „Embedded“
http://www.intelchallenge.eu/embeddedcompetition/http://newsroom.intel.com/community/en_eu/blog/2011/06/09/intel-s-european-search-for-tomorrow-s-embedded-computing-products-is-open-for-entries
Folie 3H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Codegenerierung
• aus State Machines Visual State Coder andere Tools verfügbar
• Codeoptimierung Größe des generierten Codes
Folie 4H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Codegenerierung für Simulink
Quelle: dSPACE GmbH
• Drei kommerzielle Produkte verfügbar Embedded Coder (MathWorks) Real Time Workshop (MathWorks) TargetLink (dSPACE GmbH)
Folie 5H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Prinzip
Mirko Conrad, Ingo Stürmer
Implementation Model(fixed-point)
C Code Code generator
Compiler(Linker)
Host PC
Target
Physical Model(floating-point)
Cross-compiler(Linker / Loader)
Thanks for the slides: Daniela Weinberg
Folie 6H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Beispiel
• Schaltsystem mit Schwellwert 0.5 physikalisches Modell (SimuLink)
Implementierungsmodell (TargetLink)
Äquivalenz?
Folie 7H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
generierter Code
• Zweierpotenz-Skalierung; 128 * 2-8 = 0.5
Void switch_system(Void) { /* Switchswitch_system/switch_primitive */ if (Sa1_Input2_ >= 128 /* 0.5 */) { /* # combined # Outport: switch_system/OutputPort */ Sa1_OutputPort_ = Sa1_Input1_; } else { /* # combined # Outport: switch_system/OutputPort */ Sa1_OutputPort_ = Sa1_Input1_; }}
Folie 8H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Codeabsicherung
• Qualitätssicherung auf jeder Ebene notwendig!
Implementation Model(fixed - point)
C Code Code generator
Compiler(Linker)
Host PC
Target
Physical Model(floating - point)
Cross-compiler(Linker / Loader)
(b) Code-
Generator
(c) generierter
Code(a) Modell (d) Code
Ausführung
Wie kann man sicherstellen, dass der generierte Code das Erwartete leistet?
Folie 9H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Modelltransformation
•Codegenerator = Compiler Grammatik Metamodell Abstrakter Syntaxbaum XML-
Repräsentation Attributgrammatik Graphtransformation
•Realisierung von Modell-Codegeneratoren durch Modelltransformationen verschiedene Standards verfügbar:
QVT/M2M, ATL, MOF2Text, Tefkat, XSLT, ...
Folie 10H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
QVT Beispiel
•Geg. Metamodell für Quell- und Zielmodelle
A Model-Driven Development Approach to Mapping UML State Diagrams to Synthesizable VHDLStephen K. Wood, David H. Akehurst, Oleg Uzenkov,W. Gareth J. Howells, and Klaus D. McDonald-Maier
Folie 11H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
VHDL Metamodell
Folie 12H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
QVT Regel
Folie 13H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Beispiel: Elimination von „deep transitions“
Graphical Composition of State-Dependent Use Case Behavioral Models Jon Whittle, João Araújo, Ana Moreira, Rasheed Rabbi
Folie 14H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Deployment
•Wie realisiert man elektrische / elektronische / elektronisch programmierbare Regler? welche Hardware, Software? welche Peripherie (Sensorik, Aktuatorik?) wie kommt die SW auf die HW?
•Übung mit Lego- und anderen Systemen
Folie 15H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme: Hardware
• Spezielle Prozessoren 4-bitter, minimale Kosten, energieoptimiert keine MMU, Coprozessoren, FloatingPoint Microcontroller mit zusätzlichen Steuerungsleitungen Spezialprozessoren (DSP, SoC, Krypto) Trend: 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.
Folie 16H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Eingebettete Systeme: Aufbau
Applikationsschicht
SteuerungsalgorithmusBenutzungsschnittstelle
Realzeit-Betriebssystem
Hardware
ProzessankopplungNetzverbindungSensorik,
Aktuatorik
Middleware
(Funk-) Netzwerk
Folie 17H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
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)
• Hitachi Single-Chip-Mikrocontroller
• Display, 4 Knöpfe, Batteriefach
• 3 analoge Eingänge, 3 analoge Ausgänge
• IR-Kommunikation (seriell)
Folie 18H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Renesas H8/3297-3292 Microcontroller
http://eu.renesas.com/fmwk.jsp?cnt=product_folder.jsp&fp=/products/mpumcu/h8_family/h8300_series/h83297_group
• H8/300-CPU
• 16 KB ROM
• 0,5 KB (!) RAM
• 8 E/A-ports (8-Bit), SCI
• 16 Register (8-Bit)
• max. 16 MHz Takt
• Timer, A/D-Wandler etc.
“disencouraged”
Folie 19H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
EA-Ports
• Sensoreingänge 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
• Motorausgänge Leistungssteuerung über
Pulsweitenmodulation Verschaltungssicher Motoren, Lämpchen
Folie 20H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
NXT
• Lego „Technik“ Serie• Atmel 32-Bit-ARM-Prozessor
AT91SAM7S256; 256 kB Flash-Speicher, 64 KB RAM, 48 MHz Koprozessor: Atmel 8-Bit AVR, ATmega48; 4 KB Flash-
Speicher, 512 Byte RAM, 8 MHz
• digitale Sensoren (Ultraschall, Spezialsensoren), 4 Stecker I2C-Bus digital/analog-Kabel mit Spezialstecker
• Motoren mit Drehwinkelsensor• Bluetooth-Kommunikation, USB-Anschluss• Punktmatrix-Display, 8-bit Sound• Firmware mit Dateisystem
Folie 21H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
SILabs MCUniversity
•C8051F020 mixed-signal MCU
•25 MIPS, 64 kB Flash, 12-Bit ADC, 100-Pin
Folie 22H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
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 …
Folie 23H. Schlingloff, SS2011 – modellbasierte Software-Entwicklung eingebetteter Systeme
Aufgabe
•generierte SW „zum Laufen bringen“