1.3 Grundlagen eingebetteter Systeme
1.3 Grundlagen eingebetteter Systeme
1.3 Grundlagen eingebetteter Systeme
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