School of Engineering ESI Einführung. School of Engineering Embedded System Implementation...
-
Upload
kreszentia-rain -
Category
Documents
-
view
109 -
download
1
Transcript of School of Engineering ESI Einführung. School of Engineering Embedded System Implementation...
School ofEngineering
ESI Einführung
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)
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)
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)
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
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
School ofEngineering1. Einführung in Embedded Systems
Was sind eingebettete Systeme?
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
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
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 …
School ofEngineering
ARM Systeme
Geschichte und Architekturen der ARM Prozessoren
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
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
School ofEngineering
Inhalt der Heutigen Vorlesung
● Geschichte der ARM Prozessoren● ARM7 und Cortex-M3 Ausstattungsmerkmale
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.
School ofEngineering
BBC Micro 1982
School ofEngineeringARM verkauft keine Prozessoren
sondern Intellektual Property (IP)
School ofEngineering
ARM7
Beispiel: Mobil Phone IC mit ARM7 core
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
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
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
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
School ofEngineering
ARM Prozessor Cores
(Stand November 2008)
School ofEngineering
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
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
School ofEngineering
Ein Keil uVision4 Projekt einrichten
Vorbereitung auf das Praktikum
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
School ofEngineering
Keil uVision 4
School ofEngineering
ULINK2PC
USB JTAG-controll
er
ARM Core
Scan Chain
Scan Flip-Flops
JTAGPort
LPC2138
Keil ULINK 2
School ofEngineering
Keil ULINK2 und ULINK-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.
School ofEngineering
Linken aller Source Dateien
School ofEngineering
Anleitung für das erste Praktikum
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
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
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
School ofEngineeringPINSEL0 Beschreibung aus
UM10120 (LPC2138) Datenblatt
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
School ofEngineering
IODIR Register
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
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:
School ofEngineering
Ansteuern der SPI Schnittstelle
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
School ofEngineering
Übermittlung von Daten im SPI
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
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 ;