46
School of Engineerin g ESI Einführung

School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

Embed Size (px)

Citation preview

Page 1: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ESI Einführung

Page 2: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringEmbedded System Implementation

Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME und SI

Voraussetzungen: DT, TIn1 + TIn2, MC, ESE und C-Programmierung

Organisation ESI: 2 Dozierende

Hans Gelke: ARM Prozessoren

Praktikum 1: ARM (Gelk)

Hans Käser: Grundlagen und Entwicklung von Embedded Systemen,

Programmierung, Embedded PC Systeme

Praktikum 2: Embedded PC (Ksha)

Page 3: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Inhalt Modul ESI

1. Einführung (Gelk)

2. ARM Systeme (Gelk) Praktikum 1 ARM Radio

3. Programmierung und Hardware nahe Software (Ksha)

4. Embedded PC Systeme (Ksha) Praktikum 2 JRex ePC

5. Entwurf und Realisation von Embedded System (Ksha)

Page 4: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringSemesterprogramm

ESI: Embedded System Implementation Ablauf Theorie und Praktikum FS 2010 Version 1.3

Datum Kalenderwoche

Wo Nr

Theorie: Mittwoch 08.00 - 09.35 im Hörsaal TB610 Dozent Labor TE516

Praktikum Gruppen G1 .. G3 Mittwoch- / Donnerstag-Nach.

24. Februar 08

1

K1: Einführung in Embedded System Einführung Praktikum 1 ARM Projekt

Gelk P1 ARM Übung 1 G1 / G3

Gelk

03. März 09

2

fällt aus (anstelle des Ausfalls am Absolvententag 17.3.) P1 ARM Übung 1 G2

Gelk

10. März 10

3

ARM Systeme 1 Gelk P1 ARM Übung 2 G1 / G3

Gelk

17. März 11

4

ARM Systeme 2 ( Absolvententag ab 10.00 Uhr ) Gelk P1 Absolvententag (G2 ARM Übung 2)

Gelk

24. März 12

5

ARM Systeme 3 Gelk P1 ARM Radioprojekt 1 G1 / G3

Gelk

31. März 13

6

ARM Systeme 4 Gelk P1 ARM Radioprojekt 1 G2

Gelk

07. April 14

7

K3: Programmierung von Embedded System 1 Ksha

P1 ARM Radioprojekt 2 G1 / G3

Gelk

14. April 15

8

K3: Programmierung von Embedded System 2 Test 1: ARM-Prozessoren elektronisch

Ksha Gelk

P1 ARM Radioprojekt 2 G2

Gelk

21. April 16

9

K4: Embedded PC Systeme 1 Einführung Praktikum 2 Embedded PC Projekt

Ksha P2 ePC Projekt 1 G1 / G3

Ksha

28. April 17

10

K4: Embedded PC Systeme 2

Ksha P2 ePC Projekt 1 G2

Ksha

05. Mai 18

11

K2: Entwurf und Realisation von Embedded System 1 Ksha P2 ePC Projekt 2 G1 / G3

Ksha

12. Mai 19

12

K2: Entwurf und Realisation von Embedded System 2 Ksha P2 ePC Projekt 2 G2 Do: Auffahrt

Ksha

19. Mai 20

13

K5: Sensoren, Aktoren und analoge Signale Test 2: Kapitel 2 bis Kapitel 4

Ksha P2 ePC Projekt 3 G1 / G3

Ksha

26. Mai 21

14

Besprechung Test 2: Schlussbesprechung / Info zur Modulendprüfung

Ksha Gelk

P2 ePC Projekt 3 G2

Ksha

Praktikum: P1: ARM Aufgabe mit Philips ARM7 / uVision (Gelk) P2: Embedded PC (JRex-System) Aufgabe mit RTOS-32 oder ELinOS (Ksha)

Page 5: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringLernziele und Leistungsvereinbarung

1. Unterschiede Embedded System Universalrechner

2. Vorgehensweise bei der Entwicklung von Embedded System

3. Besonderheiten der ARM Architektur (IP = Intellectual Property)

4. Praktische Umsetzung an Embedded PC System und ARM System

Für Modulnote und Credits sind notwendig:

● 2 Kurzprüfungen 45 Minuten 2 Noten

● Teilnahme und Mitarbeit im Praktikum Praktikumsnote

● Erfahrungsnote = (Note K1 + Note K2 + Praktikumsnote) / 3

● Modulendprüfung 90 Minuten M-Prüfungsnote

● Modulnote = (Erfahrungsnote + 2*M-Prüfungsnote) / 3

Page 6: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Umgang und Erwartungen

● Lernen bedeutet Fehler machen Fragen sind erwünscht

● Unterstützung bei Fragen und Problemen im Labor Assistenten

● Anwesenheit und Pünktlichkeit in Theorie und Praktikum

● Aufmerksamkeit und Mitarbeit im Unterricht

● Ordnung und Sauberkeit im Labor: Kein Essen und Trinken

Fragebogen und Laborgruppe bitte mit Namen und Studiengang

Page 7: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering1. Einführung in Embedded Systems

Was sind eingebettete Systeme?

Page 8: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringMerkmale und Eigenschaften von

Embedded Systems

Embedded System: Prozess („reale Welt“) und Bediener im Zentrum

● Rechner (HW+SW) ist oft unsichtbar in das System (Gerät) integriert

● Spezialisierung: Mikrocontroller mit speziellem Programm (Firmware)

● Zuverlässigkeit und Robustheit

● Systemumfeld bestimmt die Anforderungen an das ES

● Echtzeitanforderungen (Realtime)

● Ausfallsicherheit

● Batteriebetrieb

● Oft kein Lademedium (Disk) Firmware in ROM / Flash

● Spezielle Entwicklungswerkzeuge notwendig

● Prozessorwahl ist von zentraler Bedeutung

Page 9: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

2. Bedienkonzepte

Entwicklung:

● GUI (Graphical User Interface) … PARC, Apple, OSF/Motiv, Windows

● MMI (Man Machine Interaction) … Embedded Systems

● Ergonomie

● Ben Shneiderman: Designing the User Interface

Wichtige Aspekte:

● Ziele guter Bedienkonzepte

● MMI: Man Machine Interaction (auch Man Machine Interface)

● Ein-/Ausgabe Elemente

● Prototyping

Page 10: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringBeispiel eines guten Benutzerinterfaces:

TwoTimer von Tissot

● Digitaluhren mit Zusatzfunktionen mit vier Knöpfen Bedienung?

● Tissot TwoTimer wird nur mit einer „konventionellen“ Krone bedient!

● Die sechs Funktionen können mit dem einzigen Bedienungselement „Krone“ bedient werden Anzeigeflag als Feedback

● Konsistente Bedienungsphilosophie der Krone: vorwärts/rückwärts, langsam/schnell, „ausziehen“ (set) und „eindrücken“ (start/stop/reset)

… einen guten Start ins letzte Semester …

Page 11: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ARM Systeme

Geschichte und Architekturen der ARM Prozessoren

Page 12: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

SemesterWoche

Vorlesung

1 Einführung ESI

2 Vorlesung fällt aus, Praktikum findet statt

3 ARM Architektur:

- Register- Exception

- ARM Befehlssätze

4 Software Entwicklung:- ARM und Thumb Compiler- Entwicklungstools- Interrupts

5 Philips LPC Systemperipherie:

- Flash Memory,- Bootloader/Startup Code- Timer Counter

6 - Externe Speicher - Andere Prozessoren mit ARM

Ablauf

Page 13: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Leistungsnachweise

● Elektronisches Multiple Choice Quiz am 14.4.2010

● ARM Radioprojekt muss am 7.4.2010 (G1/G3) bzw. 14.4.2010 (G2) vorführbereit sein.

○ Von den Vorschläge für ein Benutzerinterface darf abgewichen werden, es müssen aber alle Features unterstützt werden

○ Anstelle einer Dokumentation eine Power Point Präsentation auf Lap Top• Beschreibung der Haupt Statemachine

• Flussdiagramme der Hauptfunktionen

• Welche Softwaremodule (c-Dateien) wurden verwendet

• Welche Subroutinen gibt es und was sind ihre Funktionen

• Kurzbedienungsanleitung

● Abgesetzte Modulendprüfung in den Prüfungswochen

● Übungen zu den Lektionen befinden sich im www

Page 14: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Inhalt der Heutigen Vorlesung

● Geschichte der ARM Prozessoren● ARM7 und Cortex-M3 Ausstattungsmerkmale

Page 15: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ARM Geschichte

● 1980 Acorn Computer entwickelt den ATOM Heimcomputer basierend auf den Motorola 6502 8-bit Prozessor.

● 1983 begann Acorn mit dem Acorn Risc Machine Projekt . Architektur für dem ARM1 als Coprozessor zum BBC Micro. Chip Hersteller war VLSI Technologie.

● 1990 gründen Acorn und Apple Computer die ARM LTD, mit je 43%. VLSI ist Investor und Lizenznehmer (VLSI wird 1999 von Philips [heute NXP] gekauft).

● 1998 geht ARM Holdings an die Börse.● 1999 wird ARM Holdings von Acorn Computer

abgetrennt.

Page 16: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

BBC Micro 1982

Page 17: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringARM verkauft keine Prozessoren

sondern Intellektual Property (IP)

Page 18: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ARM7

Beispiel: Mobil Phone IC mit ARM7 core

Page 19: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Beispiele für den Einsatz des ARM

● Die meisten Mobiltelephone haben mindestens einen Prozessor von ARM(IPhone hat 3 ARM Prozessoren mit 600MHzIPhone 3G Cortex A9)

● MP3 Spieler● PDAs wie PALMTreo● Navigationssysteme● Game Boy Advance● DECT Telephone● TV Set Top Boxen

Page 20: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

● Geringer Stromverbrauch (ARM 7 TDMI 0.1mW/MHz)

● Gute Rechenleistung und Real Time Verhalten

● Bekannte Schnittstellen (AMBA Bus Standard). Modularer Aufbau möglich.

● Softwareinvestitionen auf ganze Prozessorfamilie einsetzbar.

● Kompakter Softwarekode. 32-bit und 16-bit Befehle

● Niedrige Kosten. Mikrocontroller von ST ab $1.-

Warum hat sich ARM bei embedded Produkten als Standard durchgesetzt

Page 21: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Produkte die ARM anbietet

● Hardware IP – synthetisierbares RTL oder Macrozellen○ Prozessor Cores (Arm7, ARM9, ARM11, Caches)○ Eingebettete Debugging Hardware (ETM)○ Direct Memory Access Controller (DMA)○ Peripherals (SDRAM Controller, UART, Card Interface)○ Java Accelerator, MP3 Codec

● Software○ -Audio Codecs○ -MPEG2 encoder

● System On chip design tools (SOC)○ - Debugger und C-Assembler○ - Entwicklungsysteme (Keil gehört zu ARM)○ - Testbenches zur Design Verifizierung○ - Beispielprogramme

● Software und Hardware ConsultingMehr unter: www.arm.com/products

Page 22: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringARM Entwicklung und

Lizenznehmer

● 1987: ARM2 ● 1989: ARM3 ● 1991: ARM6 ● 1993: ARM7 ● 1995: ARM8 ● 1997: ARM9 ● 1998: ARM10 ● 2002: ARM11 ● 2005: ARM Cortex

Analog DevicesAppleAtmelConexantFreescale (ehemals Motorola)HTC CorporationHPIBMInfineonIntel (XScale)Luminary MicroMotorola

NECNetSiliconNintendoNXP (ehemals PhilipsSemiconductors)OkiPalmSamsungSonySTMicroelectronicsTexas InstrumentsToshibaZilog

Page 23: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ARM Prozessor Cores

(Stand November 2008)

Page 24: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Page 25: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Unterscheidungsmerkmale

Typ Processor Ver Pipe-line

Cache MMU DSP Java Befehls-satz

MIPS@MHz

Embedded ARM7TDMI v4 3 nein nein nein nein ThumbARM

[email protected]

Cortex-M1 v7 3 nein nein nein nein Thumb-2 136DMIPS@170

Cortex-M3 v7 3 nein MPU nein nein Thumb-2 125DMIPS@100

Cortex-R4 v7 8 ja MPU ja nein Thumb-2ARM

600DMIPS@375

Application ARM926E-S v5 5 ja ja ja ja ThumbARM

220@200

ARM1136J-S v6 8 ja ja ja ja ThumbARM

740@600

Cortex-A8 v7 13 ja ja ja ja Thumb-2ARM

2000DMIPS@1GHz

Page 26: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Ein Keil uVision4 Projekt einrichten

Vorbereitung auf das Praktikum

Page 27: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Dateistruktur der Projekte

source

esiueb1

obj lst

main.c

display.c/.h

spi.c/.h

radio.c/.h

i2c.c/.h

key.c/.h

Page 28: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Keil uVision 4

Page 29: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ULINK2PC

USB JTAG-controll

er

ARM Core

Scan Chain

Scan Flip-Flops

JTAGPort

LPC2138

Keil ULINK 2

Page 30: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Keil ULINK2 und ULINK-ME

Page 31: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Funktionen des Startup Code

1. Definieren der Exception Vektoren2. Konfigurieren der Stack Pointer3. Konfigurieren der Systemperipherie

(einstellen der Chip-Selects, Speicher Waitstates, I/O etc.)

Startup Code

Ist abhängig von der Systemperipherie jedes einzelnen Bausteins und wird als Default beim Aufsetzen des Projektes kopiert.

Page 32: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Linken aller Source Dateien

Page 33: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Anleitung für das erste Praktikum

Page 34: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

NXP LPC2138 wie in den Übungen benutzt

CoreTeil

SystemTeil

ARM7 Core

Pulse Width Modulator

A/D – D/AConverter

InterruptController

Real TimeClock

I2C/SPIController

UART

SRAM/Flash

Bus/Systeme

Takt Erzeugung

General Purpose I/O

Page 35: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringTarget Hardware für Praktikum

RadioTEA5764

LCD display

ARMLPC2138

SCL

SDAINTx

DrehgeberENB

ENA

TastaturP1.16, P1,17, P1.18

P1.19, P1,23

P0.12

P0.13

P0.1

SID

P0.7

SOD

P0.15

CS

EINT0EINT2

IOPIN0.13

P0.6P0.5

MISOMOSI

GPIO 0.15

JTAG

MCB2130 Radioplatine

Page 36: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

PINSEL0 Register

P0.5

Bit 11 u. 10 von PINSEL0 Register

00

01

10

11

GPIO Port0.5

MISO (SPI0)

Match0.1 (Timer 0)

AD0.7LPC Ausgangspad

Page 37: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineeringPINSEL0 Beschreibung aus

UM10120 (LPC2138) Datenblatt

Page 38: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

P0.0

GPIO-0

I0 PIN

I0 SET

I0 CLR

I0 DIR

31 0

31 0

31 0

31 0

P0.31 P0.1P0.2…P1.16

GPIO-1

I0 PIN

I0 SET

I0 CLR

I0 DIR

31 16

31 16

31 16

31 16

P1.31 P1.17P1.18…

General Purpose I/O Register im LPC2138

Page 39: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

IODIR Register

Page 40: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

int main(void)

{

unsigned int delay;

unsigned int flasher = 0x00010000; // define locals

IODIR1 = 0x00FF0000; // set all ports to output

while(1)

{

for(delay = 0;delay<0x10000;delay++) //simple delay loop

{

;

}

IOCLR1 = ~flasher; //clear output pins

IOSET1 = flasher; //set the state of the ports

flasher = flasher <<1; //shift the active led

if(flasher&0x01000000) flasher = 0x00010000; //Increment flasher

//led and test for

} //overflow

}

Beispielprogramm LED Lauflicht

Page 41: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Übung 1

Im Radioprojekt soll Pin 0.15 als Ausgang und auf Log 1 gesetzt werden, damitder Verstärker aus der Stummschaltung gebracht wird.Bestimmen Sie die Werte für die Register:

PINSEL0 = 0xIODIR0 = 0xIOCLR0 = 0xIOSET0 = 0x

Ausschnitt aus Pinsel Register:

Ausschnitt aus IODIR Register:

Ausschnitt aus IO Registern:

Page 42: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Ansteuern der SPI Schnittstelle

Page 43: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

ARMMOSI

MISO

SSEL

SCLK

SPI Master SPI Slave

CharacterDisplayP0.6

P0.5

P0.12

P0.4

SPI (Serial Peripheral Interface) zwischen ARM und LCD-Display

Page 44: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Übermittlung von Daten im SPI

Page 45: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Display Routine

sendLine2Display(n, tempstring)

char tempstring[21];

sprintf(tempstring,“hello world“);

Temporärer String zum Zwischenspeichern des Textes

Sendet Zeile über SPI an LCD

Zeile 1-4

1 Zeile hat 20 Buchstaben + SPI Synchronization String

Page 46: School of Engineering ESI Einführung. School of Engineering Embedded System Implementation Vertiefungsmodul im 6. Semester für die Studiengänge ET, ME

School ofEngineering

Variablen in Display Routine

sendLine2Display(n, tempstring)

char tempstring[21];

sprintf(tempstring,“Zählerwert: %d Runden“, count);

Temporärer String zum Zwischenspeichern des Textes

Sendet Zeile über SPI an LCD

Zeile 1-4

1 Zeile hat 20 Buchstaben + SPI Synchronization String

int count = 0 ;