460 likes | 720 Views
ESI Einführung. Embedded 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)
E N D
Embedded 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)
Inhalt Modul ESI • Einführung (Gelk) • ARM Systeme (Gelk) Praktikum 1 ARM Radio • Programmierung und Hardware nahe Software (Ksha) • Embedded PC Systeme (Ksha) Praktikum 2 JRex ePC • Entwurf und Realisation von Embedded System (Ksha)
Lernziele und Leistungsvereinbarung • Unterschiede Embedded System Universalrechner • Vorgehensweise bei der Entwicklung von Embedded System • Besonderheiten der ARM Architektur (IP = Intellectual Property) • 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
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
1. Einführung in Embedded Systems Was sind eingebettete Systeme?
Merkmale 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
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
Beispiel 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 …
ARM Systeme Geschichte und Architekturen der ARM Prozessoren
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
Inhalt der Heutigen Vorlesung • Geschichte der ARM Prozessoren • ARM7 und Cortex-M3 Ausstattungsmerkmale
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.
ARM verkauft keine Prozessorensondern Intellektual Property (IP)
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
Warum hat sich ARM bei embedded Produkten als Standard durchgesetzt • 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.-
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
ARM Entwicklung und Lizenznehmer • 1987: ARM2 • 1989: ARM3 • 1991: ARM6 • 1993: ARM7 • 1995: ARM8 • 1997: ARM9 • 1998: ARM10 • 2002: ARM11 • 2005: ARM Cortex Analog Devices Apple Atmel Conexant Freescale (ehemals Motorola) HTC Corporation HP IBM Infineon Intel (XScale) Luminary Micro Motorola NEC NetSilicon Nintendo NXP (ehemals PhilipsSemiconductors) Oki Palm Samsung Sony STMicroelectronics Texas Instruments Toshiba Zilog
(Stand November 2008) ARM Prozessor Cores
Vorbereitung auf das Praktikum Ein Keil uVision4 Projekt einrichten
Scan Chain JTAGPort JTAG-controller USB ULINK2 ARM Core PC Scan Flip-Flops LPC2138 Keil ULINK 2
Funktionen des Startup Code Startup Code • Definieren der Exception Vektoren • Konfigurieren der Stack Pointer • Konfigurieren der Systemperipherie(einstellen der Chip-Selects, Speicher Waitstates, I/O etc.) Ist abhängig von der Systemperipherie jedes einzelnen Bausteins und wird als Default beim Aufsetzen des Projektes kopiert.
Takt Erzeugung ARM7 Core Core Teil InterruptController SRAM/Flash System Teil Bus/Systeme A/D – D/AConverter I2C/SPIController General Purpose I/O UART Pulse Width Modulator Real TimeClock NXP LPC2138 wie in den Übungen benutzt
Target Hardware für Praktikum MCB2130 Radioplatine SCL Radio TEA5764 SDA JTAG INTx ARM LPC2138 P0.15 GPIO 0.15 P0.12 CS LCD display P0.6 SID MOSI SOD P0.5 MISO P0.7 EINT0 ENA P0.1 EINT2 Drehgeber IOPIN0.13 P0.13 ENB P1.16, P1,17, P1.18 Tastatur P1.19, P1,23
PINSEL0 Register GPIO Port0.5 00 P0.5 MISO (SPI0) 01 Match0.1 (Timer 0) 10 AD0.7 11 LPC Ausgangspad Bit 11 u. 10 von PINSEL0 Register
31 31 31 31 31 31 16 16 16 0 0 0 General Purpose I/O Register im LPC2138 GPIO-1 GPIO-0 I0 PIN I0 PIN 31 16 31 0 I0 SET I0 SET I0 CLR I0 CLR I0 DIR I0 DIR … P1.31 P1.18 P1.17 P1.16 … P0.0 P0.31 P0.2 P0.1
Beispielprogramm LED Lauflicht 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 }
Übung 1 Im Radioprojekt soll Pin 0.15 als Ausgang und auf Log 1 gesetzt werden, damit der Verstärker aus der Stummschaltung gebracht wird. Bestimmen Sie die Werte für die Register: PINSEL0 = 0x IODIR0 = 0x IOCLR0 = 0x IOSET0 = 0x Ausschnitt aus IO Registern: Ausschnitt aus Pinsel Register: Ausschnitt aus IODIR Register:
SPI (Serial Peripheral Interface) zwischen ARM und LCD-Display ARM P0.4 SCLK P0.5 MISO CharacterDisplay P0.6 MOSI P0.12 SSEL SPI Master SPI Slave
Display Routine Temporärer String zum Zwischenspeichern des Textes 1 Zeile hat 20 Buchstaben + SPI Synchronization String char tempstring[21]; sprintf(tempstring,“hello world“); sendLine2Display(n, tempstring) Zeile 1-4 Sendet Zeile über SPI an LCD
Variablen in Display Routine Temporärer String zum Zwischenspeichern des Textes 1 Zeile hat 20 Buchstaben + SPI Synchronization String char tempstring[21]; int count = 0 ; sprintf(tempstring,“Zählerwert: %d Runden“, count); sendLine2Display(n, tempstring) Zeile 1-4 Sendet Zeile über SPI an LCD