31.01.2014 Aufrufe

1.3 Grundlagen eingebetteter Systeme

1.3 Grundlagen eingebetteter Systeme

1.3 Grundlagen eingebetteter Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Eingebettete <strong>Systeme</strong><br />

(VAK 18.142)<br />

Prof. Dr.-Ing. D.P.F. Möller<br />

SS 2005<br />

Technische<br />

Informatik<br />

<strong>Systeme</strong><br />

Leitung: Prof. Dr.-Ing. D.P.F. Möller


Embedded Systems (EBS)<br />

Vorlesungsinhalte<br />

<strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

• Überblick Embedded Systems<br />

• Strukturkonzept <strong>eingebetteter</strong> <strong>Systeme</strong><br />

• <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong> im Kontext Heterogenität und<br />

Durchgängigkeit des <strong>Systeme</strong>ntwurfs<br />

• Echtzeitfähigkeit/Responsivität <strong>eingebetteter</strong> <strong>Systeme</strong><br />

• Embedded Intelligence: Taktile und haptische Komponenten<br />

<strong>eingebetteter</strong><strong>Systeme</strong><br />

• Beispiele für eingebettete <strong>Systeme</strong><br />

Architektur <strong>eingebetteter</strong> <strong>Systeme</strong><br />

• Grundstrukturen von Hardware-/Software-<strong>Systeme</strong>n<br />

• Entwurfsmethoden und Modelle für den Entwurf <strong>eingebetteter</strong><br />

<strong>Systeme</strong><br />

• Implementierungstypen: Architekturmodell; Reaktives Modell;<br />

Funktionales Modell


Embedded Systems (EBS)<br />

Vorlesungsinhalte<br />

Embedded Control<br />

• <strong>Grundlagen</strong> der Reglungstheorie<br />

• Strukturkonzept <strong>eingebetteter</strong> Regelungen<br />

• Mathematische Methoden für die Entwicklung <strong>eingebetteter</strong> Regelungssysteme<br />

• Componentware<br />

• Beispiele für Embedded Control <strong>Systeme</strong><br />

Embedded PC<br />

• Strukturkonzept Embedded PC<br />

• Embedded Prozessor<br />

• Componentware<br />

• Embedded On-Time Programmable Controller<br />

• Beispiele für Embedded PCs


Embedded Systems (EBS)<br />

Vorlesungsinhalte<br />

Datenkommunikation in eingebetteten <strong>Systeme</strong>n<br />

• Strukturkonzept der Datenkommunikation in heterogenen<br />

komplexen eingebetteten Systemumgebungen<br />

• Responsivität und Echtzeitnetze<br />

Hardware-/Software Co-Design<br />

• General Purpose Prozessoren<br />

• Custom Single Purpose Prozessoren<br />

• FSM und concurrente Prozessmodelle<br />

• IC Technologie<br />

• Entwurftechnologie<br />

• Strukturkonzept für das Hardware-/Software Co-Design<br />

• Architekturen für das HW/SW Co-Design<br />

• <strong>Systeme</strong>ntwurf: Modelle und Methoden<br />

• Generalisierte Ansätze zum Hardware-/Software Co-Design<br />

• Beispiele für das Hardware-/Software Co-Design


Embedded Systems (EBS)<br />

Lernziele d. Schwerpunkt <strong>Grundlagen</strong>veranstaltung<br />

• Aufbau eines methodisch-theoretischen Grundverständnisses<br />

(Vorlesung) und eine praktisch erworbene Grunderfahrung<br />

(Projekt) für dieses zukunftweisende Gebiet der Technischen<br />

Informatik<br />

• Aufbau von Grunderfahrungen in der praktischen Realisierung<br />

<strong>eingebetteter</strong> <strong>Systeme</strong> anhand praktischer Erfahrungen (Labor)<br />

im Rahmen experimenteller Arbeiten im Labor SMART<br />

• Aufbau eines <strong>Grundlagen</strong>wissens über den Entwurf <strong>eingebetteter</strong><br />

Componentware auf Basis von PLDs, pASICs, EBSCCM, etc., unter<br />

Berücksichtigung aus der Praxis resultierenden Anforderungen<br />

hinsichtlich Responsivität, Rekonfigurierbarkeit, Skalierbarkeit,<br />

Partitionierung, Effiizienz, Kosten, Technologie, Entwurfszeit,<br />

Fehlerfreiheit über Abstraktionsgrade, etc.


Embedded Systems (EBS)<br />

Scheinerwerb<br />

• Hausarbeit über ein Thema aus dem Gesamtgebiet<br />

Embedded Systems<br />

• Umsetzung einer hardwaretechnischen Realisierung zu<br />

einem Thema aus dem Gesamtgebiet Embedded<br />

Systems<br />

• Anwendung von Modellbildung und Simulation auf ein<br />

Thema aus dem Gesamtgebiet Embedded Systems<br />

• Entwurf <strong>eingebetteter</strong> Componentware auf Basis von<br />

PLD, pASIC, ASIP, etc. zu einem Thema aus dem<br />

Gesamtgebiet Embedded Systems<br />

• Mündliche Prüfung über das Gesamtgebiet Embedded<br />

Systems


Embedded Systems (EBS)<br />

Scheinerwerb<br />

• Hausarbeit über ein Thema aus dem Gesamtgebiet<br />

Embedded Systems<br />

Themenvorschläge:<br />

• Hardware-Software Co-Design<br />

• Partitionierungsalgorithmen<br />

• Cosyma-Konzept: Cosynthesis for Embedded Micro Architectures<br />

• Embedded Performance durch Embedded Control Architekturen<br />

• Java in der Anwendung auf das Embedded Systems Design<br />

• …


Embedded Systems (EBS)<br />

Scheinerwerb<br />

• Umsetzung einer hardwaretechnischen Realisierung zu<br />

einem Thema aus dem Gesamtgebiet Embedded<br />

Systems<br />

Themenvorschläge:<br />

• Umsetzung eines Industrie PC als Embedded PC<br />

• Aufbau einer Service-Applikation mit HTTP-Technik am Beispiel<br />

einer Wetterstation<br />

• Prototypische Umsetzung einer USB Schnittstelle<br />

• Helligkeitsregelung mit Hilfe des Embedded Controller COP8ACC7<br />

• Prototypische Realisierung einer IrDA Schnittstelle<br />

• Umsetzung einer Java-Umgebung für Embedded System Design<br />

• Remote Verbindung eines Embedded Systems bei Diagnose<br />

• …


Embedded Systems (EBS)<br />

Scheinerwerb<br />

• Anwendung von Modellbildung und Simulation auf ein<br />

Thema aus dem Gesamtgebiet Embedded Systems<br />

Themenvorschläge:<br />

• Entwurf eines µC Kernels für Embedded Control mittels BSpice<br />

• Entwurf einer CCD Kamera Componentware mittels Bspice<br />

• Entwurf eines DSP-Kernels für Embedded Control mittels Matlab<br />

Simulink<br />

• …


Embedded Systems (EBS)<br />

Scheinerwerb<br />

• Entwurf <strong>eingebetteter</strong> Componentware auf Basis von<br />

PLD, pASIC, ASIP, etc. zu einem Thema aus dem<br />

Gesamtgebiet Embedded Systems<br />

Themenvorschläge:<br />

• Entwurf eines Embedded Fuzzy Control Kernels<br />

• GAL 18V8 Testschaltung zur Darstellung der Funktionsweise incl.<br />

Layout<br />

• …


Embedded Systems (EBS)<br />

Scheinerwerb<br />

• Mündliche Prüfung über das Gesamtgebiet Embedded<br />

Systems<br />

Termine:<br />

Juli 2005<br />

Literatur zur Prüfungsvorbereitung:<br />

• D.P.F.Möller: Rechnerstrukturen, Springer Verlag, 2003<br />

• J.Teich: Digitale Hardware/Software-<strong>Systeme</strong>, Springer Verlag,<br />

1997<br />

• F.Vahid, T.Givargis: Embedded Systems Design, John Wiley &<br />

Sons, Inc, 2002


Embedded Systems (EBS)<br />

Literatur<br />

• P.J.Antsaklis, K.M.Passino: An Introduction to Intelligent and Autonomous<br />

Control, Kluwer Academic Publ., 1993<br />

• D.W.Lewis: Fundamentals of Embedded Software, Prentice Hall<br />

Publ., 2002<br />

• G.de Micheli, M.Sami: Hardware/Software Co-Design, Kluwer<br />

Academic Publ. 1994<br />

• D.P.F.Möller: Responsive <strong>Systeme</strong>, Embedded Systems and<br />

Embedded PCs, In: High Reliable Hard- and Software Software<br />

Systems, pp.15-22 Elektronik Praxis Verlag, 1999<br />

• D.P.F.Möller: Rechnerstrukturen, Springer Verlag, 2003<br />

• W.Schmitt, W.C. von Wendorff, K.Westerholz: Embedded-Control-<br />

Architekturen, Hanser Verlag, 1999<br />

• J.Teich: Digitale Hardware/Software-<strong>Systeme</strong>, Springer Verlag,<br />

1997<br />

• F.Vahid, T.Givargis: Embedded Systems Design, John Wley &<br />

Sons, Inc, 2002


Embedded Systems (EBS)<br />

1. <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.1 Überblick Embedded Systems<br />

1.2 Strukturkonzept <strong>eingebetteter</strong> <strong>Systeme</strong><br />

<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong> im Kontext Heterogenität und<br />

Durchgängigkeit des <strong>Systeme</strong>ntwurfs<br />

1.4 Echtzeitfähigkeit/Responsivität <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.5 Embedded Intelligenz: Taktile und haptische Komponenten<br />

<strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong>:<br />

1.6.1 Webgesteuerte Kopierer<br />

1.6.2 Webgesteuerte Verkaufsautomaten<br />

1.6.3 Wetterstation<br />

1.6.4 Hochleistungsantrieb


1.1 Überblick Embedded Systems<br />

Embedded Systems (Eingebettete <strong>Systeme</strong>)<br />

sind<br />

informationsverarbeitende <strong>Systeme</strong><br />

bestehend aus Hardware- und Softwarekomponenten, als integraler<br />

Bestandteil komplexer mikroelektronischer bzw. mechatronischer<br />

<strong>Systeme</strong>, die diese, meist interaktiv, steuern bzw. regeln.<br />

Eingebettete <strong>Systeme</strong> sind in der Regel in in größere, häufig heterogene<br />

Umgebungen eingefügt. Damit ist sowohl die HW als auch die SW für<br />

spezielle Anwendungsfelder zu entwerfen, um geforderte dedizierte<br />

Funktionen innerhalb des Gesamtsystems auszuführen. Im Rahmen<br />

responsiver <strong>Systeme</strong> müssen eingebettete <strong>Systeme</strong> darüber hinaus<br />

spontan und zeitgerecht auf Ereignisse aus der Umgebung reagieren.


1.1 Überblick Embedded Systems<br />

Architekturkonzepte:<br />

• Standard µCs – die neben dem Standardprozessorkern weitere<br />

unabhängig arbeitende Einheiten für spezielle Aufgaben auf dem<br />

Chip integrieren – als zentraler, jeweils auf die Anwendung<br />

angepasster Bestandteil des eingebetteten Systems<br />

• spezielle programmierbare Logikhardwarekomponenten, deren<br />

HW-Architektur wiederum Bestandteil des eingebetteten Systems<br />

ist.


1.1 Überblick Embedded Systems<br />

• Embedded computing systems<br />

• Computing systems embedded<br />

within electronic devices<br />

• Hard to define. Nearly any<br />

computing system other than a<br />

desktop computer<br />

• Billions of units produced yearly,<br />

versus millions of desktop units<br />

• Perhaps 50 per household and per<br />

automobile<br />

Computers are in here...<br />

and here...<br />

and even here...<br />

Lots more of these,<br />

though they cost a lot<br />

less each.


1.1 Überblick Embedded Systems<br />

Anti-lock brakes<br />

Auto-focus cameras<br />

Automatic teller machines<br />

Automatic toll systems<br />

Automatic transmission<br />

Avionic systems<br />

Battery chargers<br />

Camcorders<br />

Cell phones<br />

Cell-phone base stations<br />

Cordless phones<br />

Cruise control<br />

Curbside check-in systems<br />

Digital cameras<br />

Disk drives<br />

Electronic card readers<br />

Electronic instruments<br />

Electronic toys/games<br />

Factory control<br />

Fax machines<br />

Fingerprint identifiers<br />

Home security systems<br />

Life-support systems<br />

Medical testing systems<br />

Modems<br />

MPEG decoders<br />

Network cards<br />

Network switches/routers<br />

On-board navigation<br />

Pagers<br />

Photocopiers<br />

Point-of-sale systems<br />

Portable video games<br />

Printers<br />

Satellite phones<br />

Scanners<br />

Smart ovens/dishwashers<br />

Speech recognizers<br />

Stereo systems<br />

Teleconferencing systems<br />

Televisions<br />

Temperature controllers<br />

Theft tracking systems<br />

TV set-top boxes<br />

VCR’s, DVD players<br />

Video game consoles<br />

Video phones<br />

Washers and dryers<br />

…….


1.2 Strukturkonzept <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Eingebettete <strong>Systeme</strong>: wohldefinierte Architekturen bezüglich der Entscheidung,<br />

welche Systemteile besser in Hardware bzw. Software realisierbar<br />

sind; sowohl in heterogenen Umgebungen, als auch in mittleren<br />

bis kleinen Elektronik-<strong>Systeme</strong>n für spezielle Anwendungen entworfen;<br />

führen dedizierte Funktionen innerhalb des Gesamtsystems aus.


1.2 Strukturkonzept <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Beispiel Embedded System: Digitalkamera<br />

CCD<br />

Digital camera chip<br />

A2D<br />

CCD preprocessor<br />

Pixel coprocessor<br />

D2A<br />

lens<br />

JPEG codec<br />

Microcontroller<br />

Multiplier/Accum<br />

DMA controller<br />

Display ctrl<br />

Memory controller ISA bus interface UART LCD ctrl<br />

• Einzelfunktion – Digital Kamera<br />

• Straffe Vorgaben – preiswert, batteriebetrieben, klein, schnell<br />

• Reaktiv und Echtzeit – nur zu einem geringen Grad


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Eingebettete <strong>Systeme</strong>:<br />

• mikroelektronisch basierte <strong>Systeme</strong> mit Querschnittfunktion zu<br />

vielen Technologiebereichen,<br />

• erfordern Entwurfsmethodik für komplexe Strukturen mit analogen<br />

digitalen, hybriden Komponenten unter Einbindung geeigneter<br />

Schnittstellen zwischen den unterschiedlichen Komponenten, einschließlich<br />

Einbettung in die Systemumgebung. Komplexität entsteht<br />

nicht durch Anzahl der Einzelkomponenten sondern durch<br />

Heterogenität sowohl in Hardware als auch in Software.<br />

Daraus resultieren:<br />

• vielfältigere Anwendungen,<br />

• höhere Systemkomplexität/Leistungsanforderungen,<br />

• kürzere Time-to-Market in Entwicklung&Produktion,<br />

• Senkung der Entwurfs- und Testkosten durch HW/SW-Partitionierung,<br />

d.h. Aufteilung der Funktionalität in HW- und SW-Komponenten


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Vorteile <strong>eingebetteter</strong> <strong>Systeme</strong>:<br />

• Verringerter Flächenbedarf für Logikfunktionen bei gleichzeitig<br />

höherer Betriebssicherheit und Testbarkeit<br />

• Leiterplattenentflechtung durch frei wählbares PIN-Layout<br />

• Erforderliches Re-Design infolge veränderter Systemanforderungen<br />

durch Umprogrammieren<br />

• Hohe Integration und spezielle Schutzeinrichtungen gegen<br />

unerlaubtes Auslesen -bieten optimalen Know-How-Schutz-<br />

• Effektiver Entwurf durch CAD/CAE-Werkzeuge<br />

• Entwurf anwendungsspezifischer Prozessoren durch VHDL-Modell<br />

in verschiedenen Entwurfsebenen:<br />

# algorithmische Ebene<br />

# Register-Transfer-Ebene<br />

# Logikebene


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

VHDL-Entwurf beginnt mit Spezifikation:<br />

• Verhaltensbeschreibung auf algorithmischer Ebene<br />

• Verhaltensbeschreibung auf RT-Ebene z.B. VHDL-Modell<br />

• Netzliste auf Logikebene (Herstellerunabhängigkeit) auf der Stufe<br />

der Synthese<br />

• Netzliste auf Logikebene (herstellerspezifisch, z.B. VHDL, EDIF)<br />

d.h. Technologie einschließlich Erzeugung Testbitmuster, Place &<br />

Route, Layout


VHDL<br />

Entity<br />

Schnittstellenbeschreibung (Parameter, I/O-Signale)<br />

Architecture<br />

Verhaltens- oder Strukturale Beschreibung<br />

Configuration<br />

Parametrisierung des Designs, Auswahl der Architektur und von Submodulen<br />

Package<br />

'Include' für Typen, oft benötigte Funktionen, Konstanten, Komponenten


VHDL<br />

Entity (Schnittstellenbeschreibung):<br />

Innerhalb der Entity<br />

der zu beschreibenden, zu modellierenden oder zu synthetisierenden<br />

Komponente (oder des kompletten Systems)<br />

werden alle Ein- und Ausgänge zur Außenwelt, zugehörige<br />

Unterprogramme, Konstanten und weitere Vereinbarungen benannt.


VHDL<br />

Entity (Schnittstellenbeschreibung):<br />

Beispiel für Entwurfseinheit ENTITY in dem Bezeichner, spezifische Schlüsselwörter,<br />

in Großbuchstaben angegeben werden<br />

Beispiel:<br />

ENTITY entity_name IS<br />

[PORT (port_list);]<br />

END [entity_name];<br />

entity_name gibt Namen des Systems bzw. des Teilsystems an auf den sich<br />

die jeweilige Umgebung des Systems bzw. des Teilsystems bezieht.<br />

port_list gibt Liste von entsprechenden Ein- und Ausgangsignalen des Systems<br />

bzw. des Teilsystems an.


VHDL<br />

Entity (Schnittstellenbeschreibung):<br />

ENTITY: a und b als Eingangsport und c als Ausgangsport definiert.<br />

Beispiel:<br />

ENTITY and_gate IS<br />

PORT (a, b : IN Bit;<br />

c : OUT Bit);<br />

END and_gate;<br />

IN besagt das Datenfluss ins System hineingerichtet ist, d.h. Port kann nur<br />

gelesen aber nicht beschrieben werden.<br />

OUT besagt das Datenfluss aus dem System herausgerichtet ist, d.h. Port kann<br />

nur beschrieben aber nicht gelesen werden.<br />

Um PORT sowohl lesen als auch beschreiben zu können kennt VHDL Konstrukt<br />

INOUT für bidirektionalen Datenfluss. Darüber hinaus gibt es den BUFFER, bei<br />

dem bidirektionaler Datenfluss vorliegt, Konstrukt nur von einer einzigen Quelle<br />

im Entwurf beschrieben werden.


VHDL<br />

Architecture (Architektur):<br />

Innerhalb der Architektur des Modells wird die Beschreibung der<br />

Funktionalität angegeben, während Entity lediglich die Schnittstellen<br />

enthielt. Entwurfssicht (Struktur, Verhalten) wird entscheidend innerhalb<br />

dieser Beschreibung integriert, keine strikte Trennung vorgeschrieben.<br />

Für eine Entity können mehrere Architekturen angegeben werden, die je<br />

nach zu erreichendem Ziel eher funktional oder strukturell angelegt sein<br />

können.


VHDL<br />

Architecture (Architektur):<br />

Beispiel:<br />

ARCHITECTURE Verhalten OF and_gate IS<br />

--Declaration Region<br />

BEGIN<br />

c


VHDL<br />

Architecture (Architektur):<br />

Architekturkonzept: Schlüsselwort ARCHITECTURE, hat Namen, wobei<br />

auf Schlüsselwort OF Name der Entity folgt, der Architekturkonzept<br />

zugehörig ist.<br />

Vor Bezeichner BEGIN werden architekturspezifische Objekte deklariert.<br />

Zwischen Bezeichnern BEGIN und END wird Funktionsbeschreibung der<br />

Entity angegeben.<br />

Bedingungssatz nach Signalzuweisung c


VHDL<br />

Beispiel: fasst Schnittstelle und Architektur zusammen<br />

ENTITY and-gate IS<br />

PORT (a,b : IN Bit;<br />

c : OUT Bit);<br />

END and_gate;<br />

ARCHITECTURE Verhalten OF and-gate IS<br />

BEGIN<br />

c


VHDL<br />

Architecture (Architektur):<br />

Neben relationalen Operationen, z.B. StaticSignal Assignment


VHDL<br />

Configuration (Konfiguration):<br />

Um bei mehreren vorhandenen Architekturen, zugehörig zu einer Entity,<br />

für den Simulations- oder Syntheseprozess eine konkrete Konfiguration<br />

auszuwählen, wird eine entsprechende CONFIGURATION zum<br />

Übersetzungsprozess angegeben. Innerhalb dieser können Architekturvarianten<br />

und Submodule ausgewählt werden, ferner bei hierarchischen<br />

Modellen Parameter und Architekturauswahlen an die untergeordneten<br />

Modelle übergeben werden.


VHDL<br />

Configuration (Konfiguration):<br />

CONFIGURATION repräsentiert die zum Übersetzungsprozess zugehörige<br />

Konfiguration die einer beschriebenen Architektur eine bestimmte<br />

Entity zuordnet bzw. angibt welche Zuordnungen für die ggf.<br />

verwendeten Submodule in der Architektur gelten.<br />

Beispiel:<br />

CONFIGURATION and_gate_config OF and_gate IS<br />

FOR Verhalten<br />

END FOR;<br />

END and_gate_config;


VHDL<br />

Package:<br />

Typ- oder Objektdeklarationen, Beschreibungen von Prozeduren und<br />

Funktionen, die für mehrere VHDL-Beschreibungen benötigt werden,<br />

können in einem Package zusammengefasst werden. Verwendung<br />

dieser Basisstruktur ist optional, wobei Packages >standard< und<br />

>textio< in VHDL obligatorisch sind.


VHDL Modellierung<br />

Schnittstelle nach außen<br />

Modell<br />

Eine Entity pro Modell<br />

Strukturale<br />

Beschreibung<br />

Verhaltensbeschreibung<br />

Kombinierte<br />

Beschreibung<br />

Mehrere Architekturen mit<br />

verschiedenen Entwurfssichten<br />

Konfiguration 1 Default<br />

Konfiguration 2<br />

Mehrere Konfigurationen, u.a.<br />

auch Default möglich


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Eingebettete <strong>Systeme</strong> können als<br />

• Mikroprozessor oder Mikrocontroller<br />

• FPLD<br />

• Hardware-Software-Partitionierung<br />

realisiert werden. Einheitliche Beschreibung des Entwurfs <strong>eingebetteter</strong><br />

<strong>Systeme</strong> durch eine Metrik, die den Erfüllungsgrad einer Zugehörigkeitsfunktion<br />

abbildet in der allgemeinen Form der Tripelnotation


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Angewandt auf die drei Realisierungskonzepte folgt:<br />

• Mikroprozessor/Mikrocontroller<br />

min E(ψ) = E(1,0,0)<br />

d.h. Kostenfunktional optimal erfüllt, Performance und Realtime<br />

Anforderung nicht<br />

• FPLD-Architektur<br />

min E(ψ) = E(0,1,1)<br />

d.h. Kostenfunktional wird nicht Rechnung getragen, wohl aber<br />

Performance und Realtime Verhalten<br />

• Hardware-Software-Partitionierung<br />

min E(ψ) = E(1,1,1)<br />

d.h. bei Hardware-Software-Partitionierung wird Architektur<br />

erzeugt welche der eingeführten Metrik optimal genügt


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Beim HW/SW-Co-Design wird anwendungsspezifische HW/SW Partitionierung<br />

erzeugt auf Grundlage der eingeführten Tripelnotation<br />

Speicher FPLD/ASIC/ASIP Prozesser/Controller<br />

Kern RES 1<br />

Kern RES n<br />

Eingebettetes System<br />

Eingebettete Systemumgebung


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong>


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Für responsive eingebettete <strong>Systeme</strong> wird für Tripelnotation<br />

min(ψ) = E(0,1,1) Realisierung angegeben die Prozessorkern in FPLD<br />

implementiert<br />

EPROM<br />

A0 .. A8<br />

FPLD<br />

Prozessor<br />

Kern<br />

D0 .. D3<br />

/RD<br />

/WR<br />

RAM<br />

I/O-Ports


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Prozessorkern wird als VHDL-Konstrukt erzeugt und mit weiteren<br />

Systemkomponenten, die hardwaretechnisch realisiert sein können,<br />

im Rahmen des Co-Design zusammengebunden ⇒ softwareseitige<br />

Realisierung des Prozessorkerns in die hardwareseitige<br />

Systemumgebung integriert und mittels Co-Design, Co-Simulation und<br />

Co-Test optimiert.<br />

Responsivität des embedded System ist erfüllt wenn ψ R =1 erfüllt ist<br />

und die Performance des Systems die Zugehörigkeit 1 aufweist. Nach<br />

Optimierung wird Prozessorkern z.B. in geeignetem FPLD umgesetzt,<br />

Dabei ist darauf zu achten, das kein Performanceverlustauftritt.


LIBRARY ieee;<br />

USE ieee.std_logic_1164.ALL;<br />

ENTITY add4bit IS<br />

PORT (a , b : IN std_logic_vector (3 DOWNTO 0) := "0000";<br />

sum : OUT std_logic_vector (3 DOWNTO 0);<br />

carry : OUT std_logic);END add4bit;<br />

ARCHITECTURE arch_struc OF add4bit IS<br />

SIGNAL cout0, cout1, cout2 : std_logic;<br />

COMPONENT fa_behav<br />

PORT (a_in, b_in, c_in : IN std_logic := '0';<br />

sum, carry : OUT std_logic);<br />

END COMPONENT;<br />

COMPONENT fa_dataf<br />

PORT (a_in, b_in, c_in : IN std_logic;<br />

sum, carry : OUT std_logic); END COMPONENT;<br />

BEGIN<br />

fa_0 : fa_behav<br />

PORT MAP (c_in => OPEN, b_in => b(0), a_in => a(0),<br />

carry => cout0, sum => sum(0));<br />

fa_1 : fa_dataf<br />

PORT MAP (a(1), b(1), cout0, sum(1), cout1); fa_2 : fa_dataf<br />

PORT MAP (a(2), b(2), cout1, sum(2), cout2); fa_3 : fa_dataf<br />

PORT MAP (a(3), b(3), cout2, sum(3), carry);<br />

END arch_struc;<br />

CONFIGURATION conf_add4bit OF add4bit IS<br />

FOR arch_struc<br />

FOR fa_0 : fa_behav<br />

USE ENTITY work.fa_behav (arch_behav);<br />

END FOR;<br />

FOR fa_1, fa_2, fa_3 : fa_dataf<br />

USE ENTITY work.fa_dataf (arch_dataf);<br />

END FOR;<br />

END FOR;<br />

END conf_add4bit;


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Eingebettete <strong>Systeme</strong> gekennzeichnet durch:<br />

• Einzelfunktionalität→spezifische Funktion z.B. pager<br />

• Responsivität→Realtime, Hard Realtime, d.h. Reaktionszeit auf<br />

Änderungen<br />

• Feste constraints→constraints bezüglich Entwurfsmetrik; d.h.<br />

Beschreibung der Implementierungseigenschaften (Features)<br />

Kosten<br />

Größe<br />

Performance<br />

Power<br />

etc.


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong>


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

NRE:(nonrecuring engineering cost): Einmalige Entwicklungskosten des<br />

ES → nach Abschluss der ES-Entwicklung können beliebige Stückzahlen<br />

produziert werden ohne das es zu zusätzlichen Entwicklungskosten<br />

kommt<br />

UC: (Unit cost): Stückkosten des ES ohne NRE<br />

Size: Abmaße des ES; für SW häufig in Bytes und für HW in Gates bzw.<br />

Transistoren angegeben<br />

Performance: Ausführungszeit des ES<br />

Power: Stromverbrauch<br />

Flexibility: Möglichkeit die Funktionalität des ES zu verändern ohne NRE<br />

stark zu steigern; SW typischerweise sehr flexibel<br />

Time-to-Prototype: Zeit die erforderlich ist um lauffähige Version des ES<br />

zu realisieren<br />

Time-to-Market: Zeit die erforderlich ist um vermarktungsfähige Version<br />

des ES zu realisieren; berücksichtigt Entwicklungszeit, Produktionszeit,<br />

Test/Evaluation


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Maintainability: Möglichkeit das ES nach dem 1. Release zu modifizieren<br />

Correctness: Systemfunktionalität des ES wurde korrekt implementiert;<br />

Testfunktionen implementiert<br />

Safety: sicherer Betrieb des ES


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Design metric competition - improving one may worsen<br />

others<br />

lens<br />

CCD<br />

Performance<br />

Digital camera chip<br />

A2D<br />

JPEG codec<br />

DMA controller<br />

CCD preprocessor<br />

Power<br />

NRE cost<br />

Microcontroller<br />

Pixel coprocessor<br />

Size<br />

D2A<br />

Multiplier/Accum<br />

Display ctrl<br />

Memory controller ISA bus interface UART LCD ctrl<br />

• Expertise with both software<br />

and hardware is needed to<br />

optimize design metrics<br />

• Not just a hardware or<br />

software expert, as is<br />

common<br />

• A designer must be<br />

comfortable with various<br />

technologies in order to<br />

choose the best for a given<br />

application and constraints<br />

Hardware<br />

Software


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Time-to-market: a demanding design metric<br />

Revenues ($)<br />

Time (months)<br />

• Time required to develop a<br />

product to the point it can be<br />

sold to customers<br />

• Market window<br />

• Period during which the<br />

product would have highest<br />

sales<br />

• Average time-to-market<br />

constraint is about 8 months<br />

• Delays can be costly


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Losses due to delayed market entry<br />

Revenues ($)<br />

Market rise<br />

D<br />

On-time Delayed<br />

entry entry<br />

On-time<br />

Delayed<br />

W<br />

Peak revenue<br />

Peak revenue from<br />

delayed entry<br />

Market fall<br />

Time<br />

2W<br />

• Einfaches Erlös Modell<br />

• Produkt Lebensdauer =<br />

2W, Spitze bei W<br />

• Time of Market; Eintritt<br />

definiert Triangel, representiert<br />

Marktpenetration<br />

• Triangelfläche gleich Erlös<br />

• Verlust<br />

• Differenz zwischen on-time<br />

und verzögerte Trianglefläche


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Losses due to delayed market entry (cont.)<br />

Revenues ($)<br />

Market rise<br />

D<br />

On-time Delayed<br />

entry entry<br />

On-time<br />

Delayed<br />

W<br />

Peak revenue<br />

Peak revenue from<br />

delayed entry<br />

Market fall<br />

Time<br />

2W<br />

• Area = 1/2 * base * height<br />

• On-time = 1/2 * 2W * W<br />

• Delayed = 1/2 * (W-D+W)*(W-<br />

D)<br />

• Percentage revenue loss = (D(3W-<br />

D)/2W 2 )*100%<br />

Example:<br />

– Lifetime 2W=52 wks, delay D=4 wks<br />

– (4*(3*26 –4)/2*26^2) = 22%<br />

– Lifetime 2W=52 wks, delay D=10 wks<br />

– (10*(3*26 –10)/2*26^2) = 50%<br />

– Delays are costly!


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Time-to-Market Metrik:<br />

• Rechtzeitigkeit des Markteintritts hat entscheidende Bedeutung für<br />

den wirtschaftlichen Erfolg des ES<br />

• Marktfenster für ES sind relativ kurz<br />

• Verspätete Markteinführung hat negative Auswirkungen auf den<br />

wirtschaftlichen Erfolg des ES<br />

Prozentual entgangener Gewinn = (On-Time-Verspätet)/On-<br />

Time)*100%<br />

Prozentual entgangener Gewinn = (V(3*H-V)/2*H²)*100%<br />

Fläche On-Time Dreieck = H²; Fläche verspätetes Dreieck= 0.5(H-V+H)*(H-V)<br />

mit H = Höhe des Dreiecks und V als Verspätung<br />

Beispiel:<br />

Produktlebenszeit 1 Jahr (52 Wochen), d.h. H = 26<br />

V = 4 Wochen → prozentual entgangener Gewinn 22%; bei V = 10 → 50%<br />

• Komplexität der ES nimmt infolge der Leistungsfähigkeit der HW zu<br />

• Anforderungen an ES Entwicklung und Entwickler nehmen zu


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

NRE and unit cost metrics<br />

• Costs:<br />

• Unit cost: the monetary cost of manufacturing each copy of the<br />

system, excluding NRE cost<br />

• NRE cost (Non-Recurring Engineering cost): The one-time<br />

monetary cost of designing the system<br />

• total cost = NRE cost + unit cost * # of units<br />

• per-product cost = total cost / # of units<br />

= (NRE cost / # of units) + unit cost<br />

• Example<br />

– NRE=$2000, unit=$100<br />

– For 10 units<br />

– total cost = $2000 + 10*$100 = $3000<br />

– per-product cost = $2000/10 + $100 = $300<br />

Amortizing NRE cost over the units results in an<br />

additional $200 per unit


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

NRE and unit cost metrics<br />

• Compare technologies by costs -- best depends on quantity<br />

• Technology A: NRE=$2,000, unit=$100<br />

• Technology B: NRE=$30,000, unit=$30<br />

• Technology C: NRE=$100,000, unit=$2<br />

$200,000<br />

A<br />

$200<br />

A<br />

total c ost (x1000)<br />

$160,000<br />

$120,000<br />

$80,000<br />

B<br />

C<br />

per product cost<br />

$160<br />

$120<br />

$80<br />

B<br />

C<br />

$40,000<br />

$40<br />

$0<br />

0 800 1600 2400<br />

Number of units (volume)<br />

• But, must also consider time-to-market<br />

$0<br />

0 800 1600 2400<br />

Number of units (volume)


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

NRE und Unit Cost Design Metrik:<br />

Annahme: Es sind drei Technologien für das ES Design vorhanden<br />

Technologie A hat NRE Kosten von Є 2.000 und Stückkosten von Є 100<br />

Technologie B hat NRE Kosten von Є 30.000 und Stückkosten von Є 30<br />

Technologie C hat NRE Kosten von Є 100.000 und Stückkosten von Є 2<br />

Daraus lassen sich die Gesamtkosten (Total Cost) über der Stückzahl<br />

(Number of units) angeben wie folgt:<br />

Gesamtkosten = NRE Kosten + Stückkosten * Stückzahl<br />

Technologie A hat die geringsten Gesamtkosten bei kleinen Stückzahlen<br />

(1-400),<br />

Technologie B hat die geringsten Gesamtkosten bei mittleren<br />

Stückzahlen (400-2500),<br />

Technologie c hat die geringsten Gesamtkosten bei großen Stückzahlen<br />

(>2500)


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

NRE und Unit Cost Design Metrik:<br />

Größere Stückzahlen erlauben eine schnelle Amortisation der NRE und<br />

damit geringere Produktkosten<br />

Für die Produktkosten in Abhängigkeit des Volumens gilt<br />

Produktanteilige Kosten = Gesamtkosten / Stückzahl<br />

= NRE Kosten /<br />

Stückzahl+Stückkosten<br />

Damit folgt für Technologie C bei einem Volumen von 200.000, dass der<br />

Beitrag der produktanteiligen Kosten bezüglich der NRE bei<br />

Є 1000.000/200.000<br />

liegt, d.h. bei Є 0,50 und die produktanteiligen Kosten damit<br />

Є 0.50+Є 2,00 = Є 2,50.<br />

Je größer die Stückzahl desto geringer die anteiligen Produktkosten, da<br />

die NRE Kosten auf die größere Stückzahl aufgeteilt werden können


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Three key embedded system technologies<br />

• Technology<br />

• A manner of accomplishing a task, especially using technical<br />

processes, methods, or knowledge<br />

• Three key technologies for embedded systems<br />

• Processor technology<br />

• IC technology<br />

• Design technology


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Funktionalität unterschiedlicher Prozesssortypen:<br />

a) general purpose (SW); b) application specific; c) single purpose (HW)


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong>


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

General-purpose processors<br />

• Programmable device used in a variety of<br />

applications<br />

• Also known as “microprocessor”<br />

• Features<br />

• Program memory<br />

• General datapath with large register file<br />

and general ALU<br />

• User benefits<br />

• Low time-to-market and NRE costs<br />

• High flexibility<br />

• “Pentium” the most well-known, but there<br />

are hundreds of others<br />

Controller<br />

Control<br />

logic and<br />

State<br />

register<br />

IR<br />

PC<br />

Program<br />

memory<br />

Assembly code<br />

for:<br />

total = 0<br />

for i =1 to …<br />

Datapath<br />

Register<br />

file<br />

General<br />

ALU<br />

Data<br />

memory


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

General Purpose Processor (µP)in ES<br />

• Programmierbar<br />

• Time –to-Market kurz<br />

• Kosten auch bei kleinen Stückzahlen gering da Halbleiterhersteller<br />

die NRE Kosten auf die gesamte Stückzahl verteilt<br />

• Flexibilität groß da nur Code geändert werden muss<br />

An ES designer simply uses a GPP by programming the processor's<br />

memory to carry out the required functionality<br />

Diese Vorgehensweise bei der Implementierung entspricht einer<br />

Softwarelösung


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

GPP<br />

• Processor<br />

• Digital circuit that performs a<br />

computation tasks<br />

• Controller and datapath<br />

• General-purpose: variety of computation<br />

tasks<br />

• Single-purpose: one particular<br />

computation task<br />

• Custom single-purpose: non-standard<br />

task<br />

• A custom single-purpose processor<br />

may be<br />

• Fast, small, low power<br />

• But, high NRE, longer time-to-market,<br />

less flexible<br />

lens<br />

CCD<br />

Digital camera chip<br />

A2D<br />

JPEG codec<br />

DMA controller<br />

CCD<br />

preprocessor<br />

Microcontroller<br />

Pixel coprocessor<br />

Display<br />

ctrl<br />

D2A<br />

Multiplier/Accum<br />

Memory controller ISA bus interface UART LCD ctrl


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Kombinatorischer Logikentwurf<br />

A) Problemstellung<br />

B) Wahrheitstabelle<br />

C) Ausgangsgleichungen<br />

y ist 1 wenn a ist 1, oder b und c<br />

sind 1.<br />

z ist 1 wenn b oder c ist 1, aber nicht<br />

beide, oder wenn alle 1 sind<br />

D) Minimierte Ausgangsfunktion<br />

y<br />

a bc 00 01 11 10<br />

0 0 0 1 0<br />

1<br />

1<br />

z<br />

a bc 00<br />

0 0<br />

1<br />

0<br />

1 1 1<br />

y = a + bc<br />

01 11 10<br />

1 0 1<br />

1 1 1<br />

Eingänge Ausgäng<br />

a b c y e z<br />

0 0 0 0 0<br />

0 0 1 0 1<br />

0 1 0 0 1<br />

0 1 1 1 0<br />

1 0 0 1 0<br />

1 0 1 1 1<br />

1 1 0 1 1<br />

1 1 1 1 1<br />

a<br />

b<br />

c<br />

y = a'bc + ab'c' + ab'c + abc' + abc<br />

z = a'b'c + a'bc' + ab'c + abc' + abc<br />

E) Logikglieder<br />

y<br />

z<br />

z = ab + b’c + bc’


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Sequentieller Logikentwurf<br />

A) Problemstellung<br />

C) Implementations Model<br />

D) Zustands Tabelle (Moore-Type)<br />

Entwicklung Taktunterteilung<br />

welche das existierenden Takt-<br />

Signal derart unterteilt das jeweils<br />

nach vier Takten eine 1 am<br />

Ausgang anliegt<br />

a=0<br />

B) Zustands-Diagramm<br />

x=0<br />

0<br />

a=1<br />

x=1<br />

3<br />

a=0<br />

a<br />

Kombinatorische Logik<br />

Q1 Q0<br />

Zustandsregister<br />

I1 I0<br />

x<br />

I1<br />

I0<br />

Eingang Ausgang<br />

Q1 Q0 a I1 I0<br />

0 0 0 0 0<br />

0 0 1 0 1<br />

0 1 0 0 1<br />

0 1 1 1 0<br />

1 0 0 1 0<br />

1 0 1 1 1<br />

1 1 0 1 1<br />

1 1 1 0 0<br />

x<br />

0<br />

0<br />

0<br />

1<br />

a=1 a=1<br />

a=0<br />

1<br />

a=1<br />

2<br />

x=0<br />

x=0<br />

a=0<br />

Implementations Model gegeben:<br />

• Sequentieller Logikentwurf kann in<br />

kombinatorischen Logikentwurf überführt werden


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Sequentieller Logikentwurf<br />

E) Minimierte Ausgangsgleichungen F) Kombinatorische Logik<br />

I1 Q1Q0<br />

a 00 01 11 10<br />

a<br />

0 0 0 1 1<br />

I1 = Q1’Q0a + Q1a’ +<br />

1<br />

Q1Q0’<br />

0 1 0 1<br />

x<br />

I0 Q1Q0<br />

00 01 11<br />

a<br />

0 0 1 1<br />

10<br />

0<br />

I0 = Q0a’ + Q0’a<br />

I1<br />

1<br />

1 0 0 1<br />

x<br />

a<br />

Q1Q0<br />

00 01 11 10<br />

0<br />

1<br />

0<br />

0<br />

0<br />

0<br />

1<br />

1<br />

0<br />

0<br />

x = Q1Q0<br />

Q1 Q0<br />

I0


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Single-Purpose Processor<br />

• Digital circuit designed to execute exactly one<br />

program<br />

• coprocessor, accelerator or peripheral<br />

• Features<br />

• Contains only the components needed to<br />

execute a single program<br />

• No program memory<br />

• Benefits<br />

• Fast<br />

• Low power<br />

• Small size<br />

Controller<br />

Control<br />

logic<br />

State<br />

register<br />

Datapath<br />

index<br />

total<br />

+<br />

Data<br />

memory


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Single Purpose Processor (SPP) in ES<br />

• Digitales HW-System welches nur ein Programm ausführt;<br />

Beispiel: Digitalkamera; alle Komponenten, bis auf den µC sind SPP


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Single Purpose Processor (SPP) in ES<br />

Beispiel: Digitalkamera; alle Komponenten, bis auf den µC sind SPP<br />

JEPEG Code führt ein einzelnes Programm zur Datenkompression und<br />

Datendekompression von Video Sequenzen aus.<br />

An ES designer may create a SPP by designing a custom digital circuit<br />

Diese Vorgehensweise bei der Implementierung entspricht einer Hardwarelösung<br />

• FPLD<br />

• FPGA<br />

• pASIC<br />

• VHDL


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Application Specific Processors (ASIP) in ES<br />

• ASIP: programmierbarer Prozessorkern für eine Klasse bestimmter<br />

Anwendungen, die sich durch gleiche Charakteristiken darstellen<br />

lassen, z.B.:<br />

~Embedded Control (EC)<br />

~DSP<br />

~Telekommunikation<br />

µC und DSP sind zwei typische Vertreter für ASIPs<br />

• µC: µP der für EC Anwendungen optimiert wurde<br />

• DSP: µP der für digitale Signalverarbeitung optimiert wurde,<br />

repräsentiert durch spezielle Tasks wie<br />

~Signalfilterung<br />

~Transfomationen<br />

d.h. rechenintensive mathematische Operationen


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

µC<br />

• Ein-Chip µP: typischerweise für ereignisgesteuerte Echtzeit-<br />

Regelung technischer Prozessen eingesetzt. Häufig für EC<br />

eingesetzt die rauen Umwelteinflüssen ausgesetzt sind<br />

• Repräsentiert Integration einer CPU mit Speicher und<br />

Peripherie auf einem Chip<br />

• Vielzahl vom µC enthalten µP, der zuerst für General Purpose<br />

Anwendungen entwickelt und später mit Veränderungen im<br />

Embedded Bereich eingesetzt wurde.<br />

Beispiele: Motorola HC11 und 68K-Familie, deren Vorgänger<br />

der 6800 und der 68000 sind, Intel 8096, PIC (Mikrochip).<br />

Allerdings gibt es eine Reihe von Architekturen, die direkt für<br />

embedded Anwendungen entwickelt wurden, zu ihnen zählen<br />

M-Core TM , TriCore TM , die SH7000, die 8051- und die C166-<br />

Familie. Auf hohe I/O-Leistung, niedrigen Leistungsbedarf,<br />

hohe Codedichte und niedrige Produktionskosten optimiert.


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

µC<br />

⇒<br />

⇒<br />

⇒<br />

⇒<br />

In den 80er Jahren wurden Ein-Chip-Computer in µC umgenannt,<br />

die Produkte dahinter blieben teilweise die gleichen.<br />

Ende der 80er Jahre der Begriff EC. Damit wollte man sich gegenüber<br />

den programmierbaren <strong>Systeme</strong>n, wie dem PC abgrenzen.<br />

ES sind dediziert für eine Anwendung entworfen, so dass das ganze<br />

Programm als ROM oder EPROM fester Bestandteil des Pro-duktes<br />

ist und nicht vom Anwender verändert wird.<br />

in den 90er Jahren wurde durch eine weitere Integration, der breiten<br />

Nachfrage nach 16 Bit Controllern und die zunehmende Vernetzung<br />

der Controller durch standardisierte Protokolle charakterisiert


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

IC technology<br />

• The manner in which a digital (gate-level) implementation is mapped<br />

onto an IC<br />

• IC: Integrated circuit, or “chip”<br />

• IC technologies differ in their customization to a design<br />

• IC’s consist of numerous layers (perhaps 10 or more)<br />

• IC technologies differ with respect to who builds each layer<br />

and when


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

IC technology<br />

CMOS Transistor<br />

• Zentrale elektrische Komponente in digitalen <strong>Systeme</strong>n<br />

• Funktion als Ein/Aus Schalters<br />

• Gatespannung steuert den Strom vom Source zum Drain<br />

source<br />

gate<br />

Leitend wenn<br />

gate=1<br />

1<br />

gate<br />

drain<br />

IC Gehäuse<br />

IC<br />

source<br />

oxide<br />

channel<br />

drain<br />

Silicon substrate


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

IC technology<br />

• Three types of IC technologies<br />

• Full-custom/VLSI<br />

• Semi-custom ASIC (gate array and standard cell)<br />

• PLD (Programmable Logic Device)


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Full-custom/VLSI<br />

• All layers are optimized for an embedded system’s particular digital<br />

implementation<br />

• Placing transistors<br />

• Sizing transistors<br />

• Routing wires<br />

• Benefits<br />

• Excellent performance, small size, low power<br />

• Drawbacks<br />

• High NRE cost (e.g., $300k), long time-to-market


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

VLSI<br />

VLSI technology used to speed up the implementation of powerful digital<br />

circuits at low cost. Based on VLSI it has become possible building chips<br />

with more than 10 7 transistors, as exemplified by today state-of-the-art µP<br />

like Intel Pentium. Chips are realized using full customized approaches,<br />

where all parts of the VLSI-Circuit-Design are tailor-made to meet the<br />

specific requirements of the design. Semi-custom approaches like<br />

Standard Cells (SC) and Mask-Programmed Gate Arrays (MPGA) have<br />

provided an easier way of designing and manufacturing Application<br />

Specific Integrated Circuits (ASICs). In MPGA all mask layers that define<br />

the logic circuit structure of the chip are pre-defined by the manufacturer,<br />

except those that specify the final metal layers, that are customized to<br />

connect transistors in the array, because MPGAs consist of rows of


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Semi-custom<br />

• Lower layers are fully or partially built<br />

• Designers are left with routing of wires and maybe placing some<br />

blocks<br />

• Benefits<br />

• Good performance, good size, less NRE cost than a full-custom<br />

implementation (perhaps $10k to $100k)<br />

• Drawbacks<br />

• Still require weeks to months to develop


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

PLD (Programmable Logic Device)<br />

• All layers already exist<br />

• Designers can purchase an IC<br />

• Connections on the IC are either created or destroyed to<br />

implement desired functionality<br />

• Field-Programmable Gate Array (FPGA) very popular<br />

• Benefits<br />

• Low NRE costs, almost instant IC availability<br />

• Drawbacks<br />

• Bigger, expensive (perhaps $30 per unit), power hungry, slower


<strong>Grundlagen</strong> PLD<br />

PLD in<br />

• Simple PLD (monolithische PLD),<br />

• Complex PLD (blocksegmentierte PLD)<br />

• Field-Programmable-Gate-Arrays (Channel-Array-PLD)<br />

eingeteilt.<br />

Einteilung willkürlich, weder vollständig noch disjunkt, entstammt dem<br />

Bemühen zur Schaffung einer strukturellen Übersicht


<strong>Grundlagen</strong> PLD<br />

Simple PLD:<br />

beinhalten programmierbaren Block<br />

⇒ Logikblock 1. Ordnung<br />

⇒ Ein- und Ausgänge als Anschlüsse nach außen geführt<br />

⇒ Ausgänge rückkoppelbar<br />

⇒ Anzahl der Standard-Gatterfunktionen beträgt 100 bis 500<br />

⇒ über 20 bis 44 Anschlusspins belegbar<br />

⇒ Intern finden sich UND (AND), ODER (OR), NICHT-UND (NAND),<br />

NICHT-ODER (NOR) Verknüpfungsglieder, als einheitliche Struktur<br />

⇒ Ausgänge häufig konfigurierbar ausgelegt, als Ausgangs Makrozellen<br />

(Output Macro Cell).<br />

Beispiele für SPLD sind:<br />

• PAL (PAL = Programmable Arrary Logic),<br />

• GAL (GAL = Generic Array Logic),<br />

• FPLA (Field Programmable Logic Array) Bausteine.


<strong>Grundlagen</strong> PLD<br />

Programmierbarer logischer Block 1. Ordnung<br />

⇒ repräsentiert innerhalb programmierbarer Logikbausteine atomare<br />

Einheit,<br />

⇒ so programmierbar, dass Signale zu- bzw. abschaltbar sind,<br />

⇒ Zuteilung bzw. Wegnahme von Verknüpfungs- bzw. Verbindungsressourcen<br />

nicht möglich.<br />

Zahl der Eingänge eines Logikblock 1. Ordnung weist festgelegten<br />

maximalen Wert auf.<br />

Logikblöcke 2. und höherer Ordnung aus veränderlichen Verbindungsressourcen<br />

zwischen Logikblöcken niedrigerer Ordnung ableitbar.


<strong>Grundlagen</strong> PLD<br />

CPLD (CPLD = Complex Segmented Block Device):<br />

als interne Kopplung mehrerer SPLD (SPLD = Simple Programmable<br />

Logic Device) betrachtet<br />

⇒ enthalten Logikblöcke 2. Ordnung,<br />

⇒ besitzen eine Blockstruktur wie beispielsweise GALs,<br />

⇒ sind programmierbar, mit programmierbaren Verbindungen zwischen<br />

den Blöcken.<br />

⇒ Ausgänge der Blöcke nicht mehr als physikalische Anschlüsse<br />

verfügbar<br />

⇒ Anzahl der Gatterfunktionen liegt bei 500 bis 5000.<br />

Beispiele für CPLD sind:<br />

•MACH-Bausteine von Advanced Micro Devices (AMD),<br />

•pLSI10xx- und ispLSI10xx-Familie von Lattice,<br />

•MAX-Serie von Altera.


<strong>Grundlagen</strong> PLD<br />

FPGA (FPGA = Field Programmable Gate Array):<br />

⇒ beinhalten Blockstruktur, aber viel feinere Granularität, in der Regel<br />

als einfache Gatter bzw. Register Struktur,<br />

⇒ zwischen Gattern sind dezentrale Verbindungen programmierbar,<br />

teilweise unterschiedliche Geschwindigkeit und Zuordnung, sog.<br />

shortlines bzw. longlines,<br />

⇒ Anschlusspins der Logikbausteine über spezielle I/O-Puffer herausgeführt,<br />

⇒ flexibles FPGA Konzept ermöglicht Herstellung von weit über 100.000<br />

Gatterfunktionen pro Baustein.<br />

Beispiele für FPGA findet man in der<br />

• Spartan FPFA-Familie von Xilinx.<br />

So kann beispielsweise mit dem FPGA-Baustein XCS30XL von Xilinx,<br />

einem Gatter-Baustein mit nur 30000 Gattern, ein PCI-Interface zum<br />

Preis von etwa 4 Euro realisiert werden.


<strong>Grundlagen</strong> PLD<br />

Gatteräquivalente<br />

FPGAs<br />

(Channeled-Array PLDs)<br />

10000<br />

(1000...20000 Gatteräquivalente,<br />

10...100<br />

MHz)<br />

1000<br />

100<br />

CPLDs<br />

(Segmented-Block<br />

PLDs) (500...5000<br />

Gatteräquivalente,<br />

25...150 MHz)<br />

PAL, GAL, FPLA<br />

(bipolar, CMOS<br />

EPROM/<br />

EEPROM/)<br />

LCA 20xx/30xx/31xx/40xx (Xilinx, CMOS SRAM)<br />

AT10xx/AT12xx (Actel, CMOS Antifuse)<br />

ATT1C05 (AT&T, CMOS SRAM)<br />

pASIC (QuickLogic u. Cypress, Vialink Antifuse)<br />

CP2xxxx (Crosspoint Solution, CMOS Antifuse)<br />

CLi600x (Concurrent Logic, CMOS SRAM)<br />

A<br />

MACH (AMD, CMOS EEPROM)<br />

MAX (Altera u. Cypress, CMOS EPROM)<br />

(is)pLSI (Lattice, CMOS EEPROM)<br />

FPGA (Plus Logic, CMOS EPROM)<br />

PEEL (ICT, CMOS EEPROM)<br />

PML (Signetics, CMOS EPROM)<br />

ATVxxxx (Atmel)<br />

SPLDs (monolithische PLDs)<br />

(100...500 Gatteräquivalente, 60...150 MHz)<br />

20 44 84 120 >175<br />

Anzahl der externen Anschlüße


<strong>Grundlagen</strong> PLD<br />

PLD geringer Gatterdichte (SPLD)<br />

⇒ zur Realisierung einfacher Schaltnetze und Zustandsautomaten<br />

⇒ Ausnutzungsgrad wegen fest vorgegebener interner Struktur nicht optimal<br />

→ PLD hoher Gatterdichte versuchen diesen Mangel zu<br />

beseitigen<br />

CPLD<br />

⇒ bieten durch vorgegebene Blockstruktur Basis für die Integration<br />

komplexer Logikfunktionen in einem Logikbaustein die den Umfang<br />

mehrerer SPLD umfassen können.<br />

⇒ Eigenschaft vorteilhaft anwendbar wenn Logikschaltungsentwurf vorhanden,<br />

z.B. auf Basis von SPLD, oder Logik Partitionierung in<br />

Blöcken mit geringen Kommunikationsanteilen.<br />

⇒ wichtiges Kennzeichen für diesen Bausteintyp ist Vorhersagbarkeit<br />

der Arbeitsgeschwindigkeit der programmierten Logikschaltung.


<strong>Grundlagen</strong> PLD<br />

FPGA<br />

⇒ bieten größten Freiheitsgrad, da Chipfläche weder durch Faltung noch<br />

durch Blockbildung im Ausnutzungsgrad eingeschränkt wird,<br />

⇒ durch interne Struktur der FPGA wird die automatische Synthese<br />

vorteilhaft unterstützt.<br />

Vor dem Hintergrund Heterogenität programmierbarer Logikbausteine und<br />

der damit verbundenen Möglichkeit digitale <strong>Systeme</strong> auf unterschiedlichen<br />

Komplexitätsstufen entwerfen zu können, ist vor Einsatz programmierbarer<br />

Logikbausteine im Anwendungszusammenhang zweckmäßigerweise<br />

eine technologische Bewertung durchzuführen.<br />

Kriterien hierfür sind:<br />

• Welche Komplexität soll bzw. darf der Baustein haben?<br />

• Wie viele interne und externe Register, Anschlüsse und Taktsignale<br />

werden benötigt?<br />

• Wie hoch darf die Stromaufnahme sein?<br />

• Welche Pin-zu-Pin Verzögerungszeit ist maximal zulässig?


<strong>Grundlagen</strong> PLD<br />

• Wo liegen die Kosten für die in Frage kommenden programmierbaren<br />

Logikbausteine und für die Entwicklungswerkzeuge?<br />

• Sind bereits nutzbare Entwicklungswerkzeuge vorhanden?<br />

• Müssen geeignete Programmiergeräte angeschafft werden oder können<br />

bereits existierende genutzt werden?<br />

• In welchem zeitlichem Rahmen bewegt sich Programmierdauer, legt<br />

den Durchsatz innerhalb der Softwareabteilung fest ?<br />

• Lässt sich das Bauteil löschen und wieder programmieren und wie oft?<br />

• Sind Bausteine einsetzbar die im eingebauten Zustand programmierbar<br />

oder dynamisch rekonfigurierbar sind?<br />

• Lässt sich der Baustein gegen Auslesen schützen?<br />

• Ist der programmierbare Logikbaustein mit Testvektoren oder Boundary-<br />

Scan testbar?<br />

• Auf welchen Plattformen läuft die Entwicklungssoftware?


<strong>Grundlagen</strong> PLD<br />

•Gibt es Simulationsmodelle für den ausgewählten programmierbaren<br />

Logikbaustein und können sowohl logische als auch laufzeitmäßige<br />

Simulation durchgeführt werden?<br />

•Gibt es mehr als einen Hersteller/Anbieter für den programmierbaren<br />

Logikbaustein?<br />

•Gibt es mehr als einen Hersteller bzw. Anbieter für die Entwicklungssoftware,<br />

ggf. Herstellerübergreifend?<br />

•Lassen sich Kriterien angeben Entwürfe zweckmäßig in einem PLD umzusetzen,<br />

oder ist Aufteilung auf zwei oder mehrere kleinere und in der<br />

Regel preisgünstigere programmierbare Logikbausteine möglich?


<strong>Grundlagen</strong> PLD<br />

Anwenderprogrammierbare Logikbausteine (PLD) lassen sich durch<br />

‣programmierbare Elemente<br />

‣deren Zusammensetzung zu Logikblöcken erster und zweiter Ordnung<br />

beschreiben.<br />

Die in unterschiedlichen Ausprägungen in jedem IC dieser Klasse enthaltenen<br />

Grundelemente sind:<br />

• Eingangsblock<br />

• Programmierbare UND- bzw. ODER-Zelle (bzw. NAND-,NOR-Zelle)<br />

• Ausgangsblock<br />

• Programmierbare Rückkopplung


<strong>Grundlagen</strong> PLD<br />

Programmierbare Rückkopplung<br />

Eingang<br />

Eingangs-<br />

Block<br />

Programmierbare<br />

UND/ODER-<br />

Matrix (Array)<br />

Ausgangs-<br />

Block<br />

Ausgang


<strong>Grundlagen</strong> PLD<br />

Eingangsblock:<br />

• beinhaltet Treiber mit und ohne Invertierung<br />

• Eingangsregister, dessen Aufbau, hier als D-Flipflop dargestellt,<br />

variieren kann.<br />

Input_Mode<br />

Input<br />

D<br />

Q<br />

0<br />

1<br />

Invertiert<br />

Input_Clock<br />

Normal


<strong>Grundlagen</strong> PLD<br />

Eingangsregister<br />

bei PLD mit geringer Gatterdichte in der Regel nicht vorhanden, lediglich<br />

spezielle PAL Bausteine weisen derartige Register auf. Die sich damit<br />

ergebende Vereinfachung ist nachfolgend dargestellt.


<strong>Grundlagen</strong> PLD<br />

Programmierbare UND- bzw. ODER-Matrix baut auf einheitlichem<br />

Grundprinzip auf:<br />

⇒ jedes programmierbare Gatter erhält definierte Anzahl von Eingängen,<br />

die mit Eingangsblock oder anderer Zelle verbunden sein können so<br />

dass sowohl ein normaler als auch ein negierter Eingang an der Zelle<br />

anliegen.<br />

⇒ Programmierelemente im unprogrammierten Zustand intakt, d.h. nicht<br />

unterbrochen, bedeutet für UND-Zelle dass logische Verknüpfung<br />

immer logisch „0“ ergibt, für ODER-Zelle dementsprechend immer<br />

logisch „1“.<br />

⇒ offene, d.h. unterbrochene Eingänge für UND-Zellen sind mit dem<br />

Wert logisch „1“, für ODER-Zellen mit logisch „0“ belegt.


<strong>Grundlagen</strong> PLD<br />

⇒ UND-Gatter in Matrix ständig auf logisch „0“ gehalten, wenn<br />

mindestens für einen Eingang beide Verbindungen unprogrammiert<br />

bleiben (links oben dargestellt).<br />

⇒ Demgegenüber hat Eingang bei dem die Verbindungen getrennt sind<br />

keinen Einfluss auf die logische Verknüpfung (oben rechts dargestellt).<br />

⇒ Untere Reihe in Abbildung zeigt weitere mögliche Kombinationen<br />

einer Programmierung. Unten links wird der Eingang 1 (E1) nicht<br />

invertiert am Ausgang wiedergegeben d.h. ohne Beeinflussung von<br />

E2. Demgegenüber lautet das Ergebnis der programmierbaren UND-<br />

Zelle, rechts unten dargestellt, /E1*E2 .


<strong>Grundlagen</strong> PLD<br />

unprogrammiert<br />

&<br />

inaktiv<br />

&<br />

E1<br />

E1<br />

E2<br />

E2<br />

A = E1<br />

&<br />

A = /E1 * E2<br />

&<br />

A<br />

A


Dargestellte Konfiguration für Ausgangsblock gibt Anhalt für vielfältige<br />

Möglichkeiten übergeordnete bzw. zeitliche Funktionen des Ausgangs zu<br />

realisieren.<br />

Beispielsweise kann das logisch verknüpfte Signal (Log. Signal) durch<br />

das XOR Konfigurations-Bit im Pegel invertiert werden, bevor es,<br />

abhängig vom Logikzustand des Synchronisierungs-Bit, synchronisiert<br />

oder als kombinatorisch sequentielles Logikelement an den Ausgang<br />

weitergeleitet wird.<br />

Weitere Hilfsgrößen im Ausgangsblock resultieren aus spezialisierten<br />

Eingängen oder aus logischen Verknüpfungen innerhalb der Programmiermatrix.<br />

<strong>Grundlagen</strong> PLD<br />

Ausgangsblock:<br />

legt übergeordnete bzw. zeitliche Funktionen des Ausgangs fest.


<strong>Grundlagen</strong> PLD<br />

Tristate Signal:<br />

schaltet Treiber des Ausgangs aktiv oder passiv.<br />

Durch Tristate Funktion ist es möglich Ausgang zeitweise oder ganz als<br />

Eingang zu nutzen.<br />

Taktsignal Output_Clock ist an einzelne Ausgänge gekoppelt, teilweise<br />

auch konfigurierbar oder logisch verknüpfbar.<br />

Reset- bzw. Preset Bedingungen des Ausgangsblocks können wahlweise<br />

synchron bzw. asynchron für D-Register eingestellt werden.<br />

Anwender stehen damit für Schaltungsentwurf vielfältige Konfigurationsmöglichkeiten<br />

durch den Ausgangsblock zur Verfügung.


<strong>Grundlagen</strong> PLD<br />

Tristate-Signal<br />

Reset (asynchron, synchron)<br />

Preset (asynchron, synchron)<br />

Output_Clock<br />

Log. Signal<br />

=1<br />

D<br />

SYN-Bit<br />

Q 1<br />

0<br />

Output<br />

XOR-Bit<br />

Rückkopplung


<strong>Grundlagen</strong> PLD<br />

MATRIX<br />

UND-<br />

ODER-<br />

MATRIX


<strong>Grundlagen</strong> PLD<br />

I1<br />

Eingänge<br />

I1<br />

I0<br />

I0<br />

ODER-Matrix<br />

UND-<br />

Matrix<br />

&<br />

&<br />

&<br />

&<br />

Wort0<br />

Wort1<br />

Wort2<br />

Wort3<br />

bedeutet feste Verbindung,<br />

programmierbare Verbindung (Fuse)<br />

> 1 >1<br />

O1<br />

O0<br />

Ausgänge


<strong>Grundlagen</strong> PLD<br />

Bei schematischer Darstellung von PAL Bausteinen wird von der üblichen<br />

Logikdarstellung abgewichen, wie aus der Abbildung ersichtlich.<br />

e1<br />

e1<br />

e2 e3<br />

e2<br />

e3<br />

&<br />

a = e1*e2*e3<br />

&<br />

a = e1*e2*e3<br />

Normale Darstellung<br />

PLD-Darstellung


<strong>Grundlagen</strong> PLD<br />

PAL:<br />

• Gruppe durch Anwender programmierbarer Logikbausteine<br />

• PAL Struktur beinhaltet neben programmierbarer UND-Matrix und<br />

festen ODER-Verknüpfungen spezielle Ausgangsblöcke, in der Regel<br />

als sog. Ausgangslogik Makrozelle OLMC realisiert (OLMC = Output<br />

Logic Macro Cell)<br />

• programmierbare Rückkopplungen<br />

• Eingangsblöcke sind nur in speziellen Bausteinen vorhanden


<strong>Grundlagen</strong> PLD<br />

I0 I1 In<br />

..<br />

..<br />

&<br />

&<br />

&<br />

&<br />

UND-<br />

MATRIX<br />

programmierbar<br />

ODER-<br />

MATRIX<br />

fest<br />

..<br />

..<br />

> 1<br />

>1<br />

O1<br />

Om


<strong>Grundlagen</strong> PLD<br />

Beispiel:<br />

Boolesche Funktion y = e1 * /e2 + /e1 * e2, die Ausgang y als Exclusive-ODER (XOR)<br />

Verknüpfung der Eingänge e1 und e2 beschreibt, soll in PAL-Architektur umgesetzt<br />

werden.<br />

e1<br />

e2<br />

Sicherung intakt<br />

&<br />

&<br />

> 1<br />

y<br />

Sicherung gebrannt


<strong>Grundlagen</strong> PLD<br />

Logische Funktion y = e1 * /e2 + /e1 * e2<br />

E1<br />

&<br />

> 1<br />

Y<br />

E2<br />

&


<strong>Grundlagen</strong> PLD<br />

Entwurf eines universellen Logikbausteins der vier Eingänge nach Wahl als UND, ODER, NOR<br />

bzw. NAND Gatter verknüpft; Logik soll in PLD Baustein implementiert werden.


<strong>Grundlagen</strong> PLD


<strong>Grundlagen</strong> PLD<br />

An und Bn sind die zu addierenden Bits, Sn ist die sich ergebende Summe und Cn+1 ist<br />

der für die nächste Stelle sich ergebende Übertrag.<br />

Verknüpfung von zwei Halbaddieren mit einem Odergatter zum Volladdierer


<strong>Grundlagen</strong> PLD


<strong>Grundlagen</strong> PLD<br />

Programmierung PLD:<br />

Zunächst wird ein Textfile erstellt der neben verschiedenen Informationen die<br />

logischen Zusammenhänge zwischen den Ein- und Ausgängen in Form von<br />

logischen Gleichungen enthält.<br />

Textfile wird anschließend von Logikcompiler verarbeitet, der die zur<br />

Programmierung des GAL Bausteins notwendigen Dateien erzeugt.<br />

Bei ispLSI werden diese Dateien vom PC direkt in den ispGAL Baustein geladen<br />

(download).<br />

Logische Funktion des programmierten Bausteins kann mit Test-Software<br />

getestet werden. Die Ein und Ausgänge des programmierten Bausteins können<br />

dabei interaktiv vom PC beeinflusst werden und angezeigt werden.


<strong>Grundlagen</strong> PLD<br />

Erstellung des Textfiles mit den logischen Gleichungen:<br />

Syntax zur Beschreibung der logischen Verknüpfungen bei den verschiedenen<br />

<strong>Systeme</strong>n teilweise etwas unterschiedlich, bei der PLDSHELL gilt:<br />

* entspricht AND (zB. a0 * a1)<br />

+ entspricht OR (zB. a3 + a2 )<br />

/ entspricht NOT (zB. /a4 heißt NOT a4)


<strong>Grundlagen</strong> PLD<br />

Erstellung des Textfiles mit den logischen Gleichungen:<br />

Textfile mit Booleschen Gleichungen wird mit Texteditor erstellt von PLDSHELL<br />

aufgerufen. PLDSHELL frei aus dem Internet ladbar (nicht mehr ganz aktuell).<br />

Starten PLDSHELL im DOS Modus aus dem Directory PLDSHELL.<br />

Mit Cursor wird EDIT Menu ausgewählt und Filename eingegeben<br />

Textfile für Versuch wird geladen, enthält aber noch nicht die richtigen logischen<br />

Gleichungen für die Aufgabe.<br />

Logikcompiler schreibt Format vor, welches im Textfile ersichtlich wird.<br />

Die ersten 7 Zeilen enthalten allgemeine Information (Programmierername,<br />

Datum, Bausteintyp etc.)<br />

TITLE Beispiel<br />

PATTERN<br />

REVISION 1.0<br />

AUTHOR<br />

COMPANY UHH<br />

DATE


CHIP Adressdecoder 22V10<br />

;Pin Deklarationen der Bausteinpins<br />

PIN [1:9] I[0:8] PIN 11 I9<br />

PIN [12:19] O[1:8]<br />

<strong>Grundlagen</strong> PLD<br />

Erstellung des Textfiles mit den logischen Gleichungen:<br />

Danach folgen einige Zeilen mit Schlüsselworten:<br />

CHIP Adressdekoder PLD Baustein.<br />

Hier wird der benutzte Baustein definiert.<br />

PIN [1:9] I[0:8]<br />

hier werden den einzelnen Inputpins Namen gegeben und eine Zuordnung zu<br />

den Pinnummern des Bausteins deklariert. Aus Pin 1 wird zB. I0, aus Pin 2 wird<br />

I1 usw. bis Pin 9 der I8 wird.<br />

Ob die Pins Input oder Output Funktion haben wird vom Logikcompiler<br />

automatisch aus den logischen Gleichungen ermittelt.


<strong>Grundlagen</strong> PLD<br />

Erstellung des Textfiles mit den logischen Gleichungen:<br />

Im nächsten Abschnitt des Textfiles, der mit EQUATIONS eingeleitet wird,<br />

werden die booleschen Gleichungen für die zu realisierende Logik eingegeben.<br />

EQUATIONS<br />

; Boolesche Gleichungen<br />

O1 = I0 * I1 * I3 * I4 * I5 * I6 * I7 * I8 * I9<br />

O2 = I0 * I2 * I3<br />

O3 = I0 * I1 * I8 * /I3<br />

O4 = I0 * I2 * I7<br />

O5 = I0 * I1 * I6 * /I3<br />

O6 = I0 * I2 * I5<br />

O7 = I0 * I1 * I4 * /I3<br />

O8 = I0 * I2 * I3


<strong>Grundlagen</strong> PLD<br />

Nachdem Textfile editiert ist wird zur PLDSHELL zurückgekehrt<br />

Starten Logikcompiler der PLDSHELL über Compile Menü. Textfilename<br />

wurde vorgegeben, Compiler staret durch drücken der Return Taste.<br />

Compiler erzeugt File mit der Extension .JED, die den Baustein programmiert<br />

wird von Programmiersoftware von der PLDSHELL unter dem Program Menü<br />

aufgerufen.<br />

Treten beim Kompilieren keine Fehler auf, wird eine Datei mit der Extension<br />

.RPT erzeugt. Diese Report Datei enthält alle Informationen zum PLD Entwurf.<br />

Nach der Programmierung in den PLD Baustein kann überprüft werden ob<br />

die logischen Gleichungen erfüllt sind. Hierzu wird PLDSHELL beendet und<br />

unter Windows das Programm Gallab2.exe gestartet. Programm gestattet es die<br />

einzelnen Eingänge des PLD Bausteins interaktiv vom PC auf LOW bzw. HIGH<br />

Pegel zu schalten, und gleichzeitig den logischen Pegel der Ausgangsleitungen<br />

des PLD Bausteins zu beobachten.


<strong>Grundlagen</strong> PLD<br />

Address decoding


<strong>Grundlagen</strong> PLD<br />

Address decoding


<strong>Grundlagen</strong> PLD<br />

Address decoding<br />

Boolean equations<br />

/CSR = /A13 * /A14 * /A15<br />

/CSE = A14 * /A15<br />

/CSP = /A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * A14 * A15<br />

CSDA = A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * A14 * A15<br />

should be implemented using a GAL16V8 ⇒needs 10 inputs for signals<br />

A6 ... A15 and 4 outputs for the respective Boolean equations


<strong>Grundlagen</strong> PLD<br />

*IDENTIFICATION<br />

*TYPE<br />

GAL16V8;<br />

*PINS<br />

A6 = 1,<br />

A7 = 2,<br />

A8 = 3,<br />

A9 = 4,<br />

A10 = 5,<br />

A11= 6,<br />

A12 = 7,<br />

A13 = 19,<br />

A14 = 18,<br />

A15 = 14,<br />

/CSR = 16,<br />

/CSE = 15;<br />

/CSP = 14;<br />

CSDA = 13;<br />

*BOOLEAN EQUATION<br />

/CSR = /A13 * /A14 * /A15;<br />

/CSE = /A14 * /A15;<br />

/CSP = /A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * /A14 * /A15;<br />

CSDA = /A6 * /A7 * /A8 * /A9 * /A10 * /A11 * /A12 * /A13 * /A14 * /A15;


<strong>Grundlagen</strong> PLD<br />

start<br />

schematic capture<br />

boolean expressions<br />

or state machines<br />

translator<br />

translator<br />

merge design<br />

circuit desription<br />

partition<br />

circuit of logic cells<br />

place & route<br />

performance calculation<br />

and design verification<br />

configure FPGA


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

PLD (Programmable Logic Device)<br />

• Technological improvement:<br />

• gate density,<br />

• speed,<br />

• cost,<br />

• architecture flexibility,<br />

• technology,<br />

• housing dimensions,<br />

• design tools.


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Top-Down <strong>Systeme</strong>ntwurf


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Design<br />

• Compilation/Synthese<br />

Spezifikation der Funktionalität auf abstrakter Ebene automatisierte<br />

Generierung von Implementierungshilfen (low level)<br />

Systembeschreibung auf hohem Abstraktionsniveau<br />

Logik Synthese ausgehend Basis Boolescher Gleichungen über<br />

Logikgatter hin zur Netzliste<br />

RT Synthese konvertiert FSM und RT in Datenfluss<br />

Verhaltenssynthese konvertiert sequentielle Programme in FSM und<br />

RT


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Design<br />

• Libraries/IP<br />

ermöglichen Wiederverwendung von Code/Implementierung<br />

Verhaltensebene: Komponenten z.B. Businterface, Displaycontroller, GPP<br />

Cores beinhalten spezifische Komponenten, IP relevant<br />

• Test/Verifikation<br />

Überprüfung ob Funktionalität gegeben ist ⇒Simulation


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Design<br />

• Test/Verification<br />

Simulation die Methode der Wahl um Funktionalität zu überprüfen<br />

The analysis of AC and DC responses to a sine wave input signal is to verify<br />

that the developed circuit behaves as an inverter. Hence step 4 deals with the<br />

simulation which is setup from the Simulation menu and the DC Transfer<br />

Curve simulation can be set up clicking in the checkbox and on the button for<br />

Single or Dual parameter DC sweep. After entering the parameters<br />

• name 1 is VS (name of source to step),<br />

• start 1 is 0 (starting voltage),<br />

• stop 1 value is 5,<br />

• step 1 value is 1E-1,<br />

Literatur:<br />

D.P.F.Möller: Mathematical and Computational Modeling and Simulation: Fundamentals and Case Studies; Springer<br />

Verlag, 2003


<strong>1.3</strong> <strong>Grundlagen</strong> <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Design<br />

• Test/Verification<br />

Simulation die Methode der Wahl um Funktionalität zu überprüfen


1.4 Echtzeitfähigkeit <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Echtzeitfähigkeit: Rechtzeitigkeit und Gleichzeitigkeit in Bezug auf die<br />

Antwort auf Event.<br />

Responsive ES erfordern die Echtzeitfähigkeit des gesamten Systems,<br />

d.h. eine spezielle Systemumgebung mit garantierter Verfügbarkeit auf<br />

allen Prioritätsebenen.<br />

Responsivität realisiert durch:<br />

• intelligentes Scheduling, baut auf fester Abfolge von Taskinteraktionen<br />

auf; erfordert bei harter Echtzeitfähigkeit semi-manuelle Sequenzierung<br />

(SW), z.B. HW/SW Co-Design wird ur Verfügbarkeitsanforderung<br />

Thread- oder Task-Sequenz<br />

• entsprechende Partitionierung umgesetzt, auf entsprechender<br />

<strong>Systeme</strong>bene wird Integration von Betriebssystemfunktionalität<br />

berücksichtigt


1.4 Echtzeitfähigkeit <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Realtime-Partitionierung (responsive ES) ⇒ spezielle Architektur ⇒<br />

UCM (Universal Configurable Machine), beinhaltet gleichartige UCBs<br />

(Universal Configurable Blocks) als Steuerwerk für den Hauptkontrollfluss<br />

und Realtime Partitionierer für Überwachungskontrollfluss. UCB basieren<br />

auf B-ISA (Block-Instruction-Set-Architecture, nebenläufige Mehrprozessorstruktur,<br />

Informationsaustausch auf Ebene Registerfiletransfer)


1.4 Echtzeitfähigkeit <strong>eingebetteter</strong> <strong>Systeme</strong><br />

UCM beinhaltet gleichartige UCBs (Universal Configurable Blocks),<br />

eine Control Unit für den Hauptkontrollfluss sowie den Realtime-<br />

Partitionierer für den Überwachungskontrollfluss.<br />

UCBs basieren auf einem erweiterten Ansatz zu Block-Instruction-<br />

Set-Architekturen (B-ISA), den Blöcken. Klassischer’ Ansatz zu B-ISA<br />

beinhaltet nebenläufige Mehrprozessorstruktur, deren<br />

Informationsaustausch auf der Ebene des Registerfiletransfers<br />

erfolgt. Performancegewinn erfordert direkte Abstimmung zwischen<br />

Prozessorarchitektur und Compilertechnologie.


1.4 Echtzeitfähigkeit <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Bei UCB wird der Ansatz mit konfigurierbaren Blöcken genutzt, der aus<br />

sequentiellem Instruktionsfluss strukturprozedurale Programmierung<br />

mit maximalem Parallelitätsgrad realisiert.<br />

Über den Performancegewinn hinaus wird auch eine echte Abbildung<br />

der Realtime Fähigkeit der Architektur erreicht, was durch eine Metrik,<br />

welche die entsprechende Parametrierung enthält, dargestellt werden<br />

kann.


1.4 Echtzeitfähigkeit <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Innerhalb der ‘klassischen’ Programmiermethode für Interrupt-Request<br />

Routinen wird zunächst die Servicefunktion beschrieben, die durch den<br />

Interrupt erfüllt werden muss. Diese Form der Implementierung findet<br />

im Responsive-System-Architekturmodell Anwendung.<br />

Im Rahmen der ‘klassischen’ Programmiermethode sind des weiteren<br />

die Priorisierung der Service-Routinen auf statischer oder dynamischer<br />

Basis, die Programmierung der Prioritäten durch Konfigurierung auf<br />

Hardwareebene sowie die Festlegung nicht-unterbrechbarer Sequenzen<br />

in allen Programmteilen – das Hauptprogramm eingeschlossen –<br />

durchzuführen.<br />

Zu dieser von der eigentlichen Algorithmisierung abweichenden Form<br />

der Programmierung des Gesamtsystems muss der Einfluss des Hard-<br />

Realtime-Betriebssystems mindestens abgeschätzt werden, um zu einer<br />

Beurteilung des späteren Verhaltens zur Designphase zu kommen.


1.4 Echtzeitfähigkeit <strong>eingebetteter</strong> <strong>Systeme</strong><br />

In der UCM-Architektur müssen neben der Algorithmisierung der<br />

Service-Routinen keine Interaktionen zur Hardwarekonfigurierung und<br />

bei hoch priorisierten Tasks keine, bei niedrig priorisierten Tasks<br />

deutlich weniger Betriebssystemeinflüsse berücksichtigt werden, da<br />

diese Funktionalität im wesentlichen autonom in einem UCB ablaufen<br />

kann.<br />

Im Hauptkontrollfluss ist das eigentliche Anwendungsprogramm codiert,<br />

welches in Abhängigkeit der im Hardware/Software Co-Design vorgenommen<br />

Partitionierung bestenfalls entfallen kann.


1.5 Embedded Intelligence<br />

Embedded Intelligence (EI)<br />

Erweiterung von Embedded Systems um „intelligente“ Sensor-/Aktorsysteme,<br />

d.h. um Baugruppen zur<br />

• Messwerterfassung,<br />

• Messwertvorverarbeitung -sog. pre-processing durch geeignet gewählte<br />

Algorithmen/Filterung -,<br />

• Messwertverarbeitung<br />

und der aus der Messwertverarbeitung resultierenden Einflussnahme,<br />

mit dem Ziel einer automatisierten Prozessführung, der Fehlerfrüherkennung<br />

in globalen, heterogen ablaufenden Prozessen, der<br />

Realisierung einer Echtzeit- und Multi-Masterfähigkeit in dezentralen<br />

Prozessabläufen etc.


1.5 Embedded Intelligence<br />

Intelligente ES<br />

• nehmen Umgebung über verschiedene sensorische Kanäle wahr,<br />

• agieren z.B. durch navigierende Bewegung,<br />

• wirken auf die Umgebung in die sie eingebettet sind ein,<br />

• kommunizieren mit anderen intelligenten <strong>Systeme</strong>n innerhalb der<br />

komplexen heterogenen System-Umgebung.<br />

Von Bedeutung für die sensorischen, aktorischen und kommunikationsbezogenen<br />

Prozesse intelligenter <strong>eingebetteter</strong> <strong>Systeme</strong> sind multimodale<br />

Repräsentationen, d.h. das Zusammenwirken verschiedener<br />

Modalitäten wie z.B. Tasten, Greifen, Sehen, Hören, Sprechen, etc.<br />

Dies fußt auf intelligenten <strong>Systeme</strong>n mit Sensorik-Aktorik- und<br />

Kommunikationsfähigkeiten.


1.5 Embedded Intelligence<br />

Intelligente ES<br />

Mobile autonome <strong>Systeme</strong> (MAS) und mobile Multiagentensysteme<br />

(MMAS) repräsentieren eingebettete intelligente <strong>Systeme</strong> in einer<br />

dynamisch veränderten unstrukturierten Umgebung.<br />

Von zentraler Bedeutung ist gemeinsame Notation zur Beschreibung<br />

der multimodalen bzw. multi-funktionalen Wissensrepräsentationen.<br />

BEISPIEL.<br />

Haptische Modalität, d.h. taktile Sensorik und Aktorik erfordert die<br />

Einbettung eines Daten-Handschuh (Data Glove) der die palmares<br />

digitales nachbildet, da die menschliche Hand eine Greifhand ist.


1.4 Embedded Intelligence


1.4 Embedded Intelligence


1.4 Embedded Intelligence


1.4 Embedded Intelligence


1.4 Embedded Intelligence<br />

Intelligent EBS:<br />

• Mobiles Autonomes System, beispielsweise<br />

• Mobile Vehikel,<br />

• Pathfinder,<br />

• Mars Roboter,<br />

• etc.<br />

repräsentieren eingebettete <strong>Systeme</strong> die TEIL dynamischer<br />

unstrukturierter Umgebungen sind


1.4 Embedded Intelligence<br />

Intelligent EBS:<br />

• Mobile Multi Agenten <strong>Systeme</strong>, beispielsweise virtuelle Agenten im<br />

Web, etc.<br />

repräsentieren eingebettete <strong>Systeme</strong> die TEIL dynamischer<br />

unstrukturierter Umgebungen sind


1.4 Embedded Intelligence


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Allgemeine Ziele<br />

•Ausreichend genaues und umfassendes geometrisches Abbild des gesamten<br />

Fahrzeugumfelds oder Teilen davon.<br />

•Nutzbarkeit für die Anwendungen ACC, ANB, Pre-Crash, Lane-Change, Lane-<br />

Keeping, Blind-Spot-Warning, autonomes Fahren.<br />

•Symbolische Interpretierbarkeit der erzeugten Umfeldrepräsentation bezüglich<br />

der vorliegenden Verkehrssituation.<br />

•Nutzung von sehr unterschiedlicher Sensorik (Sichtfeld, Auflösung, Abtastfrequenz,<br />

extrahierbare Merkmale, Abstraktionsebene, Filter, Zuverlässigkeit).<br />

•Komplementäre (ergänzende) Fusion zur Erstellung eines umfassenden Abbilds.<br />

•Kompetitive (redundante) Fusion zur Erhöhung der Genauigkeit.<br />

•Robustheit gegenüber widersprüchlichen Sensordaten.<br />

•Funktionalität - soweit möglich - bereits mit wenigen „schlechten“ Sensoren<br />

(modulare Struktur).


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Ausgangssituation<br />

(fast alle) Sensoren liefern z.Z. nur 2D Daten (Vogelperspektive, keine<br />

Höhe) ⇒ 3D Objektbeschreibung nur mit Videosystemen erreichbar<br />

gemessene Dreidimensionalität nur mit Stereo-Video zu erreichen.<br />

Genauigkeit Abstandsmessung (Laser, Radar) im Bereich von 5 cm - 2 m.<br />

Genauigkeit der Winkelmessung (Laser, Radar) im Bereich 0.5 - 6 Grad.<br />

Auflösung/Trennfähigkeit der Radarsensoren zwischen 2 m - 5 m.<br />

Detektions Wahrscheinlichkeit (Redundanz) nur qualitativ bekannt.<br />

Positionsbestimmung (GPS) relativ genau möglich.<br />

Navigationsdaten beinhalten nur wenig Information (Straßentyp).


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Struktur<br />

Sensoren...<br />

(Filter, dynamisches Modell,<br />

implizite Klassenannahmen)<br />

Verbesserte<br />

Modellparameter<br />

Ausrichtung/Assoziation/Datenfusion<br />

Geometrisches Abbild<br />

Angepasstes<br />

Modell<br />

Klassifikation/Interpretation<br />

Symbolische Repräsentation<br />

Fusionsrechner


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Geometrisches Abbild<br />

Prädiktion des Umweltmodells anhand der Ego- bzw. Modelldaten<br />

auf den Zeitpunkt der Sensordaten<br />

Assoziation der Objekte (oder der Fahrbahn) mit den<br />

prädiktierten Sensordaten<br />

Aktualisierung der zugeordneten Objekte (Fahrbahn)<br />

oder<br />

Initialisierung von neuen Objekten<br />

Konsistenzüberprüfung des Modells anhand des Sensor -<br />

detektionsbereichs und der Detektionswahrscheinlichkeit<br />

und ggf. Entfernung von Objekten


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Varianten<br />

Kalmanfilter-/Informationsfilter<br />

• dynamische Modelle<br />

• Normalverteilung<br />

• Bayes-Schätzer<br />

Modellierung der Wahrscheinlichkeitsdichte<br />

• Condensation Algorithmus<br />

• keine Annahmen über Verteilungsfunktionen<br />

Neuronale Netze<br />

• MLP (Multi-Layer-Perceptron) mit Backpropagation<br />

•Etc.<br />

sonstige (Fuzzy Set Theorie, …..)


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Anforderungen an die Sensorfusion<br />

Definition<br />

Unter Umfeldwahrnehmung wird die Wahrnehmung der für das Fahren<br />

eines Fahrzeugs wichtigen Elemente der Umgebung verstanden.<br />

• Andere Verkehrsteilnehmer<br />

• Gegenstände auf der Fahrbahn<br />

• Gegenstände am Fahrbahnrand<br />

• Fahrspurbegrenzung<br />

• Position des Fahrzeugs in der Fahrspur<br />

• Straßenverlauf<br />

• Position des Fahrzeugs in geografischen Koordinaten<br />

Die erforderliche Messgenauigkeit bei der Detektion der Umgebungselemente<br />

wird von den Applikationsanforderungen ebenso bestimmt,<br />

wie von den Elementen selbst.


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Anforderungen mögl. Applikationen<br />

Anforderungen verschiedener Entfernungsbereiche:<br />

Bereich Position Geschwindigkeit<br />

Nah (


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Weitere Anforderungen<br />

absolute Fahrzeugposition:<br />

• Navigationssystem: 0,3 m<br />

• präzise Digitalkarte: 0,1 m<br />

Objektdetektion:<br />

• Messunsicherheit < Objektgröße<br />

• minimale Objektgröße: 0,1 m nah, 0,25 m mittel, 1 m fern


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Umfeldwahrnehmung<br />

Detektion von Verkehrsteilnehmern<br />

LKW<br />

Bus<br />

PKW<br />

Motorrad<br />

Fahrrad<br />

Skater<br />

Fußgänger<br />

und Gegenständen<br />

parkende Fahrzeuge<br />

Mauern, Gebäude<br />

Leitplanken<br />

Pfosten<br />

Verkehrsschilder<br />

Zäune<br />

Bäume, Sträucher


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Sensorsysteme


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Sensorfusion


1.5 Embedded Intelligence<br />

Beispiel: Sensorfusion<br />

Sensorfusion (Objekterkennung)<br />

Fusionsstrategie<br />

Sensoren liefern Datenstrom an das Fusionsmodul<br />

Möglichkeit „Messaufträge“ vom Fusionsmodul an die Sensoren<br />

zu vergeben<br />

Sensoren etikettieren jedes Objekt mit einem Vertrauensstatus<br />

Basis: kartesisches Weltkoordinatensystem


1.5 Embedded Intelligence<br />

EBS Sensorfusion<br />

Fernbereichs<br />

-<br />

radar<br />

Signalverarbeitung<br />

Objekterkennung<br />

CAN<br />

Messauftrag<br />

Lidar<br />

Signalverarbeitung<br />

Nahbereichsradar<br />

Signalverarbeitung<br />

Objekterkennung<br />

Objekterkennung<br />

Sensorfusionsund<br />

Szenen-<br />

Interpretationsmodul<br />

Applikationen<br />

Video<br />

Signalverarbeitung<br />

Objekterkennung<br />

Navigation<br />

Fzg. CAN


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

Einsatzgebiete: von Konsumgüterindustrie über die Automobilindustrie<br />

bis hin zur Investitionsgüterindustrie<br />

• moderne Kameras erst durch ES universell einsetzbar<br />

• ES ermöglichen in Haushaltsgeräten präzise & einfache Benutzung<br />

• PkW enthalten mittlerweile bis zu 50 eingebettete Prozessoren<br />

• 1/3 der Avionik-Kosten durch eingebettete mechatronische HW/<br />

SW-<strong>Systeme</strong><br />

• ES sorgen für präzises Wiegen, Messen, Protokollieren<br />

• Industrielle Steuerungen werden durch eingebettete mikroelektronische/mikrosystemtechnische<br />

Sensor-Aktor-Komponenten optimal<br />

gesteuert<br />

• Medizintechnische Geräte erhalten durch ES verbesserte Funktion


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.1 Webgesteuerte Kopierer


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.1 Webgesteuerte Kopierer<br />

• Webgesteuerte Kopierer integrieren TCP/IP (Transmission Control<br />

Protocol Internet Protocol) Fähigkeiten:<br />

z.B. Kopierer der die Anzahl der Kopien über das Internet an den<br />

Servicetechniker sendet, damit dieser feststellen kann, wann der<br />

nächste Wartungsdienst ansteht<br />

• TCP/IP Protokoll und Java (Programmiersprache) bieten standardisierte<br />

Mechanismen zum Bedienen und Beobachten, die nicht<br />

nur auf das WWW und Desktop PCs beschränkt sind, sondern<br />

auch im Zusammenhang mit kleinen Embedded <strong>Systeme</strong>n eingesetzt<br />

werden können


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.2 Webgesteuerte Verkaufsautomaten


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.2 Webgesteuerte Verkaufsautomaten<br />

• Webgesteuerte Verkaufsautomaten integrieren TCP/IP<br />

(Transmission Control Protocol Internet Protocol) Fähigkeiten:<br />

z.B. Warenhaus welches die Anzahl der Artikel über das Internet<br />

an den Warenhaus-Server (Zentrale) sendet, damit diese den<br />

aktuellen Artikelbestand (Warenbestand) feststellen und ggf.<br />

Nachlieferung auf Grundlage saisonaler Bevorratungstrategien<br />

bzw. Bestellungen bei Unterlieferanten auslösen kann<br />

• TCP/IP Protokoll und Java (Programmiersprache) bieten standardisierte<br />

Mechanismen zum Bedienen und Beobachten, die nicht<br />

nur auf das WWW und Desktop PCs beschränkt sind, sondern<br />

auch im Zusammenhang mit kleinen Embedded <strong>Systeme</strong>n eingesetzt<br />

werden können


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.3 Wetterstation


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.3 Wetterstation<br />

• Embedded HTTP (Hypertext Transfer Protocol) Server mit<br />

Sensorinterface zu einer Wetterstation<br />

• HTML )Hypertext Markup Language)Seiten können zusammen mit<br />

der Applikation und dem Code des HTTP Servers im EPROM<br />

abgelegt werden<br />

• HTTP auf Basis von TCP/IP (Transmission Control Protocol Internet<br />

Protocol) dient als als Protokoll zwischen Embedded <strong>Systeme</strong>n<br />

and Service Rechner


1.6 Beispiele <strong>eingebetteter</strong> <strong>Systeme</strong><br />

1.6.4 Hochleistungsantrieb

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!