430 likes | 593 Views
Lehrstuhl Informatik XII – Eingebettete Systeme – Prof. Dr. Peter Marwedel. PG 420 RoCK: Abschlussvortrag. Betreuer: Jens Wagner, Lars Wehmeyer. PG 420 RoCK - Abschlussvortrag. Gliederung Einleitung Problembeschreibung Hardware Software Benchmark Fazit Ausblick Live-Demonstration.
E N D
Lehrstuhl Informatik XII – Eingebettete Systeme – Prof. Dr. Peter Marwedel PG 420 RoCK:Abschlussvortrag Betreuer: Jens Wagner, Lars Wehmeyer
PG 420 RoCK - Abschlussvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
1. Einleitung • 12 Studenten – 1 Jahr Detlev Bartsch Torsten Denno Pedram Hadjian Nico Karnatz André Kernchen Andreas Klapschus Marcus Ladwig Michael Patzer Matthias Reck Christoph Schlagbaum Daniel Smolinski Thorsten Wilmer
1. Einleitung • Die Teilnehmer • Zwölf Studenten • Informatik und Ingenieurinformatik • Interesse an praktischer Anwendung erworbenen Wissens • Interesse an neuem Wissen aus dem Bereich „Embedded Systems“ und Compilerbau • Heterogenes Teilnehmerfeld • Unterschiedliche Vorkenntnisse • Unterschiedliche Erwartungshaltungen • Faszination für den Bau von Robotern
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
2. Problembeschreibung • LEGO Mindstorms als Ist-Zustand • Plattform, um schnell verschiedenartige Roboter zu bauen (Zielgruppe: Kinder ab acht Jahren) • Basierend auf Hitachi 16-Bit-Prozessor in einer geschlossenen Einheit • Einfaches Display; drei Sensor- und drei Aktoranschlüsse RCX-Einheit Sensoren Aktoren
2. Problembeschreibung • Motivation • Bessere Hochsprachenunterstützung • Modularität • Bessere Anzeige • Mehr und andere Sensoren ermöglichen
2. Problembeschreibung • Komponenten unserer Lösung: RoCK Zentraleinheit Betriebs- system RoCKWire Applikation Compiler Sensor/Aktorhub Firmware Hardware Software
2. Problembeschreibung • Zur Verfügung stehende Hilfsmittel • Eagle zum Platinendesign • Lance, Olive ++ und LLIR zur Compilererstellung • MP-Lab, Demoboard • MOSFET-Bausteine
2. Problembeschreibung • Konsequenzen für das weitere Vorgehen: • Grobstrukturierung des Hauptproblems in Hardware- und Softwareprobleme • Festlegung von Verantwortlichkeitsbereichen • Bildung von Teilaufgaben • Erstellung von Zeitplänen • Festlegung und Einhaltung von Deadlines
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
3. Hardware • Das Zielsystem Sonar RS232 I²C PC 2 Motoren RoCK-Einheit ICD2 2x RoCKWire-Master 3 Sensoren RoCKWire-Bus Batterie LC-Display Motorhub 2 Motoren Sensorhub 3 Sensoren
3. Hardware • Teilaufgaben • Einarbeitung in neue Hardware • Schaltungsdesign • Entwurf und Aufbau einer 1-Wire-Technologie (RoCKWire) • Entwurf eines Prototyp-Boards • Platinendesign • Bestücken der SMD-Platinen • Konstruktion der Roboter • Funktionstest
3. Hardware • Eigenschaften der Zentralen Steuereinheit • Kommunikation mit dem PC über RS232 oder ICD2 • ISP (In-System-Programmierbarkeit) • führt Applikation aus • I2C Bus • schnelle Sensorabfrage • Steuerung der RoCKWire Clients • genügend Anschlüsse für Sensoren, Aktoren und RoCKWire • kleine Abmessungen als LEGO RCX-Einheit
3. Hardware – RoCKWire-Slaves • Eigenschaften • Verwendung des PIC12 in Hubs • Master-Slave-Bus • Parasitäre Energieversorgung der Slaves • Verwendung von LEGO-Steckern • Firmware bearbeitet Befehle des Masters • One-Wire-Technologie Der PIC12-Prozessor Aktorhub Sensorhub
3. Hardware • Wie stellen wir LEGO-Kompatibilität sicher? • LEGO-Gehäuse und -Stecker (Verpolungsschutz) • 9 V Systemspannung • Analoge Sensorschnittstelle
3. Hardware - RoCKWire • Eigenschaften des RoCKWire-Protokolls Byte des Master Stromversorgung über den Bus Pollbit Startbit Paritybit Antwort des Slave
3. Hardware - RoCKWire • Eigenschaften des RoCKWire-Protokolls Startbit Takt 1 0
3. Hardware • Die Bestandteile des Roboter-Systems • Zentraleinheit • Sensor-/Aktorhubs • RoCKWire • Inkrementelle Vorgehensweise • Auswahl und Beschaffung der Komponenten • Aufbau und Tests am Evaluation Board • SMD-Platinenentwurf und -aufbau • Funktionstests • Inbetriebnahme
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
4. Software • Teilaufgaben • Betriebssystem (SOUL) • Treiber und APIs (z.B. RoCKWire, LCD, Motoren, Sensoren ...) • ANSI-C-Compiler • Benchmark: Die Drop-Zone-Applikation in C
4. Software - Betriebssystem • Aufbau von SOUL • Soul is an Operating System for Use with Lego
4. Software - Betriebssystem • Zwei mögliche Stack-Verwaltungsstrategien • Tauschen • Nachteil: Gesamter Stack muss im PCB gesichert werden! Interrupts sind auszuschalten • Teilen • Nachteil: Nur wenig Stack pro Task zur Verfügung Nur 1536 Byte RAM vorhanden!
Task3 21-31 Task1 10-20 4. Software - Betriebssystem • SOUL-Stack-Verwaltungsstrategie • Insgesamt stehen 31 x 21 Bit Speicher für Returnadressen zur Verfügung! Adresse 0 = Resetvektor Task2 21-31 System-Task 6-9 Idle-Task 1-5 0
4. Software - Betriebssystem • Die Toolchain
4. Software - Compilerbau • Compilerbau • Bislang kein kostengünstiger Compiler für PIC18F452 • Übersetzung und Ausführung eines Programms • Sensorwerte abfragen, Aktoren ansteuern • Compiler-Hilfsmittel (bereitgestellt vom LS XII und dem ICD) • Compiler-Frontend LANCE • Code-Generator-Generator OLIVE ++ • Backend-Datenstruktur LLIR
IR3-Adress-Code LANCE2 OLIVE++ C-Code LLIR 4. Software - Compilerbau • Besonderheiten im Backend • Durch Codeselektion entsteht LLIR-Datenstruktur • Implementierung eines Softwarestacks für Funktionsparameter (unterstützt auch Rekursion) • Initialisierung von globalen Variablen in Funktion c_0 • Unterstützt Codeerzeugung für Accessbank oder beliebige Bank • Datentypen: Integer, Char, Pointer, Arrays • Interface zum OS durch C-Headerdatei
4. Software - Compilerbau • Besonderheiten der Registerallokation • Implementierung nach Appel • Sichtweise: jede Bank (1+7) beinhaltet 256 Register • Grenzwert für Allokation entspricht der Bankgröße • Ausgabe des Interferenzgraphen als VCG-File
4. Software - Compilerbau • Backend-Optimierung Teil 1 • Peephole-Tree: wird dynamisch aus picpeep.dat aufgebaut • Parameter: Instruction Code, Fileregister, Literal, Destination, Bank, Depth … 37,1,-1,0,0,1, 41,1,-1,-1,0,2, >, 37,1,-1,0,0,1, -, 37,1,-1,0,1,1, 60,-1,0,-1,-1,0, 60,-1,0,-1,-1,3, >, 40,-1,2,-1,-1,0, 61,1,-1,0,1,2, … […]
4. Software - Compilerbau • Backend-Optimierung Teil 2 • Sukzessives Instruktions-Matching im PHTree durch Traversieren der LLIR und Ersetzen gefundener Peepholes … MOVF v_2,0,0 SUBLW 21 SUBLW 0 MOVLW 21 SUBWF v_2,0,0 37,1,-1,0,0,1, 60,-1,0,-1,-1,0, 60,-1,0,-1,-1,3, >, 40,-1,2,-1,-1,0, 61,1,-1,0,0,2, ASM-File picpeep.dat
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
5. Benchmark • Drop-Zone-Mission • Randbedingungen • Zwei DIN A0-Blätter • Drei Hindernisse • Drei Coladosen (Payload) • Grüne Drop-Zone • Roboter • schwarze Umrandung • Ziel: Alle Dosen in der Drop Zone abstellen • Die Drop-Zone-Mission wurde von der LEGO-RCX-Einheit bisher nicht zufriedenstellend gelöst !
5. Benchmark • Drop-Zone-Mission • Der Roboter • Zwei Lichtsensoren • Differentialgetriebe • Eine Sonareinheit, 90° schwenkbar • Magnetsystem zum Dosen „fangen“ • Abstoßvorrichtung • Vier „Bumper“ • Hohe Zahl an Sensoren und Aktoren • und sogar ein Sonar ansteuerbar!
5. Benchmark – Sonarmessung Beispiel für ein Sonar-Meßfeld beim „Scannen“ des Spielfelds. 2 Objekte direkt nebeneinander werden erkannt! Meßstrecke
5. Benchmark – Algorithmus • Erkennung eines Objekts (z.B. Coladose) • - Abtasten der Umgebung • Sonarsignal (blau) verarbeiten • Glättung durch Software (rosa) • Dosenerkennung durch Minimumlokalisierung • Roboter um 90° drehen • Hindernis anfahren • prüfen, ob magnetisch • ggf. zurückfahren und weitersuchen ODER Drop Zone suchen
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
6. Fazit • Was wurde erreicht? • Eigenes Betriebssystem entwickelt • Eigenen Compiler entwickelt • Durch Bussystem sehr modular erweiterbar • Lösen der Drop Zone Mission • Präsentation am Tag der offenen Tür • 2 komplette RoCK-Einheiten aufgebaut
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
7. Ausblick • Was wäre wünschenswert? • Was wurde nicht (mehr) erreicht • IR - Programmierbarkeit • IR-Slave und LCD nicht komplett integriert • Zweite RoCKWire-Master-Software nicht fertiggestellt • Was wäre weiterhin wünschenswert • mehr Compiler-Funktionen (z.B. weitere Datentypen, zus. Funktionen) • weitere Sensor- und Aktortypen ?
PG 420 RoCK - Abschlußvortrag • Gliederung • Einleitung • Problembeschreibung • Hardware • Software • Benchmark • Fazit • Ausblick • Live-Demonstration
8. Live-Demonstration • Präsentation • Drop-Zone-Mission mit Sonar
Robot Construction Kit • Das Team ... • Detlev Bartsch, Torsten Denno, • Pedram Hadjian, Nico Karnatz, Andre Kernchen, Andreas Klapschus, Marcus Ladwig, Michael Patzer, Matthias Reck, Christoph Schlagbaum, Daniel Smolinski, Jens Wagner, Lars Wehmeyer, Thorsten Wilmer • ... beantwortet gern Ihre Fragen!