Technische Berichte. fachhochschule hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK NR. 31 OKTOBER Magnetoresistive Sensorsysteme

Größe: px
Ab Seite anzeigen:

Download "Technische Berichte. fachhochschule hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK NR. 31 OKTOBER 1998. Magnetoresistive Sensorsysteme"

Transkript

1 Technische Berichte fachhochschule hamburg FACHBEREICH ELEKTROTECHNIK UND INFORMATIK Magnetoresistive Sensorsysteme Mustererkennung mit Fuzzylogik Echtzeit-Datenverarbeitung Entwicklungswerkzeuge für Kommunikationsprotokolle Mehrkanal-Audiosignalverarbeitung Bestückungsautomat mit Bildverarbeitung FPGA-Synthese Protokolltests im Mobilfunk NR. 31 OKTOBER FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [1]

2 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 IMPRESSUM Fachbereich Elektrotechnik und Informatik der Fachhochschule Hamburg Berliner Tor Hamburg Tel.: Redaktion: Prof. Dr.-Ing. Ulf Claussen etech.fh-hamburg.de Technische Berichte im Internet: fh-hamburg.de Inhaltsverzeichnis Technische Berichte Nr. 31 Oktober 1998 Editorial 3 REINHARD VÖLLER... FPGA-Synthese mit VHDL für Bildverarbeitungsanwendungen 4 JÜRGEN REICHARDT... Echtzeitdatenverarbeitung 11 JOCHEN SCHNEIDER... Mustererkennung mit Fuzzylogik 16 LUDOLF STEWEN... Entwicklung einer universellen Kommunikationsbibliothek 22 HEIKO BOBZIN... Magnetoresistive Sensorsysteme für Automobilanwendungen am Beispiel eines 25 integrierten Winkelmeßsystems KLAUS DIETMAYER... Mehrkanal-Audiosignalverarbeitung mit Digitalen Signalprozessoren 30 ULI SAUVAGERD... Bestückungsautomat mit Bildverarbeitung 34 UWE APEL, HANS PETER KÖLZER... Protokolltests im digitalen Mobilfunk 38 PETER RIEDEL... [2]

3 Liebe Freunde unseres Fachbereichs, heute begrüßt Sie auf dieser Seite ein neues Gesicht. Am 15. Juli habe ich die Nachfolge von Prof. Dr. Maas im Amt des Dekans angetreten. Ich möchte Herrn Maas an dieser Stelle für seinen Einsatz in den vergangenen vier Jahren danken und hoffe, in meiner Amtszeit seine Arbeit erfolgreich fortsetzen zu können. Ich freue mich auch besonders, daß mir im Amt des Prodekans Prof. Dr. Kölzer tatkräftig zur Seite steht. Ich möchte mich kurz vorstellen: Nach meiner Promotion in der Informatik an der Universität Kiel mit einem Thema aus dem Bereich "Semantik von Programmiersprachen", war ich mehrere Jahre in der Softwareentwicklung tätig und gehöre seit 1992 der Fachhochschule Hamburg an. Von 1994 bis 1998 war ich Prodekan des Fachbereichs Elektrotechnik und Informatik und habe mich in dieser Zeit also schon ein wenig auf die jetzige Tätigkeit vorbereiten können. Lassen Sie mich über einige Aktivitäten des Fachbereichs berichten: Da ist zunächst einmal das Thema Studienreform: Wir bemühen uns zur Zeit intensiv, ein Konzept für die Modularisierung der Studiengänge zu entwickeln. Erweiterung der Wahlmöglichkeiten, Erhöhung des Anteils nichttechnischer Inhalte am Studium, Kreditpunkte (European Credit Transfer System), Erleichterung des Wechsels zwischen Hochschulen in Europa, internationale Abschlüsse wie Bachelor und Master sind da wichtige Themen. Wir hoffen zum Wintersemester 1999 "europäisierte" Studiengänge anbieten zu können. Studierende werden dann die Möglichkeit haben, ihr Studium z.b. in Hamburg zu beginnen, nach einem Jahr an eine Hochschule in Frankreich, nach einem weiteren Jahr nach England zu wechseln. Das Studium wird dann wieder in Deutschland abgeschlossen, wo die Fachhochschule als Abschluß das Diplom verleiht. Gleichzeitig erhalten die Absolventen auch die Abschlüsse der anderen besuchten Hochschulen. Über Europa hinaus greift die Planung für unseren Internationalen Studiengang "Information Engineering". Dieser Studiengang soll ebenfalls ab Wintersemester 1999/2000 in englischer Sprache angeboten werden. Einmal im Jahr wollen wir etwa 40 Studierende aufnehmen, die dann in Hamburg einen Bachelor- bzw. Master-Abschluß erhalten können. Wir wenden uns hier besonders an Studierende aus dem nicht-europäischen Ausland aber natürlich auch an deutsche Interessentinnen und Interessenten. Unsere langjährigen Beziehungen zur University of Shanghai for Science and Technology kommen uns hier zu Hilfe. Schließlich führen wir und der Fachbereich Maschinenbau und Produktion gemeinsam mit unseren chinesischen Partnern in Shanghai zwei Kurse in den Fachrichtungen Elektrotechnik und Maschinenbau durch. Etwa ein Drittel des Lehrangebots wird dabei in deutscher Sprache von Kollegen aus Hamburg erbracht. Ab Oktober 98 lernen die chinesischen Studierenden zunächst einmal für ein Jahr intensiv deutsch. Dann schließt sich ein dreijähriges Fachstudium an. Während dieser Zeit werden pro Fachrichtung und Semester zwei Professoren aus Hamburg für acht Wochen in Shanghai lehren. Gleichzeitig wollen wir unsere Kontakte nutzen, um Teilnehmer für unseren Internationalen Studiengang anzuwerben. Sie sehen, es wird am Fachbereich international und spannend. Mit diesem Heft liegt Ihnen zugleich der Tagungsband zum diesjährigen "Tag der Begegnung mit Industrie und Wirtschaft" am 19. Oktober vor. Ich bin sicher, daß das diesjährige Thema "Trends in der Informationstechnik" bei Besuchern der Veranstaltung aber auch bei Ihnen als Leser Interesse findet. Als Neuerung findet in diesem Jahr am Nachmittag desselben Tages die "2. Jobbörse" statt, auf der sich Firmen den Studierenden als zukünftige Arbeitgeber präsentieren. Vergessen sind offensichtlich die Zeiten, in denen unsere Absolventen Schwierigkeiten beim Berufsstart hatten. Als Lohn eines anspruchsvollen Studiums können junge Informatiker und Ingenieure nun wieder zwischen mehreren attraktiven Jobangeboten auswählen. Wir wünschen uns, daß das so bleibt und sich auch bei potentiellen Studienbewerbern noch mehr herumspricht. Mit freundlichen Grüßen Prof.Dr. Reinhard Voeller, Dekan des Fachbereichs Elektrotechnik und Informatik an der FH Hamburg... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [3]

4 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Prof. Dr. JÜRGEN REICHARDT, FH Hamburg, FB E/I, Berliner Tor 3, Hamburg, etech.fh-hamburg.de Bild 1: Anteilige Verwendung verschiedener Hardwarebeschreibungssprachen 1993 und 1997 (Mehrfachnennungen waren erlaubt). Quellen [1] [19] Einführung FPGA-Synthese mit VHDL für Bildverarbeitungsanwendungen An ein modulares, parallelisierbares System zur Bilderfassung und -bearbeitung lassen sich die folgenden Anforderungen stellen: 1. Neu zu implementierende bzw. anzupassende Bildverarbeitungsoperatoren sollten leicht integrierbar sein. 2. Es sollte eine strukturierte Entwicklungsmethodik mit hierarchischen Bibliothekskomponenten verwendbar sein, die für ein Design-Reuse geeignet sind. 3. Das System sollte eine hohe Ausführungsgeschwindigkeit, insbesondere für arithmetische Operationen besitzen. 4. Die verwendete Hardware sollte eine skalierbare Komplexität der verwendeten Bausteine besitzen, um somit für eine konkrete Aufgabe die optimale Preis-/Leistungsrelation zu erzielen. 5. In Anwendungen, die z.b. ROM-Tabellen oder FIFO-Strukturen verwenden, müssen schnelle Speicherzugriffe möglich sein. Üblicherweise werden zur Realisierung dieser Anforderungen Digitale Signalprozessoren (DSPs) verwendet. In diesem Vortrag soll hingegen über einen alternativen Lösungsansatz berichtet werden: Die Verwendung von FPGAs (Field Programmable Gate Array) im Zusammenhang mit der Programmiersprache VHDL JÜRGEN REICHARDT Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik VHDL Verilog HDL Andere C Wie insbesondere die ersten beiden Wünsche durch den Einsatz von VHDL erfüllt werden, ist Inhalt des folgenden Kapitels. Die Forderungen 3 bis 5 müssen durch die verwendete FPGA-Hardware erfüllt werden. Darauf wird im Abschnitt 3 eingegangen. Die Darstellung zweier praktischer Anwendungen im Abschnitt 4 runden diesen Bericht ab. 2 Was ist VHDL und welche Vorteile bietet VHDL beim Entwurf digitaler Systeme? Das Synonym VHDL steht für VHSIC Hardware Definition Language (VHSIC = Very High Speed Integrated Circuit). Im Gegensatz zu herkömmlichen Programmiersprachen, die eine bereits existierende Hardware mit Leben d.h. mit Software erfüllen, soll VHDL einen einheitlichen Sprachstandard zur Beschreibung von Hardware liefern. Dies bedeutet, daß anstatt einer Schaltplaneingabe moderne digitale Designs durch textuelle Beschreibungen formuliert werden. Im Gegensatz zu der ebenfalls für diesen Zweck entwickelten Sprache Verilog HDL wurde VHDL durch das IEEE erstmalig 1987 standardisiert. Diesen Vorteil nutzend setzen laut einer neueren amerikanischen Umfrage aus dem Jahr 1997 mehr als 60% aller ASIC Entwickler VHDL als Hardwarebeschreibungssprache ein [1]. Nachdem sich insbesondere in Europa dieser Sprachstandard bereits vor einigen Jahren durchgesetzt hatte, wurde offensichtlich mit ergänzenden Standardisierungsbestrebungen durch das IEEE in den letzten Jahren auch in den USA die Marktführerschaft erreicht (siehe Bild 1). Die Syntax der Sprache VHDL ist an die bekannten Programmiersprachen PASCAL bzw. ADA angelehnt [2] und daher für Elektronikentwickler leicht erlernbar. Die Nebenläufigkeit der Hardwarefunktionen bei der Analyse des Verhaltens eines VHDL-Codes bereitet jedoch Software-Entwicklern, die nur eine sequentielle Programmierung gewohnt sind, häufig Schwierigkeiten. [4]

5 Ursprünglich für Dokumentations- und Simulationszwecke konzipiert, wurden in den letzten Jahren durch die EDA (electronic design automation) - Industrie auch PC-basierte VHDL-Synthesewerkzeuge sehr erfolgreich auf dem Markt plaziert. Heutige Anwendungsbereiche von VHDL sind der Entwurf von digitalen ASICs, FPGAs und CPLDs. Die Integration von Simulation, Synthese und Dokumentation in einer Beschreibungssprache revolutionierte in den letzten Jahren die Entwicklungsmethodik digitaler Systeme. Dies ist der Grund für den Entschluß, diesen Sprachstandard auch in der Ausbildung einzusetzen, womit den Studierenden eine in Bereichen der Industrie bereits weitverbreitete Entwurfsmethodik vermittelt werden kann. Diese ist durch den intensiven Einsatz von Simulationswerkzeugen und die Möglichkeit eines Top-Down Ansatzes bei ausgeprägter Hierarchie gekennzeichnet. Vorteilhaft ist die Möglichkeit, eine zu einem frühen Zeitpunkt entworfene Testumgebung während des gesamten Entwurfs unverändert verwenden zu können. Dabei wird das zu entwerfende System zunächst in seinem Verhalten beschrieben und mit einem VHDL-Simulator eingehend hinsichtlich der Systemanforderungen analysiert. Dazu dient eine Testumgebung (testbench), in die Modelle des zu entwerfenden Systems quasi als DUT (Device under Test) eingebunden werden. Innerhalb der Testumgebung werden z.b. auch Dateizugriffe auf dem PC unterstützt. Dies ermöglicht die Emulation der Schnittstelle zwischen dem zu entwerfenden System (z.b. einer PC-Einschubkarte) und der Anwendungssoftware eine wesentliche Voraussetzung für ein erfolgreiches Hardware-Software Codesign. Ein in der Testumgebung erfolgreich analysiertes Verhaltensmodell wird anschließend geeignet partitioniert und die daraus resultierenden Funktionsblöcke schrittweise in synthesefähigen VHDL-Code umgesetzt, wobei die daraus resultierenden Testbench-Ergebnisse unverändert bleiben sollten. Ein Problem bei der Umsetzung des Verhaltensmodell in synthesefähigen Code ist die Tatsache, daß mit den CAE-Synthesewerkzeugen nicht alle VHDL-Konstrukte synthetisierbar sind [6]. Vielmehr ist beim Entwickler eine genaue Kenntnis darüber erforderlich, welche VHDL-Anweisungen mit welchen Grundstrukturen digitaler Hardware korrespondieren. Syntaktisch korrekte aber semantisch falsche Formulierungen führen z.b. zur Inferrierung von Latches oder Flipflops auch dort, wo eigentlich eine kombinatorische Logik erwünscht ist. Insbesondere beim Entwurf von Zustandsautomaten (Schaltwerken) und Schleifenkonstrukten erfordert die Architektursynthese, daß spezielle syntaktische Regeln in Form von Templates einzuhalten sind, die zudem teilweise in den Werkzeugen auf unterschiedliche Weise unterstützt werden [3] [4] [5]. Hier ist deutlich zu erkennen, daß die Architektursynthese in einigen Bereichen noch Gegenstand der Forschung ist, woraus für die am Markt verfügbaren Werkzeuge recht kurze Innovationszyklen resultieren. Für viele Anwendungen der Echtzeitbildverarbeitung ist eine effektive Umsetzung arithmetischer Operatoren in Hardware von entscheidender Bedeutung. Stand der Technik bei der Architektursynthese arithmetischer Funktionen ist die Verwendung von vorverdrahteten Modulen (z.b. Addierer, Subtrahierer, Inkrementer), sofern diese in der herstellerspezifischen Synthesebibliothek vorhanden sind. Auf diese Weise ist eine für die jeweilige Zielarchitektur flächen- oder laufzeit-optimierte Synthese der arithmetischen Operationen sichergestellt. 3 Komplexität und Struktur von FPGAs für Bildverarbeitungsanwendungen Chrakteristisches Kennzeichen von FPGAs ist deren im Vergleich zu (C)PLDs hohe Granularität: Eine große Anzahl von vergleichsweise gering komplexen Logikstrukturen (CLB=Configurable Logic Block) wird durch eine programmierbare, komplexe Mehrlagenverdrahtung miteinander verbunden. Dabei steht eine große Anzahl von Flipflops zur Verfügung, was den Entwurf komplexer Schaltwerke erleichtert [7]. Eine vom Bausteinhersteller entwickelte Design-Fitter Software bestimmt den erreichbaren Nutzungsgrad des FPGAs für digitale Schaltungen, der typischerweise bei ca. 80% liegt. Eine Reprogrammierbarkeit der Bausteine ist dann gegeben, wenn SRAM- oder EE- PROM-basierte Konfigurationen verwendet werden. Eine Rekonfiguration innerhalb einiger Millisekunden erlauben SRAM-Technologien. Damit läßt sich in sehr kurzer Zeit die Funktionalität eines FPGAs z.b. verändern, womit diese Bausteine einen sehr schnellen Coprozessor für dedizierte Anwendungen darstellen (z.b. für verschiedene Bildverarbeitungsoperatoren). Weiterer Vorteil dieser FPGAs ist, daß die für die Speicherung der Konfiguration verwendeten SRAM-Zellen in vielen Technologien auch als ultraschneller On-Chip Speicher mit Schreibzyklen unterhalb von 10 ns, verwendet werden können [8] [9]. Die Komplexität heute verfügbarer FPGAs mit SRAM Architektur reicht von 3k bis 250k Gatteräquivalenten (GÄ), wobei auch die Schwelle von 1M GÄ in Kürze durchbrochen werden wird [8]. Weitere Trends bei der FPGA- Entwicklung sind zum einen der Übergang zur 3.3V bzw. 2.5V Spannungsversorgung, sowie... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [5]

6 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Bild 2: FPGA-basierte Hardwarearchitektur zur Bilddatenvorverarbeitung die Erschließung eines Low-Cost Marktsegments mit Komplexitäten bis zu 40k GÄ (z.b. die Spartan-Serie von Xilinx). Die Preise dieser FPGAs liegen bei 0.3 Pf/GÄ. Ein weiterer Trend, der insbesondere auch für Echtzeit-Bildverarbeitungsanwendungen von Bedeutung ist, sind FPGAs, die sich partiell neu konfigurieren lassen, während der übrige Teil des Bausteins die in ihm abgelegten Funktionen weiter ausführt. Besondere Charakteristik derartiger Bausteine ist die kurze Konfigurationszeit, die im Bereich von µs liegt (Xilinx XC6200), so daß echte Spezial-Coprozessoren aufgebaut werden können [8]. Die FPGA-Synthesewerkzeuge unterstützen in weiten Bereichen die Forderung des Anwenders nach einem Design-Reuse: Neben der Einbindung eigener synthesefähiger VHDL- Code-Bibliothekselemente werden Soft- und Hardmacros unterstützt [10]. Softmacros sind dabei nicht nur parametrierbare Grundstrukturen wie Zähler, Speicher, Akkumulatoren etc., die blockweise in das Design integriert werden, sondern auch komplexe Strukturen für den Entwurf digitaler Filter. Üblicherweise werden für Softmacros zur Unterstützung der Entwurfsphase VHDL-Verhaltensmodelle generiert. Die interne Plazierung und Verdrahtung von Softmacrofunktion erledigt eine vom FPGA-Hersteller zur Verfügung gestellte Software, womit eine optimale Flächenausnutzung bzw. kürzeste Signallaufzeiten sichergestellt sind. Hardmacros hingegen sind fertig entwikkelte Funktionsblöcke mit abgeschlossener interner Plazierung und Verdrahtung. Dazu gehören selbstentwickelte Funktionen aber auch solche anderer Hersteller. Für diesen Zweck arbeiten die FPGA-Hersteller weltweit mit Entwicklern von Intellectual Property eng zusammen [11], [12]. Auf diesem Wege werden heute u.a. fertig entwickelte PCI-Bus- und ATM-Schnittstellen von den FPGA-Herstellern zur Verfügung gestellt. Besondere Zielrichtung der FPGA-Hersteller ist die Durchdringung auch des Marktsegments, das ursprünglich von Festkomma-DSPs abgedeckt wurde. Die hohe Geschwindigkeit, mit der auch Multiplikationen in einem FPGA durchgeführt werden können (85 MHz für einen 8 Bit Multiplizierer [12]), macht FPGAs für den Aufbau von FIR-Filtern äußerst interessant. Dabei wird der Entwurf des eigentlichen Filters auf die Angabe von geeigneten Parametern eines Softmacros reduziert. Während bei den DSPs üblicherweise nur eine MAC-Einheit (MAC=Multiply and Accumulate) zur Verfügung steht, kann diese bei FPGAs abhängig von der zur Verfügung stehenden Chipgröße vielfach parallelisiert werden. Auf diese Weise konnte z.b. für ein 16 Bit FIR-Filter eine im Vergleich zum TMS320C6x ca. 10-fach höhere Rechenleistung bei einem 5-fach reduzierten Preis erzielt werden [20]. Eine von uns durchgeführte Abschätzung der Ausführungszeit eines 3x3-Median Filters für ein 8 Bit Grauwertbild mit 256x256 Pixeln ergab vergleichbare Ergebnisse [13], obwohl dieser Algorithmus keinerlei MACs sondern ausschließlich Vergleichsoperatoren erfordert. Für die Ausführung einer Bildbearbeitung des intern mit vier Parallelprozessoren ausgestatteten TMS320C80 (Taktfrequenz 50 MHz) wurden 3.03 ms berechnet, während eine FPGA- Abschätzung für eine dreistufige Pipelinestruktur 3.8 ms ergab. Bezogen auf den einzelnen DSP des TMS380C bedeutet dies eine etwa um den Faktor drei kürzere Ausführungszeit des FPGAs. Weiterer Vorteil einer FPGA-Lösung ist die Tatsache, daß neben der Filteranwendung im Gegensatz zum DSP weitere Logikmodule, z.b. komplexe Zustandsautomaten, mit auf dem Chip integriert werden können. 4 FPGA-Coprozessoren in der Bildverarbeitung a) Anwendungen in der Bildvorverarbeitung Eine Hardware-Konfiguration, mit der eine FPGA-basierte Bilddatenvorverarbeitung für die Segmentierung und Merkmalsextraktion durchgeführt werden kann, ist in Bild 2 dargestellt [14]. Als erster Schritt zur Realisierung des BEV- Coprozessors wurde im Rahmen einer Diplomarbeit zunächst eine PC-Einsteckkarte entwikkelt, mit der einfache VHDL-basierte Bildverarbeitungsalgorithmen an Hand statischer, im PC abgelegter Bilder untersucht werden können [15]. Die Struktur dieser Karte zeigt Bild 3. Den Kern dieser Karte stellt die Hardware eines XILINX XC4006E mit 6 kgä (256 CLBs) dar, der vollständig unter Verwendung von VHDL entworfen wurde. Die Struktur der VHDL-Komponenten zeigt Bild 4. Dieser Bau- [6]

7 stein beinhaltet die für die Kommunikation mit dem ISA- Bus erforderlichen Komponenten und erledigt neben der eigentlichen Bildverarbeitung auch die Zugriffe auf den Bildspeicher. Für den eigentlichen Bildverarbeitungsalgorithmus BEV_ALGO stehen ca. 70% der FPGA- Ressourcen zur Verfügung. Als erste Anwendungen wurden Binarisierung und Invertierung für ein Graustufen-Quellbild implementiert. Diese sehr einfachen Algorithmen belegen 5% bzw. 9% der verfügbaren FPGA-Kapazität. Die Ergebnisse für ein 100x100 Pixel großes Bild mit 8 Bit Pixeltiefe zeigt Bild 5. Als nächster zu implementierender Algorithmus ist ein Medianfilter geplant. Der Medianwert wird jeweils aus einem über das Quellbild wandernden, 3x3 Pixel großen Fenster gebildet. Dieses Filter wurde zunächst als VHDL-Verhaltensmodell implementiert, das in einer Simulationsumgebung analysiert wurde. Die Filterwirkung auf ein 256x256 Pixel großes Bild zeigt Bild 6. Das bekannte Verhalten des Median-Operators, eine Unterdrückung des Rauschens, das im Quellbild insbesondere in der Bildmitte erkennbar ist, läßt sich deutlich erkennen. Bild 3: Architektur der PC- Einschubkarte zum Testen von VHDLbasierten Bildvorverarbeitungsalgorithmen. Bild 4: Komponentenstruktur des FPGA auf der Bilderfassungskarte... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [7]

8 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Bild 5: a) Graustufen Quellbild (100x100 Pixel, 8 Bit) b) Binarisiertes Bild mit Graustufenschwellwert 128 c) Invertiertes Binärbild. Bild 6: Wirkung eines 3x3-VHDL-Medianfilters auf ein verrauschtes Bild Bild 7: Sortieralgorithmus für ein Medianfilter mit 9 Elementen (aus [16]) Bei der Umsetzung in synthetisierbaren Code wird der in Bild 7 dargestellte Sortieralgorithmus für die neun Pixel P1...P9 eingesetzt [16]. Dem Bild ist zu entnehmen, welche Vergleiche durchzuführen sind, um den Medianwert zu bilden. a) Quellbild 256x256 Pixel, 8-Bit Graustufen b) Gefiltertes Bild, 3x3 Median Filter Die diesem Bild entsprechende kombinatorische Logik entspricht einer vergleichsweise langen Ausführungsdauer, die sich dadurch verkürzen läßt, daß die Topologie in eine dreistufige Pipelinestruktur umgesetzt wird. Diese ist in Bild 8 dargestellt [16]. Bild 8: Dreistufige Pipelinestruktur des Medianfilters (aus [16]) In Bild 9 ist der zugehörige VHDL-Code als überwiegend strukturelle Beschreibung dargestellt. Die Knoten in Bild 8 entsprechen einfachen Basiskomponenten (HI, LO, MED, HILO und SORT3), die Komparatorfunktion besitzen. Der Prozeß beschreibt die Signalübernahme in der Pipeline. Die Synthese dieser Filterstruktur erfordert 163 CLBs. Eine Timinganalyse ergibt eine maximale Verzögerungsdauer der kombinatorischen Logik von 57 ns. Unter Echtzeitbedingungen lassen sich damit prinzipiell d.h. mit geeigneten Speicherbausteinen oder direkt an einer geeigneten Kamera Bilder mit 512x512 Pixeln bei einer Wiederholfrequenz von 60Hz bearbeiten. Die experimentelle Überprüfung dieser Aussagen in der Zielhardware erfordert jedoch [8]

9 Im zweiten Beispiel soll eine Bildverarbeitungsanwendung vorgestellt werden, die unabhängig von einer PC-basierten Nachbearbeitung ausgeführt wird: Es handelt sich dabei um eine Bilddrehung unter Echtzeitbedingungen, bei der der Drehwinkel beliebig zwischen 0 und 360 variieren kann. Besondere Herausforderung ist dabei die Interpolation des gedrehten Bildes, die erforderlich ist, um Kantensprünge, die aus der Nichtlinearität der Sibegin TAKT: process (CLK) -- Pipeline Datenuebernahme begin if CLK'event and CLK='1' then L1 <= L2 after 10 ns; -- Uebernahme in 2. Stufe M1 <= M2 after 10 ns; H1 <= H2 after 10 ns; L0 <= L1 after 10 ns; -- Uebernahme in 1. Stufe M0 <= M1 after 10 ns; H0 <= H1 after 10 ns; end if; end process; noch den Entwurf eines modifizierten Adreßgenerators. Dieser ist erforderlich, da die Pixelzugriffe, im Gegensatz zu den oben geschilderten einfachen Anwendungen nicht mehr linear erfolgen. b) Vollständige Bildbearbeitung MEDIAN <= RESULT after 10 ns; -- Heraustakten -- nebenlaeufige Komponenteninstanziierungen (Schaltnetz) C1: SORT3 port map(in1, IN2, IN3, L2, M2, H2); C2: HI port map(l0, L1, VAR1); C3: HILO port map(m1, M2, VAR2, VAR3); C4: LO port map(h1, H2, VAR4); C5: HI port map(var1, L2, VAR21); C6: HI port map(m0, VAR2, VAR5); C7: LO port map(var5, VAR3, VAR22); C8: LO port map(h0, VAR4, VAR23); C9: MED port map(var21, VAR22, VAR23, RESULT); end STRUKTUR; nus- bzw. Cosinus-Funktion resultieren, auszugleichen. Eine eingehende Analyse möglicher Interpolationsalgorithmen hat ergeben, daß eine lineare Interpolation unter Einbeziehung der Pixelwerte der nächsten Nachbarn für einen zufriedenstellenden optischen Eindruck nicht ausreichend ist [17]. Die Architektur dieses Systems zeigt Bild 10. Das Projekt ist gekennzeichnet durch hohe Geschwindigkeitsanforderungen bei arithmetischen Operationen. Ferner wird bei der schnellen Berechnung der Sinus- und Cosinus-Funktionen davon Gebrauch gemacht, daß die FPGA-Zellen auch als ROM-Tabelle mit ultraschnellen Zugriffszeiten (Zykluszeit < 10 ns) einsetzbar sind. Bei der Synthese dieser Teilaufgaben werden Soft Bild 9: Struktureller VHDL-Code für ein 3x3 Median Filter Bild 10: System zur FPGA-basierten Echtzeitbilddrehung... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [9]

10 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 macros des Herstellers sowie individueller VHDL-Code verwendet. Für das noch in der Entwicklung befindliche Projekt wurde ein Verhaltensmodell geschrieben, das z.zt. auf einem Prototyp des Bilddrehungsprozessors zusammen mit bereits existierenden VHDL-Komponenten zur Ansteuerung der Wandler in synthesefähigen Code umgesetzt wird [18]. Literatur [1] Quelle: VHDL International; Markterhebung 1997; [2] D.Pellerin, D.Taylor; VHDL Made Easy; Prentice Hall, Upper Saddle River; 1997 [3] Aurora Softwaredokumentation; Viewlogic Inc.; [4] PeakVHDL Softwaredokumentation; Accolade Design Automation Inc.; [5] FPGA-Express Softwaredokumentation; Synopsys Inc.; [6] R.Airiau, J.M.Berge, V.Olive; Circuit Synthesis with VHDL; Kluwer Academic Publishers; Boston, Dordrecht; 1994 [7] A.Auer, D.Rudolf; FPGA Feldprogrammierbare Gate Arrays; Hüthig-Verlag, Heidelberg; 1995 [8] XILINX-Datenbuch, Xilinx Inc;1998; /www.xilinx.com [9] Datenbuch der Serie FLEX 10K; Altera Corporation,1998;http://www.altera.com [10] Dokumentation zur Foundation Software V1.4, Xilinx Inc. 1998; [11] AMPP-Catalog; Altera Corporation; 1996 [12] Core Solutions Databook; Xilinx Inc.; 1997 [13] H.P.Kölzer, J.Reichardt, B.Schwarz; 2. Zwischenbericht zum F&E-Projekt Entwurf eines modularen, parallelisierbaren Bilderfassungs- und Verarbeitungssystems für Echtzeitbetrieb; FH Hamburg; 1998 [14] H.P.Kölzer, J.Reichardt, B.Schwarz; Zwischenbericht zum F&E-Projekt Entwurf eines modularen, parallelisierbaren Bilderfassungs- und Verarbeitungssystems für Echtzeitbetrieb; FH Hamburg; 1997 [15] R.Hoppe, V.Cordes; Entwicklung einer FPGA-basierten PC-Einsteckkarte zur Implementierung von Bildverarbeitungsalgorithmen mit VHDL; Diplomarbeit FH-Hamburg, FB E/I;1998 [16] J.L.Smith: Implementing Median Filters in XC4000E FPGA; XCELL 23, Xilinx Corp.; 1996 [17] R.Koppel; Entwurf eines FPGA-basierten Systems zur Echtzeitbilddrehung; Diplomarbeit FH-Hamburg, FB E/I;1998 [18] C. Scherner; Synthetisierbare Komponenten eines Systems zur Echtzeitbilddrehung; Studienarbeit FH-Hamburg, FB E/I;1998 [19] M.Jain; The VHDL forecast; IEEE Spectrum; June 1993 p.36 [20] XUP Workshops; Xilinx Corp.; 1997 [10]

11 1 Einführung Echtzeitdatenverarbeitung 1 beinhaltet die Lösung von Aufgaben unter genauer Einhaltung vorgegebener zeitlicher Randbedingungen [9]. Typisches Beispiel ist die Aufgabe eines Roboterarms, Werkstücke von einem Montageband zu nehmen. Ein korrekter Ablauf ist weder bei verfrühtem noch bei verspätetem Zugriff möglich. Entsprechende Anforderungen gelten für zahlreiche Systeme, die im industriellen Umfeld, in Verkehrsmitteln oder im häuslichen Bereich in irgend einer Weise mit ihrer Umwelt interagieren. In der Regel müssen zeitlich parallel unter Berücksichtigung mehrerer Einflußgrößen mehrere Ausgangsgrößen eingestellt werden (Multitasking). Welche maximalen Zeitabweichungen bzw. Verzögerungen dabei zulässig sind, ohne daß das Systemverhalten fehlerhaft wird, hängt von der jeweiligen konkreten Aufgabenstellung ab (die Zeiten liegen oft im Millisekundenbereich). Für den Aufbau von Echtzeitsystemen werden alle Arten von Computern bis hin zu eingebetteten Systemen ( embedded control ) verwendet. Die notwendigen Betriebsprogramme können entweder alleinstehend laufen und müssen dann die gesamte Zeitsteuerung beinhalten oder können als Anwenderprogramme unter einem Echtzeitbetriebssystem dessen Einrichtungen zur Einhaltung von Zeitvorgaben nutzen. 2 Motivation Bei mehreren in Industriebetrieben durchgeführten Diplomarbeiten hat der Autor die Erfahrung gemacht, daß die Lösung von Echtzeitproblemen durch alleinstehende Assembler- oder C-Programme unverhältnismäßig lange Entwicklungszeiten bis zur Einhaltung des geforderten Zeitverhaltens zur Folge hatten und die notwendigen komplizierten Programmstrukturen nur schwer wartbar waren. 1 'Echtzeit' ist die übliche Übersetzung des englischen Wortes 'Realtime'. Echtzeitdatenverarbeitung JOCHEN SCHNEIDER Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik Z.B. war es für die Realisierung einer mikrocontrollergesteuerten programmierbaren SPS- Fernsteuerung erforderlich, u.a. drei gleichzeitig aktive Schnittstellen zu bedienen [8]. Das Problem wurde durch Verschachteln von Instruktionsblöcken der drei Treiberprogramme gelöst (Funktionsprinzip siehe Bild 1). Bei der Programmentwicklung für den Ablauf unter einem Echtzeitbetriebssystem ist die Strukturierung erheblich einfacher, es entstehen betriebssicherere Systeme und Modifikation und Wartung sind mit weniger Problemen verbunden. Welche grundlegenden Eigenschaften von Echtzeitbetriebssystemen diese Vereinfachungen bewirken, soll der vorliegende Beitrag aufzeigen. 3 Eigenschaften von Echtzeitbetriebssystemen Dem Entwickler bietet sich die Auswahl unter mehr als 80 unterschiedlichen Echtzeitbetriebssystemen [1]. Viele sind nur für eine bestimmte Prozessorfamilie geeignet, andere für zahlreiche unterschiedliche Prozessortypen verfügbar. Es gibt keinen häufig eingesetzten Prof. Dr. JOCHEN SCHNEIDER FH Hamburg Fachbereich E/I Berliner Tor Hamburg TEL.: FAX: etech.fh-hamburg.de Bild 1: Multitasking eines alleinstehenden Bedienprogramms für drei Schnittstellen durch Verschachteln von Instruktionsblöcken dreier separater Treiberprogramme... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [11]

12 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Bild 2: Beispiel zur Rechenzeitzuteilung. Die Prozesse A bis F befinden sich im Zustand bereit. Wegen der unterschiedlichen Prioritäten werden aber nur die Prozesse A bis C wechselweise aktiviert. Priorität Mikroprozessor bzw. Mikrocontroller, für den kein Echtzeitbetriebssystem verfügbar ist. Die Kommandosprachen sind überwiegend von UNIX abgeleitet. Mit unterschiedlichsten grafischen Oberflächen lassen sich Benutzerschnittstellen für Anwendungen vom eingebetteten System mit kleiner LCD-Anzeige bis zum Rechner mit Großbildschirm realisieren. Die Programmierschnittstellen genügen vielfach der amerikanischen Norm POSIX b. (Eine gute Einführung findet man in [4].) Die Stückpreise von Echtzeitbetriebssystemen liegen zwischen kostenlos bis über DM Gemeinsame elementare Eigenschaften sind Multitasking, Einrichtungen zur Steuerung des Zeitverhaltens, Methoden zur Ressourcenzuteilung und schnelle Kommunikationsmechanismen. 3.1 Threads, Prozesse Ein Prozessor stellt i.a. nur einen Controllerkern zur Verfügung, so daß die parallelen Prozesse aus Sicht des Prozessors zeitseriell ablaufen müssen (quasiparallele Abarbeitung der Aufgaben). Die Forderung läßt sich auf zwei verschiedene Weisen realisieren. Zum einen durch nebenläufige Unterprogramme (Threads), die zeitlich abwechselnd in einem gemeinsamen Speicherbereich ausgeführt werden und zum anderen durch die Einrichtung einer kompletten virtuellen Maschine für jeden parallel ablaufenden Programmteil (Prozeß). 2 'POSIX' ist die Kurzbezeichnung für 'Portable Operating System Interface'. Warteschlange der Prozesse im Zustand 'bereit' aktiv Prozeß A Prozeß D Prozeß E Prozeß B Prozeß F Prozeß C Prozeß G wartend Prozeß Z In beiden Fällen erledigt der Scheduler, ein zentraler Teil des Betriebssystems, die Prozessorzuteilung. Wenn der verwendete Prozessor über eine Speicherverwaltungseinheit verfügt, wird in der Regel vorzugsweise das Prozeßkonzept angewandt, da sich Programmfehler bei kaum unterschiedlichem Zeitbedarf für die Kontextumschaltung nicht auf die parallel ablaufenden Programmteile auswirken können. Zudem hat eine Strukturierung in Prozesse den Vorteil, daß bei Performanceproblemen unter der Voraussetzung einer entsprechenden Unterstützung des Betriebssystems ohne prinzipielle Programmänderungen leicht auf ein vernetztes Multiprozessorsystem übergegangen werden kann. Z.B. kann man in einem Meßdatenerfassungssystem einen rechenintensiven Auswerteprozeß auf einen anderen Prozessor auslagern. Die Generierung und das Beenden von Prozessen ist durch entsprechende Betriebssystemaufrufe während der Laufzeit eines Programms möglich. Bei Vorhandensein von genügend Speicherplatz und ausreichenden Systemressourcen können in einem Echtzeitsystem durchaus mehrere hundert Prozesse und/ oder Threads parallel ablaufen. Einige Echtzeitbetriebssysteme sind auch intern in Prozesse strukturiert, so daß insbesondere Treiber für Peripheriegeräte ohne Systemneustart dynamisch hinzugefügt oder entfernt werden können. Die jeweils rechtzeitige Prozessorzuteilung an die einzelnen Prozesse ist nicht immer einfach lösbar. Ein Echtzeitbetriebssystem ordnet dazu jedem Prozeß einen Zustand und eine individuell einstellbare Priorität zu. Die wichtigsten Zustände sind aktiv, wartend und bereit. Der Zustand aktiv charakterisiert einen Prozeß, der gerade den Prozessor beansprucht. Ein Prozeß, der auf Daten von einem Peripheriegerät wartet oder erst zu einem späteren Zeitpunkt aktiviert werden soll, ist im Zustand wartend und ein Prozeß, der bei Verfügbarkeit der notwendigen Ressourcen weiterlaufen kann, befindet sich im Zustand bereit. 3.2 Zeitsteuerung Der Scheduler versetzt jeweils den höchstpriorisierten Prozeß vom Zustand bereit in den Zustand aktiv. Die aktivierte virtuelle Maschine belegt den Prozessorkern dann für die Dauer einer Zeitscheibe (z.b. 50 ms). Wenn zwischenzeitlich ein noch höher priorisierter Prozeß in den Zustand bereit wechselt, löst dieser eine Umschaltung durch den Scheduler aus und belegt seinerseits den Prozessor (siehe Bild 2). Prinzipbedingt könnte ein höchstpriorisierter Prozeß demnach beliebig lange im Zustand aktiv verbleiben und damit alle anderen Echtzeitaktionen verhindern. Hohe Prioritäten dürfen deshalb ausschließlich an kurze zeitkritische Aufgaben wie die Übernahme von Peripheriedaten vergeben werden, und längere Berechnungen müssen mit möglichst niedriger Priorität ausgeführt werden. [12]

13 Falls mehrere Prozesse mit der gleichen höchsten Priorität den Zustand bereit einnehmen, kann der Scheduler unterschiedlich (i.a. einstellbar) reagieren. Z.B. können die einzelnen Prozesse abwechselnd nacheinander für jeweils eine Zeitscheibe aktiviert werden oder bis zu einem selbständigen Wechsel in den Zustand wartend durchlaufen. Für das zeitgesteuerte Starten von Threads oder Prozessen stehen in Echtzeitbetriebssystemen Timer zur Verfügung. Das sind spezialisierte Prozesse, die zu absolut oder relativ vorwählbaren Zeiten vom Scheduler aktiviert werden, um z.b. den Zustand eines zu steuernden anderen Prozesses von wartend auf bereit zu ändern. Die erreichbaren zeitlichen Auflösungen und Genauigkeiten hängen i.w. von den Möglichkeiten der verwendeten Hardware ab und liegen typischerweise im Mikro- bis Millisekundenbereich. Zur schnellen Reaktion auf externe Ereignisse unterstützen alle Echtzeitbetriebssysteme Hardwareinterrupts. Diese sind immer höher priorisiert als Threads und Prozesse; der Scheduler hat auf den Ablauf eines Interrupthandlers keinen Einfluß (siehe Bild 3). Auch die Priorisierung unterschiedlicher Interrupts zueinander ist (teilweise programmierbar) durch die Hardwarefunktionen des verwendeten Prozessors vorgegeben. Genau vorhersagbar ist das Zeitverhalten nur für den höchstpriorisierten Interrupt (siehe Bild 4). Üblicherweise stellt ein Echtzeitbetriebssystem für alle möglichen Interrupts bereits vorbereitete Handler mit allen Sicherungs- und Restaurierungsoperationen für den unterbrochenen Programmteil zur Verfügung, so daß durch entsprechende Betriebssystemaufrufe lediglich die vorgesehenen Benutzeraktionen eingefügt werden müssen. Um das vom Scheduler festgelegte Zeitverhalten nicht zu stören, müssen alle Interrupthandler möglichst schnell wieder beendet werden. Dazu läßt sich nach evtl. notwendigen Hardwareaktionen ein entsprechend vorbereiteter Prozeß vom Zustand wartend in den Zustand bereit versetzen, um dann schedulergesteuert alle weiteren Datenverarbeitungsschritte durchzuführen. Die vom Auftreten des Interruptsignals bis zur Ausführung des ersten Befehls im Interrupthandler maximal benötigte Zeit (Interruptlatenz) gehört zu den wichtigsten Kennwerten eines Echtzeitbetriebssystems. 3.3 Kommunikationsmechanismen Der zur Ausnutzung der zeitlichen Steuermöglichkeiten notwendige modulare Programmaufbau ist nur möglich, wenn die einzelnen Prozesse auf effiziente Weise Daten austauschen können. Da die einzelnen Module bei Realisierung als virtuelle Maschinen Interrupt tritt auf Interrupthandler startet Interrupthandler ist fertig durch die Speicherverwaltungseinheit streng voneinander abgeschirmt sind, kann eine Übergabe von Daten als Funktionsparameter oder als globale Variablen nicht funktionieren. Statt dessen muß das Betriebssystem für den Transport der Daten von Prozeß zu Prozeß sorgen. Viele Betriebssysteme bieten dafür mehrere Realisierungsmöglichkeiten: Die wichtigste Übertragungsmethode ist das Message Passing. Dazu muß der sendende Prozeß die Daten unter Angabe der gewünschten Übertragungspriorität an das Betriebssystem übergeben. Die Daten werden dann in einer nach Prioritäten und Ankunftszeiten geordneten Warteschlange aufbewahrt, bis sie vom Zielprozeß abgerufen werden. Aufgrund des Multitaskings kann es vorkommen, daß das Abrufen einer Nachricht zeitlich vor dem Absenden erfolgt. In diesem Fall wird der Empfangsprozeß vom Scheduler in den ressourcenschonenden Zustand wartend versetzt, bis die Nachricht eintrifft. Unter Ausnutzung dieser Funktionsweise ist auch eine zeitliche Synchronisation der Aktivitäten zweier oder mehrerer Prozesse möglich. Die beim Message Passing erreichbaren Übertragungsgeschwindigkeiten sind von den Möglichkeiten der Hardware und der Art der Implementierung abhängig (zwischen einigen KB/s bis zu mehreren MB/s). Häufig wird auch die Möglichkeit der Festlegung gemeinsamer Speicherbereiche ( shared memory ) angeboten. Ob diese durch entsprechende Programmierung der Speicherverwaltungseinheit oder durch transparente Anwendung des Message Passing realisiert wer Prozeß A Int X T T T il int iret IRQ X IntY IRQ Y Prozeß B unterbrochener Prozeß läuft weiter Prozeß C Zeit Bild 3: Zeitverhalten beim Auftreten eines Interrupts. T il ist die Interruptlatenzzeit, T int die Ausführungszeit des Handlers und T iret die Rückkehrzeit Bild 4: Beispiel zum Zeitverhalten während der Unterbrechung eines Interrupts IRQ X (mit Handler Int X ) durch einen höher priorisierten Interrupt IRQ Y (mit Handler Int Y ). Int Y versetzt Prozeß B in den Zustand bereit, Int X Prozeß C. Zeit... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [13]

14 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Tabelle 1: Kennwerte des Echtzeitbetriebssystems QNX bei Verwendung auf einem Pentium/90 PC den, ist je nach Betriebssystem unterschiedlich. Ein so durchgeführter Datenaustausch erscheint zunächst besonders attraktiv, da besondere Betriebssystemaufrufe nicht erforderlich sind. Allerdings muß man bedenken, daß die einzelnen Prozesse ja zeitlich parallel abgearbeitet werden und deshalb geeignete Synchronisationsmaßnahmen getroffen werden müssen. Schließlich muß sowohl der Empfangsprozeß wissen, wann Daten abholbereit zur Verfügung stehen als auch der Sendeprozeß, wann neue Daten geliefert werden können. 3.4 Ressourcenzuteilung Für die Zugriffssteuerung auf gemeinsam benutzte Speicherbereiche und andere Ressourcen können Semaphore eingesetzt werden. Wenn ein Prozeß auf eine so verwaltete Ressource zugreifen möchte, muß er mittels eines Betriebssystemaufrufs zunächst eine Anforderung an das Semaphor senden. Falls die Ressource gerade anderweitig benutzt wird, geht der Prozeß in den Zustand wartend, bis sich unter den wartenden Prozessen keiner mit höherer Priorität mehr befindet. Es erfolgt dann ein Wechsel in den Zustand bereit und nach Aktivierung durch den Scheduler kann der Zugriff erfolgen. Danach muß die Ressource durch einen weiteren Betriebssystemaufruf an das Semaphor wieder freigegeben werden. Bei häufig verwendeten Peripheriegeräten kann es sich lohnen, die Ressourcenverwaltung auf einen gesonderten Serverprozeß zu verlagern, der z.b. via Message Passing Anfragen entgegennimmt und alle Datenübertragungen realisiert. Durch Puffern mehrfach benötigter Datenbereiche durch den Serverprozeß läßt sich die Arbeitsgeschwindigkeit eines Systems ggf. erheblich steigern. Für Standardperipheriegeräte und gebräuchliche Schnittstellen liefern die Hersteller von Echtzeitbetriebssystemen i.a. entsprechend optimierte Treiberprogramme bereits mit. Der für die Anpassung spezieller Peripherie zu treibende Aufwand ist je nach Systemarchitektur sehr unterschiedlich. Er muß bei der Bewertung der Eignung eines Betriebssystems sorgfältig geprüft werden. Kontextumschaltung: 28 µs Interruptlatenz: 5 µs Timerauflösung: Übertragungsrate bei Message Passing: bis 100 µs (einstellbar, ohne Hardwarezusatz) 35 MB/s (bei 4096 Byte großen Datenpaketen) 4 Anwendungen Neben der Zusammenarbeit mit Industriefirmen wurde inzwischen im Lehrgebiet Digitale Informationstechnik die Vermittlung von Echtzeitdatenverarbeitung in den Studienplan der Studenten aufgenommen. Aufgrund von guten Erfahrungen des Autors während seiner industriellen Entwicklertätigkeit mit dem PC-Echtzeitbetriebssystem QNX (s. Tabelle 1) wurde dieses für das Labor für Digitale Schaltungstechnik in mehreren Exemplaren angeschafft und seither u.a. für diverse Diplom- und Studienarbeiten erfolgreich eingesetzt. QNX [5] ist modular aufgebaut und beinhaltet einen nur wenige Kilobyte großen Betriebssystemkern. Der Einsatz ist auf allen Varianten von PC-Hardware sowie auf Power-PCund MIPS-Prozessoren möglich. Schnittstellenund Gerätetreiber laufen als Benutzerprozesse und können während des Betriebs jederzeit hinzugefügt oder entfernt werden. Drei verschiedene grafische Benutzeroberflächen erlauben die Ansteuerung unterschiedlichster Hardwarekonfigurationen. Durch ein transparentes Vernetzungskonzept werden auch Multiprozessorsysteme problemlos unterstützt. Eine Einführung in die Echtzeitdatenverarbeitung mit QNX findet man in [6]. Tabelle 1 zeigt einige mit einem Pentium/90 ermittelte Betriebssystemkennwerte. Umfangreichere konkrete Anwendungen von QNX wurden bisher vorwiegend im Rahmen des Entwicklungsprojekts Hard- und Software für Koordinatenmeßgeräte erstellt. Eine grundlegende Beschreibung findet man in [7], Erweiterungen des Konzepts wurden u.a. in [3] und [2] entwickelt. Für den Einsatz in einem eingebetteten System wird QNX z.zt. im Rahmen einer noch nicht ganz abgeschlossenen Diplomarbeit in das Flash-ROM eines vernetzten PC104 Mikrocomputers implementiert. Zur komfortablen Benutzerkommunikation soll die echtzeitgeeignete grafische Oberfläche Photon angepaßt werden, so daß nach Fertigstellung ein eigenständiges leistungsfähiges Echtzeitsystem für Steuerung und Meßdatenerfassung auf kleinstem Raum zur Verfügung steht. 5 Fazit Echtzeitbetriebssysteme stellen die für die genaue Einhaltung eines vorgegebenen Zeitverhaltens notwendigen Hilfsmittel zur Verfügung. Durch ihre Anwendung läßt sich die Entwicklung von Echtzeitsystemen vereinfachen und beschleunigen. Der erzwungene modulare Programmaufbau führt zu erhöhter Betriebssicherheit und erleichtert die spätere Systemwartung. Die zusätzlichen Anschaffungskosten [14]

15 für das Betriebssystem fallen auch bei kleinen Projekten gegenüber den Vorteilen kaum ins Gewicht. Entsprechende Kenntnisse und Erfahrungen der Systementwickler zu fördern lohnt sich. Literatur [1] Auswahlliste für Echtzeitbetriebssysteme: [2] Bläske O.: Entwicklung eines Interpreters für spezielle SPS-Syntax zur Steuerung von Koordinatenmeßgeräten unter Verwendung der UNIX-Werkzeuge lex und yacc. Diplomarbeit, FH Hamburg, FB E/I, [3] Bruse I., Krüger J.: Entwicklung eines Interpreters für spezielle SPS-Syntax zur Steuerung von Koordinatenmeßgeräten. Diplomarbeit, FH Hamburg, FB E/I, [4] Gallmeister B.O.: POSIX.4-Programming for the Real World. O Reilly & Associates Inc., [5] QNX Software Systems Ltd.: QNX 4 Operating System System Architecture. Kanata, Auch: / literature/qnx_sysarch/. [6] Schneider J.: Echtzeit-Datenverarbeitung. Studienskript, FH Hamburg FB E/I, [7] Schubert F.: Parallele Prozessoren steuern Koordinatenmeßmaschine. Technische Berichte Nr. 27, pp , FH Hamburg, FB E/I, [8] Schulenburg J.: Entwicklung eines programmierbaren mikrocontrollergesteuerten Moduls zur Fernsteuerung einer SI- MATIC S5 über das EURO-ISDN. Diplomarbeit, FH Hamburg FB E/I, [9] Uhres L.: comp.realtime Frequently Asked Questions. /faqs/ realtime-computing/faq/.... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [15]

16 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 ZUSAMMENFASSUNG Diese Arbeit stellt ein Ergebnis aus dem vom WS95/96 bis zum SS97 von der Fachhochschule geförderten Forschungsprojekt Fuzzylogik und ihre Anwendung dar. An einem Beispiel aus dem Bereich der Mustererkennung wird gezeigt, daß beim Einsatz der Fuzzylogik schon im Ansatz andere als die herkömmlichen Denkweisen erforderlich sind. Schon bei der modellhaften Beschreibung einer Anwendung sollte jede unnötige scharfe Unterscheidung vermieden werden, damit die Vorteile der Fuzzylogik auch zur Geltung kommen. Diese Regel gilt schon für die Wahl der linguistischen Variablen, soweit der Anwender diese selbst festlegen kann. Handgeschriebene Zeichen können durch scharf voneinander zu unterscheidende Linientypen wie Bogen, Kreis und Gerade, sie können aber auch fuzzygerecht durch einen einzigen Linientyp mit dem unscharfen Parameter Krümmung beschrieben werden. Der unscharfe Ansatz vereinfacht die Aufstellung der Fuzzyregeln und verbessert die Erkennungsrate. Mustererkennung mit Fuzzylogik 1 Grundlagen und Vorarbeiten Dieser Beitrag schließt an den Artikel Fuzzylogik und ihre Anwendung an, der im Juni 1997 vom Autor in [1] vorgelegt wurde. Dort sind die Grundlagen der Fuzzylogik soweit erläutert, daß damit auch der mit der Fuzzylogik nicht vertraute Leser dem vorliegenden Inhalt mühelos folgen kann. Eine ausführlichere Einführung in die Fuzzylogik ist in [2] oder [3] nachzulesen. In [4] ist neben einer Vielzahl von Beiträgen unterschiedlicher Autoren zur Mustererkennung mit Fuzzylogik auch die berühmte Erstveröffentlichung zum Thema Fuzzy von Lotfi Zadeh abgedruckt. Der Leser, der die Bedeutung der Begriffe Fuzzymenge, linguistische Variable, linguistischer Term, Zugehörigkeitsgrad und Zugehörigkeitsfunktion einzuordnen weiß, die elementaren logischen Verknüpfungen von Fuzzymengen wie UND und ODER sowie die Invertierung von Fuzzymengen kennt und über Grundkenntnisse vom Aufbau eines Fuzzysystems mit Fuzzifizierung, Fuzzyinferenz, Regelbasis und Defuzzifizierung verfügt, ist für das Verständnis des folgenden Inhalts hinreichend gerüstet. Tabelle 1 enthält eine komprimierte Erläuterung dieser Grundbegriffe. 2 Mustererkennung als beispielhafte Anwendung Die Mustererkennung, speziell die Erkennung handgeschriebener Zeichen, wurde hier als ein Anwendungsbeispiel der Fuzzylogik gewählt. Es geht in diesem Fall also nicht so sehr um das fertige Produkt Zeichenleser sondern vielmehr um allgemeingültige Erkenntnisse und Erfahrungen, die sich dann auch auf andere Anwendungsbereiche übertragen las- LUDOLF STEWEN Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik sen. Um den Kerngedanken dieses Beitrags, die fuzzygerechte Modellierung einer Anwendung zu verdeutlichen, wird der bereits in [1] vorgestellte Ansatz zur Mustererkennung in Abschnitt 3 noch einmal kurz skizziert, um dann in Abschnitt 4 einem neuen, fuzzygerechteren Ansatz gegenübergestellt werden zu können. Der Zeichensatz für die zu erkennenden Zeichen wurde zunächst auf die handgeschriebenen Dezimalziffern 0 bis 9 begrenzt, kann aber grundsätzlich auch um andere Zeichen, wie z.b. die Buchstaben des Alphabets oder einfache grafische Symbole erweitert werden, soweit die nachfolgend beschriebenen Modellbildungsverfahren dieses zulassen. Entscheidend, wie bei jeder Mustererkennung, sind die Merkmale, die zur Beschreibung der Zeichen herangezogen werden. Dem eigentlichen Erkennungsprozeß wird ein Vorverarbeitungsprozeß [1, 5] vorangestellt, in dem die Zeichen einer Zeichenfolge vereinzelt, in ihrer Größe normiert, auf ihren wesentlichen Bestandteil reduziert und bezüglich erkennbarer Fehler korrigiert werden. Dieser Prozeß hat zunächst noch nichts mit der Fuzzylogik zu tun. Zur Vereinzelung wird zu jedem eingelesenen Zeichen ein Fenster bestimmt, in das es gerade nach Höhe und Breite hineinpaßt. Als Normgröße eines Zeichens wird ein Fenster von 60x60 Bildpunkten festgelegt. Auf diese Fenstergröße wird das eingelesene Zeichen abgebildet, um eine Abhängigkeit von der Größe der Darstellung auszuschließen. Nach einer Glättung und anschließenden Ausdünnung des Linienverlaufs (Skelettierung) wird das jeweilige Zeichen nur noch durch glatt verlaufende, einen Punkt breite Linienzüge repräsentiert. Nach einer Korrektur offensichtlicher Fehler wie kurzer Linienunterbrechungen und Einzelpunkte (Fliegenschmutz) steht dann das Bild 1: Vorverarbeitung am Beispiel der Ziffer 6 aus der Ziffernfolge 16 Ziffernfolge 16 -> Vereinzelung -> Normierung -> Glättung -> Skelettierung -> Korrektur [16]

17 vorverarbeitete Zeichen für den eigentlichen Erkennungsprozeß zur Verfügung. Bild 1 zeigt die einzelnen Schritte der Vorverarbeitung am Beispiel der Ziffer 6 aus der Ziffernfolge Scharfe Merkmalsunterscheidung bei verschiedenen Linientypen Als Erkennungsmerkmale werden in einem ersten Ansatz [5] folgende Linientypen scharf unterschieden: die Gerade, der Bogen, der Kreis, die Schlange und die Schnecke. Die Definition dieser Typen ist weitgehend aus Bild 2 ersichtlich. Jedes Zeichen läßt sich durch Festlegen von Merkmalspunkten in Linienelemente der beschriebenen Typen aufspalten. Merkmalspunkte sind Linienendpunkte, Kreuzungen Abzweigungen und (in hier nicht näher erläuterten Sonderfällen) Ecken (s. Bild 3). Jedes Linienelement wird durch die linguistischen Variablen Lage vertikal, Lage horizontal, Richtung und Größe beschrieben. Tabelle 2 führt die zu diesen Variablen definierten linguistischen Terme auf. Eine genaue Definition dieser Terme ist in [5] enthalten. Jede Ziffer wird durch mindestens einen Satz von Fuzzyregeln beschrieben. Dieser Satz enthält alle signifikanten Linienelemente der Ziffer und eine Beschreibung dieser Ele Tabelle 1: Grundbegriffe der Fuzzylogik Bild 2: Linientypen Gerade Bogen Kreis Schlange Schnecke... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [17]

18 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Bild 3: Merkmalspunkte und Linienelemente Tabelle 2: Linguistische Variablen und linguistische Terme Bild 5: Linienelemente mit unterschiedlicher Krümmung K MPA = Merkmalspunkt am Anfang, MPB = Merkmalspunkt am Ende, SP = Schwerpunkt mente durch den Linientyp und die zugehörigen linguistischen Variablen. Insbesondere für solche Ziffern wie die 1, die 4 oder die 7, die sehr unterschiedlich geschrieben werden, werden mehrere Regelsätze angeben. Eine formale Beschreibung der Ziffer 6 kann z.b. wie folgt aussehen: Ziffer: 6 Linientyp: Kreis Beschreibung: (LAGE_U LAGE_UM) (RICHTUNG_R RICHTUNG_RU) Linientyp: Bogen Beschreibung: (LAGE_O LAGE_OM) (RICHTUNG_O RICHTUNG_RO) Die Bedeutung der oben verwendeten Kurzbezeichnungen ergibt sich aus folgender Erläuterung. Nach der formalen Beschreibung stellt das zu identifizierende Zeichen eine 6 dar, wenn es: 1. einen Linientyp Kreis enthält, dessen Schwerpunkt unten ODER halbunten ( unten-mitte ) liegt UND der nach rechts ODER nach rechts-oben gerichtet ist, wobei die Richtung durch die Verbindungslinie zwischen Kreismerkmalspunkt und Kreisschwerpunkt (s. Bild 3) bestimmt wird, 2. UND wenn es einen Linientyp Bogen enthält, dessen Schwerpunkt oben ODER halboben (oben-mitte) liegt UND der nach oben ODER nach rechts-oben gerichtet ist, wobei die Richtung durch die Verbindungslinie zwischen Bogenmerkmalspunkt und Bogenschwerpunkt bestimmt wird (s. Bild 3). Bild 4: Mögliche Schreibweien der Ziffer 1 4 Unscharfe Merkmalsunterscheidung bei einem Linientyp Die scharfe Unterscheidung zwischen den unterschiedlichen Linientypen Gerade, Bogen, Kreis, Schnecke und Schlange macht erhebliche Probleme. Für jedes Linienelement muß jeweils scharf entschieden werden, um welchen Typ es sich handelt. So geht z.b. ab einer bestimmten geringen Krümmung eine Gerade in einen Bogen und dieser ab einer bestimmten sehr großen Krümmung in einen Kreis über. Der Anwender als Schreiber oder Leser von Zeichen macht diese scharfe Unterscheidung gewöhnlich nicht. Die in Bild 4 nur geringfügig anders geschriebenen gleichen Ziffern (hier die 1) sollen das verdeutlichen. Eine Erkennung dieser vier gleichen Ziffern würde nach dem in Abschnitt 3 beschriebenen Verfahren vier unterschiedliche Musterbeschreibungen (Regelsätze) erfordern. In einer neuen Modellbeschreibung wird daher, ganz im Sinne der Fuzzylogik, die scharfe Unterscheidung zwischen den Linientypen aufgelöst und nur noch der eine Linientyp Linie definiert. Zur fuzzygerechten (unscharfen) Unterscheidung wird die Linie jetzt durch eine zusätzliche linguistische Variable Krümmung beschrieben. Der Wertebereich der Krümmung K wird auf den Bereich von -1 bis +1 so festgelegt, daß z.b. der Wert K = 0 eine Gerade, der Wert K = +0.5 einen Links-Halbbogen, der Wert K = -0.5 einen Rechts-Halbbogen und die Werte K = -1 und K = +1 ein und denselben Kreis kennzeichnen (Bild 5). Das Vorzeichen [18]

19 Bild 7: Zerlegung von Schnecke und Schlange in jeweils zwei Bögen von K spielt beim Grenzfall Kreis keine Rolle. Als linguistische Terme zur Beschreibung der Variablen Krümmung werden verwendet: gerade, linksgebogen, rechtsgebogen und rund. Eine sinnvolle Definition dieser Terme in Bild 6 zeigt, daß es zwischen gerade und gebogen (links oder rechts) breite Überlappungsbereiche gibt, so daß ein Bogen mit schwacher Krümmung auch noch als Gerade behandelt wird. Ein starker Links- oder Rechtsbogen ist zugleich auch als Kreis anzusehen. Die Linientypen Schnecke und Schlange werden jeweils in zwei Linienelemente vom alten Typ Bogen aufgespalten, der dann durch den neuen Linientyp Linie beschrieben wird. Das Aufspalten geschieht durch Einfügen eines zusätzlichen Merkmalspunktes MPZ an der Stelle, an der die Schnecke bzw. die Schlange durch eine Gerade geschnitten wird, die durch die beiden, diesen Linientyp begrenzenden Merkmalspunkte, verläuft (Bild 7). Eine ausführlichere Beschreibung des in diesem Abschnitt erläuterten Verfahrens ist in [6] enthalten. 5 Relative Positionierung der Linienelemente Bei der Zeichenbeschreibung nach Abschnitt 3 wurden noch alle Linienelemente unabhängig voneinander positioniert. Dazu wurde zu jedem Linienelement seine horizontale und seine vertikale Position innerhalb des Zeichenfeldes angegeben. Durch Festlegung eines geeigneten Orientierungspunkts kann mit einer auf diesen Punkt bezogenen Beschreibung auf eine Positionsangabe der Linienelemente völlig verzichtet werden. Als Orientierungspunkt wird jeweils der Merkmalspunkt ge- wählt, von dem die meisten Linienelemente ausgehen. Da bei den Ziffern 0 bis 9 im Normalfall nur von einem einzigen Merkmalspunkt mehr als ein Linienelement ausgeht, wird dieser als Orientierungspunkt festgelegt. In Bild 8 sind zu typischen Schreibweisen der Dezimalziffern jeweils die Orientierungspunkte markiert. Mit der Reduzierung auf einen einzigen Linienelementtyp Linie gemäß Abschnitt 4 und der hier erläuterten relativen Positionierung der Linienelemente bei Wegfall der absoluten Positionsangaben, kann der Regelsatz zur Beschreibung der Zeichen sehr stark komprimiert werden. Die hier benötigten linguistischen Variablen und die zugehörigen linguistischen Terme zeigt Tabelle 3 (vgl. auch Tabelle 2). Eine Regel zur Beschreibung der Ziffer 6 sieht jetzt wie folgt aus: Ziffer: 6 Linientyp: Linie Beschreibung: (KRUEMMUNG_REG KRUEMMUNG_GER) (RICHTUNG_O RICHTUNG_RO) Linientyp: Linie Beschreibung: KRUEMMUNG_RND (RICHTUNG_RU RICHTUNG_R) Die Bedeutung der oben verwendeten Kurzbezeichnungen ergibt sich aus der folgenden Erläuterung. Nach der formalen Beschreibung wird eine 6 erkannt, wenn: 1. ein vom Orientierungspunkt ausgehender Rechtsbogen ODER eine Gerade nach oben ODER nach rechts-oben gerichtet ist, 2. UND wenn ein vom Orientierungspunkt ausgehender Kreis nach rechts-unten ODER nach rechts gerichtet ist. Bild 6: Linguistische Terme der Variablen Krümmung K Bild 8: Orientierungspunkte der Zeichen 0 bis 9 Tabelle 3: Linguistische Variablen und linguistische Terme bei einem Linientyp und relativer Positionierung der Linienelemente... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 [19]

20 ... FH HAMBURG FACHBEREICH ELEKTROTECHNIK UND INFORMATIK TECHNISCHE BERICHTE NR. 31 Prof. Dipl.-Ing. LUDOLF STEWEN FH Hamburg Fachbereich E/I Berliner Tor Hamburg TEL.: FAX: etech.fh-hamburg.de 6 Ergebnisse und Ausblick Legt man als Qualitätsmerkmal für die beschriebenen Verfahren die Quote fest, mit der eine Probe von handgeschriebene Zeichen richtig erkannt wird, so ergeben sich mit 97% sowohl für das in Abschnitt 3 beschriebene Verfahren als auch für das Verfahren nach Abschnitt 4 und 5 in etwa die gleichen guten Werte. Als Prüfmaßstab wurden zu jedem Zeichen jeweils von 62 Personen Schriftproben zugrunde gelegt. Wichtig ist aber der wesentlich geringere Aufwand, den das zuletzt beschriebene Verfahren für das Erstellen der Regelbasis mit den Erkennungsregeln benötigt. Das macht sich auch, im Vergleich zum ersten Verfahren, in dem auf weniger als die Hälfte reduzierten Umfang des Regelsatzes bemerkbar. Für das Aufstellen eines Satzes von Erkennungsregeln stehen z.z. noch keine formalen Kriterien zur Verfügung. Insofern ist ein Qualitätsvergleich der beschriebenen Verfahren äußerst schwierig, weil dieser immer die verwendeten Regelsätze mit einschließt, die selbst mit dem Verfahren nichts zu tun haben. Trotzdem kann man aus den angeführten Gründen das zuletzt beschriebene Verfahren durchaus als wesentliche Weiterentwicklung des ersten Verfahrens bezeichnen. Es wird angestrebt, in weiteren Arbeiten Verfahren zu entwickeln, über die auch die Regeln automatisch generiert und möglicherweise im Betrieb korrigiert werden. Hierbei könnten Lernprozesse eine Rolle spielen, wie sie von Neuronalen Netzen her bekannt sind und unter dem Stichwort NeuroFuzzy auch in der Fuzzylogik Eingang gefunden haben [7, 8, 9]. Der wichtigste Aspekt dieser Arbeit, insbesondere in Bezug auf allgemeine Erkenntnisse zum Einsatz der Fuzzylogik, liegt in der Einführung der linguistischen Variablen Krümmung. Durch Wegfall der scharfen Unterscheidung von fünf unterschiedlichen Linientypen wird die Beschreibung der Mustererkennungsregeln erheblich vereinfacht. Es ist davon auszugehen, daß damit auch bessere Erkennungsergebnisse möglich werden. Ein Nachweis konnte aber noch nicht erbracht werden, weil die mit unterschiedlichem Aufwand von verschiedenen Personen empirisch generierten Regeln diesen Vergleich nicht zulassen. Ohne die Unterstützung der Fachhochschule und die engagierte Mitwirkung der Studenten in Studien- und Diplomarbeiten wäre diese Arbeit nicht möglich gewesen. Dafür möchte ich mich bei allen Beteiligten, insbesondere bei den Studenten Udo Basse und Kai Würtz [5], Gero Ricklinkat [6] sowie Volkmar Horn und Jürgen Koop [10], die inzwischen ihr Studium an der Fachhochschule erfolgreich abgeschlossen haben, ganz herzlich bedanken Literatur [1] Stewen: Fuzzylogik und ihre Anwendung, Technische Berichte der Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik, Nr. 30, Juni 1997; [2] Stewen: Fuzzylogik, Studienskript, Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik, 1997; [3] Kahlert, Frank: Fuzzy-Logik und Fuzzy- Control, Vieweg, 1993; [4] Bezdek, Pal: Fuzzy Models for Pattern Recognition, IEEE Press, 1992; [5] Basse, Würtz: Erkennung handgeschriebener Zeichen mit Hilfe der Fuzzy-Logik, Diplomarbeit, Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik, 1997; [6] Ricklinkat: Umbau eines OCR-Systems durch Erweiterung des Fuzzyansatzes, Diplomarbeit, Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik, 1998; [7] Chen: Fuzzy Logic and Neural Network Handbook, McGraw Hill, 1996; [8] Kartalopoulos: Understanding Neural Networks and Fuzzy Logic, IEEE Press, 1996; [9] Yen, Langari, Zadeh: Industrial Applications of Fuzzy Logic and Intelligent Systems, IEEE Press, 1995; [10] Horn, Koop: Mustererkennung mit Fuzzylogik, Diplomarbeit, Fachhochschule Hamburg, Fachbereich Elektrotechnik und Informatik, [20]

FPGA-Synthese mit VHDL für Bildverarbeitungsanwendungen

FPGA-Synthese mit VHDL für Bildverarbeitungsanwendungen Prof. Dr. JÜRGEN REICHARDT, FH Hamburg, FB E/I, Berliner Tor 3, 20099 Hamburg, reichard@ etech.fh-hamburg.de Bild 1: Anteilige Verwendung verschiedener Hardwarebeschreibungssprachen 1993 und 1997 (Mehrfachnennungen

Mehr

Studienvertiefungsrichtung Informationstechnik

Studienvertiefungsrichtung Informationstechnik Studienvertiefungsrichtung Informationstechnik Prof.Dr.-Ing. Ulrich Sauvagerd Lehrgebiet Informationstechnik Nov. 2006, Seite 1 www.etech.haw-hamburg.de/~sauvagerd Lehrgebiet Informationstechnik Nov. 2006,

Mehr

Modulare Grafische Programmierung (MGP) von FPGAs

Modulare Grafische Programmierung (MGP) von FPGAs Modulare Grafische Programmierung (MGP) von FPGAs Linna Lu Technische Universität Ilmenau Projektseminar KBSE Projektseminar KBSE Ilmenau 29.06.2005 Linna Lu Projektseminar Softwaresysteme/Prozessinformatik

Mehr

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform

Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform Automatisierung mit Hilfe einer rekonfigurierbaren FPGA-Hardwareplattform Prof. Dr.-.-Ing.. Frank Kesel Fachhochschule Pforzheim Übersicht Vom Algorithmus zum Chip High-Level Synthese Anwendungsbeispiel

Mehr

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme

Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme Entwicklung von Partitionierungsstrategien im Entwurf dynamisch rekonfigurierbarer Systeme R. Merker, Technische Universität Dresden, Fakultät ET und IT J. Kelber, Fachhochschule Schmalkalden, ET Gliederung

Mehr

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen

Programmierbare Logik CPLDs. Studienprojekt B Tammo van Lessen Programmierbare Logik CPLDs Studienprojekt B Tammo van Lessen Gliederung Programmierbare Logik Verschiedene Typen Speichertechnologie Komplexe Programmierbare Logik System On a Chip Motivation Warum Programmierbare

Mehr

Carl von Ossietzky Universität Oldenburg Fachbereich 10 Informatik

Carl von Ossietzky Universität Oldenburg Fachbereich 10 Informatik Carl von Ossietzky Universität Oldenburg Fachbereich 10 Studienordnung Schwerpunkt Systeme im Rahmen der Studiengänge Diplom- BSc in Beschlossen in der Fachbereichsratssitzung am 03.07.2002 1. Der Schwerpunkt

Mehr

Emulation und Rapid Prototyping. Hw-Sw-Co-Design

Emulation und Rapid Prototyping. Hw-Sw-Co-Design Emulation und Rapid Prototyping Hw-Sw-Co-Design Simulation von komplexen ICs Design level Description language Primitives Simulation time (instructions/cycle) Algorithm HLL Instruction sets 10-100 Architecture

Mehr

Emulation und Rapid Prototyping

Emulation und Rapid Prototyping Emulation und Rapid Prototyping Hw-Sw-Co-Design Simulation von komplexen ICs Design level Description language Primitives Simulation time (instructions/cycle) Algorithm HLL Instruction sets 10-100 Architecture

Mehr

Development Tools for 16/32 Bit Microcontroller

Development Tools for 16/32 Bit Microcontroller Praktika- und Diplomthemen bei Stand 01/2013 Die nachfolgend aufgeführten Themen sind Vorschläge und können in Absprache mit dem Praktikanten / Diplomanden sowie der Hochschule modifiziert werden. Die

Mehr

Protected User-Level DMA in SCI Shared Memory Umgebungen

Protected User-Level DMA in SCI Shared Memory Umgebungen Protected User-Level DMA in SCI Shared Memory Umgebungen Mario Trams University of Technology Chemnitz, Chair of Computer Architecture 6. Halle Chemnitz Seminar zu Parallelverarbeitung und Programmiersprachen

Mehr

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./29.05.2009

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./29.05.2009 Übungen zu Architektur Eingebetteter Systeme Blatt 5 28./29.05.2009 Teil 1: Grundlagen 1.1: VHDL Bei der Erstellung Ihres Softcore-Prozessors mit Hilfe des SOPC Builder hatten Sie bereits erste Erfahrungen

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

SOFTWARE-ENTWICKLUNG FÜR EMBEDDED SYSTEMS

SOFTWARE-ENTWICKLUNG FÜR EMBEDDED SYSTEMS SOFTWARE-ENTWICKLUNG FÜR EMBEDDED SYSTEMS Stimmungsbild zu den Herausforderungen bei der Software-Entwicklung für Embedded Systems Motivation In dieser Umfrage geht es um die Entwicklung von Software für

Mehr

EINE MODULARE TESTPLATTFORM FÜR DAS PROTOTYPING VON DRAHTLOSEN SYSTEMEN

EINE MODULARE TESTPLATTFORM FÜR DAS PROTOTYPING VON DRAHTLOSEN SYSTEMEN EINE MODULARE TESTPLATTFORM FÜR DAS PROTOTYPING VON DRAHTLOSEN SYSTEMEN Einleitung Zunehmender Einsatz von Kurzstreckenfunk in Form drahtloser Datenkommunikation im Bereich IEEE Standard 802.15.4 - Zigbee

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010

VHDL Einleitung. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung Dr.-Ing. Volkmar Sieh Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2010 VHDL Einleitung 1/17 2010-04-14 Inhalt Entwurfsebenen und -sichten

Mehr

FPGAs an der Hochschule München in Lehre und Forschung. Christian Münker, Hochschule München

FPGAs an der Hochschule München in Lehre und Forschung. Christian Münker, Hochschule München FPGAs an der Hochschule München in Lehre und Forschung Christian Münker, Hochschule München Überblick Hochschule München 2 www.hm.edu Gegründet 1971 Eine der größten Hochschulen für angewandte Wissenschaften

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Institut für Informatik

Institut für Informatik Institut für Informatik 1. Forschungsprojekte Projekttitel: Ansätze zur Bewertung formaler Verifizierungen von Hardware Wissenschaftliche Siemens AG -Prof. Dr. W. Büttner, Universität Bremen - Prof. Dr.

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Mikroelektronik-Ausbildung am Institut für Mikroelektronische Systeme der Leibniz Universität Hannover

Mikroelektronik-Ausbildung am Institut für Mikroelektronische Systeme der Leibniz Universität Hannover Mikroelektronik-Ausbildung am Institut für Mikroelektronische Systeme der Leibniz Universität Hannover Prof. Dr.-Ing. Holger Blume, Hans-Peter Brückner, Christian Leibold, Ingo Schmädecke Gliederung Motivation

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Einführung Administratives Unterlagen Verwendbar: Master of Science (Informatik) Wahlpflichtfach (Theorie-Pool) Unterlagen Folien:

Mehr

Implementierung eines Software Defined Radio auf einem FPGA

Implementierung eines Software Defined Radio auf einem FPGA Technik Auguste Feukam-Chindji Implementierung eines Software Defined Radio auf einem FPGA Diplomarbeit Fachhochschule Köln Cologne University of Applied Sciences 07 Fakultät für Informations-, Medien-

Mehr

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen

Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Software-basierter Speicherschutz durch spezialisierte Java-VMs auf Mikrocontrollersystemen Christian Wawersich Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Universität Erlangen-Nürnberg

Mehr

Digitaltechnik. Prof. Dr. Sven-Hendrik Voß Wintersemester 2015 Technische Informatik (Bachelor), Semester 3 Termin 1, 05.10.2015

Digitaltechnik. Prof. Dr. Sven-Hendrik Voß Wintersemester 2015 Technische Informatik (Bachelor), Semester 3 Termin 1, 05.10.2015 Digitaltechnik Prof. Dr. Sven-Hendrik Voß Wintersemester 2015 Technische Informatik (Bachelor), Semester 3 Termin 1, 05.10.2015 Seite 2 Einführung Digitaltechnik Wintersemester 2015 Inhaltsverzeichnis

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Das große All-in-All CPLD/FPGA Tutorial

Das große All-in-All CPLD/FPGA Tutorial Das große All-in-All CPLD/FPGA Tutorial Mit diesem Tutorial sollen die ersten Schritte in die Welt der programmierbaren Logik vereinfacht werden. Es werden sowohl die Grundlagen der Logik, die benötigte

Mehr

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

Mehr

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12

Softwaretechnik. Vertretung von Prof. Dr. Blume Fomuso Ekellem WS 2011/12 Vertretung von Prof. Dr. Blume WS 2011/12 Inhalt Test, Abnahme und Einführung Wartung- und Pflegephase gp Vorlesung Zusammenfassung Produkte und Recht (Folien von Prof. Blume) 2 , Abnahme und Einführung

Mehr

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R

Vector Software. Test Automation mit VectorCAST während der gesamten Softwareentwicklung W H I T E P A P E R Vector Software W H I T E P A P E R Test Automation mit VectorCAST während der gesamten Softwareentwicklung VectorCAST Produktfamilie Die VectorCAST Produktfamilie automatisiert Testaktivitäten über den

Mehr

Bachelor-/Studienarbeit

Bachelor-/Studienarbeit Bachelor-/Studienarbeit, Zur Wartung und Unterstützung der Entwicklung existiert ein auf RCP/Eclipse basierendes Kontrollprogramm, welches die Kommunikation und Administration der Roboter über einen lokalen

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem?

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem? 1 Einleitung 1.1 Aufgaben und Grobstruktur Was ist ein Betriebssystem? Betriebssystem (Definition nach DIN 44300) Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage

Mehr

Teil 1: Digitale Logik

Teil 1: Digitale Logik Teil 1: Digitale Logik Inhalt: Boolesche Algebra kombinatorische Logik sequentielle Logik kurzer Exkurs technologische Grundlagen programmierbare logische Bausteine 1 Tri-State Ausgangslogik Ausgang eines

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Symmetric Multiprocessing mit einer FPGA basierten. Marco Kirschke INF-M3 Seminar Wintersemester 2010/2011 25. November 2010

Symmetric Multiprocessing mit einer FPGA basierten. Marco Kirschke INF-M3 Seminar Wintersemester 2010/2011 25. November 2010 Symmetric Multiprocessing mit einer FPGA basierten MPSoC Plattform Marco Kirschke INF-M3 Seminar Wintersemester 2010/2011 25. November 2010 Inhalt Motivation Vorarbeiten Ziele für die Masterarbeit Vorgehensweise

Mehr

Modernes Gerätekonzept auf FPGA-Basis für die zerstörungsfreie Werkstoffprüfung

Modernes Gerätekonzept auf FPGA-Basis für die zerstörungsfreie Werkstoffprüfung DGZfP-Jahrestagung 2011 - Poster 64 Modernes Gerätekonzept auf FPGA-Basis für die zerstörungsfreie Werkstoffprüfung Oliver PUNK *, Steffen DÖHLER *, Uwe HEUERT *, Peter HOLSTEIN **, Hans-Joachim MÜNCH

Mehr

Erfolg ist programmierbar.

Erfolg ist programmierbar. 4578954569774981234656895856512457895456977498 3465689585651245789545697749812346568958561245 9545697749812346568958565124578954569774981234 6895856512457895456977498123465689585612457895 6977498123465689585651245789545697749812346568

Mehr

EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme

EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme EasyLab: Modell-basierte Software-Entwicklung für mechatronische Systeme Prof. Dr.-Ing. habil. Alois Knoll (k@tum.de) Lehrstuhl für Echtzeitsysteme und Robotik Institut für Informatik Technische Universität

Mehr

Aufgabe 1: Beschreibung des Forschungsgebietes der Wirtschaftsinformatik

Aufgabe 1: Beschreibung des Forschungsgebietes der Wirtschaftsinformatik Übungsblatt 01 / 2011 Datum: 5. Mai 2011 Aufgabe 1: Beschreibung des Forschungsgebietes der Wirtschaftsinformatik Beschreiben Sie das Lehr- und Forschungsgebiet der Wirtschaftsinformatik und zeigen Sie

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Finden Sie mit der AllatNet Recruiting Division Ihren Traum Job.

Finden Sie mit der AllatNet Recruiting Division Ihren Traum Job. Automotive, Nachrichtentechnik und weiteren Industriezweigen, erweitern wir Ihre Karrieremöglichkeiten Hardwareentwickler analoge Schaltungen (m/w) Referenz HW 2014 AS: Einsatzort: München, Stuttgart,

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

1. Einleitung. 2. Aufgabenstellung. R. Bartholomä, Prof. F. Kesel, Prof. T. Greiner Fachhochschule Pforzheim, Tiefenbronnerstraße 65, 75175 Pforzheim

1. Einleitung. 2. Aufgabenstellung. R. Bartholomä, Prof. F. Kesel, Prof. T. Greiner Fachhochschule Pforzheim, Tiefenbronnerstraße 65, 75175 Pforzheim Methoden, Werkzeuge und Architekturen zum Entwurf und zur Realisierung von Signal- und Bildverarbeitungsalgorithmen für die Umsetzung in R. Bartholomä, Prof. F. Kesel, Prof. T. Greiner Fachhochschule Pforzheim,

Mehr

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm

Der Design- und Verifizierungsprozess von elektronischen Schaltungen. Y Diagramm Der Design- und Verifizierungsprozess von elektronischen Schaltungen Y Diagramm Verhaltens Beschreibung Struktur Beschreibung z.b. Vout =Vin/2 Analog: Teiler Digital: Schieberegister Widerstand oder Mosfet

Mehr

Aufbau eines Echtzeit-Betriebssystems für Embedded Systems

Aufbau eines Echtzeit-Betriebssystems für Embedded Systems Aufbau eines Echtzeit-Betriebssystems für Embedded Systems I. Begriffsdefinition II. Anforderungen III. Struktur und Komponenten Dr.-Ing. Ludwig Eckert, Seite 1 I. Begriffsdefinition: Embedded System Bsp.:

Mehr

Übersicht aktueller heterogener FPGA-SOCs

Übersicht aktueller heterogener FPGA-SOCs Fakultät Informatik, Institut für Technische Informatik, Professur VLSI-Entwurfssysteme, Diagnostik und Architektur Übersicht aktueller heterogener FPGA-SOCs Vortrag zum Lehrstuhlseminar Tilo Zschau tilo.zschau@mailbox.tu-dresden.de

Mehr

Willkommen. Programmierung (MGP) von FPGAs. zur Präsentation

Willkommen. Programmierung (MGP) von FPGAs. zur Präsentation Willkommen zur Präsentation Modulare Grafische Programmierung (MGP) von FPGAs Dr.-Ing. J. Pospiech AVT GmbH Ilmenau Am Hammergrund 1 98693 Ilmenau Tel: +49 (0)3677 / 64 79 0 Fax: +49 (0)3677 / 64 79 69

Mehr

Inhalt. 1. Mikrocontroller 2. FPGA 3. Vergleich 4. Hybride Systeme 5. Zusammenfassung 6. Quellenverzeichnis 12.01.2016

Inhalt. 1. Mikrocontroller 2. FPGA 3. Vergleich 4. Hybride Systeme 5. Zusammenfassung 6. Quellenverzeichnis 12.01.2016 Vergleich FPGA und Mikrocontroller Laura Hilleke Technische Informatik 07.01.2016 07.01.2016 Vergleich FPGA und Mikrocontroller 2 1 Aufbau Funktionsweise Programmierung 07.01.2016 Vergleich FPGA und Mikrocontroller

Mehr

Zahlensysteme: Oktal- und Hexadezimalsystem

Zahlensysteme: Oktal- und Hexadezimalsystem 20 Brückenkurs Die gebräuchlichste Bitfolge umfasst 8 Bits, sie deckt also 2 8 =256 Möglichkeiten ab, und wird ein Byte genannt. Zwei Bytes, also 16 Bits, bilden ein Wort, und 4 Bytes, also 32 Bits, formen

Mehr

Semestralklausur Einführung in Computer Microsystems

Semestralklausur Einführung in Computer Microsystems Semestralklausur Einführung in Computer Microsystems 07. Juli 2008 Dr.-Ing. Wolfgang Heenes Name (Nachname, Vorname) Matrikelnummer Unterschrift Prüfung Bitte ankreuzen Anzahl abgegebene Zusatzblätter:

Mehr

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung. Kapitel B Vorgehensmodelle Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung Kapitel B Vorgehensmodelle Inhaltsverzeichnis 1 B Vorgehensmodell... 3 1.1 Welche Vorgehensmodelle sind

Mehr

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung

Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Modellierung verteilter Systeme Grundlagen der Programm und Systementwicklung Wintersemester 2009/10 Prof. Dr. Dr. h.c. Manfred Broy Unter Mitarbeit von Dr. K. Spies, Dr. M. Spichkova, L. Heinemann, P.

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Untersuchung zur hardwareunterstützten Entwurfsverifikation von Stream-basierten Kommunikations- und Verarbeitungsalgorithmen

Untersuchung zur hardwareunterstützten Entwurfsverifikation von Stream-basierten Kommunikations- und Verarbeitungsalgorithmen Fakultät Informatik Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Untersuchung zur hardwareunterstützten Entwurfsverifikation von Stream-basierten Kommunikations-

Mehr

13 Programmierbare Speicher- und Logikbausteine

13 Programmierbare Speicher- und Logikbausteine 13 Programmierbare Speicher- und Logikbausteine Speicherung einer Tabelle (Programm) Read Only Memory (ROM) Festwertspeicher Nichtflüchtig Nichtlöschbar: ROM PROM bzw. OTP-ROM Anwender programmierbares

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (Allgemeine Informatik) Überblick Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6

Mehr

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 2 Der Mikrocontroller Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 1 beschrieben. Auf dem Chip sind die, ein ROM- für das Programm, ein RAM- für die variablen

Mehr

3 Programmiermodelle für parallele und verteilte Systeme

3 Programmiermodelle für parallele und verteilte Systeme 3 Programmiermodelle für parallele und verteilte Systeme Das vorherrschende Programmiermodell für parallele und verteilte Systeme ist das Client Server Modell. Das Client Server Modell ist unabhängig von

Mehr

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges

Agenda. Clients aus drei verschiedenen Perspektiven: Was ist ein Dialog? Komponentenarchitektur innerhalb eines Dialoges Komponentenbasierte Client-Architektur Hamburg, 16.11.2007 Bernd Olleck IT-Beratung Olleck Agenda Clients aus drei verschiedenen Perspektiven: Technische Infrastruktur Fachliche Sicht Aufgaben eines Clients

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität

Parallelrechner (1) Anwendungen: Simulation von komplexen physikalischen oder biochemischen Vorgängen Entwurfsunterstützung virtuelle Realität Parallelrechner (1) Motivation: Bedarf für immer leistungsfähigere Rechner Leistungssteigerung eines einzelnen Rechners hat physikalische Grenzen: Geschwindigkeit von Materie Wärmeableitung Transistorgröße

Mehr

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Vorbereitung zur Prüfung Echtzeitbetriebssysteme Vorbereitung zur Prüfung Echtzeitbetriebssysteme Zugelassene Hilfsmittel: Taschenrechner Bitte verwenden Sie keinen roten Farbstift! 1. Echtzeitbetriebssysteme - Allgemein (15 Punkte) 1.1. Warum setzen

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

PIWIN II. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II. Vorlesung 2 SWS SS 08

PIWIN II. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II. Vorlesung 2 SWS SS 08 PIWIN II Kap. 3: Verteilte Systeme & Rechnernetze 1 PIWIN II Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler II Vorlesung 2 SWS SS 08 Fakultät für Informatik Technische

Mehr

Platzierung und Verdrahtung massiv-paralleler FPGA-Designs am Beispiel eines Many-Core- Prozessors

Platzierung und Verdrahtung massiv-paralleler FPGA-Designs am Beispiel eines Many-Core- Prozessors Vortrag zum Beleg Platzierung und Verdrahtung massiv-paralleler FPGA-Designs am Beispiel eines Many-Core- Prozessors Michael Lange Dresden, Gliederung 1 Aufgabenstellung 2 Voraussetzungen 3 Aufbau eines

Mehr

Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht

Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht Platz für ein Bild (optional) Erfolgreicher Einsatz von modellbasierter Softwareentwicklung - Praxisbericht 1.0 1.1 Elektronik? Was heisst modellbasierte Software-Entwicklung für uns? Was sind für eine

Mehr

Martin V. Künzli Marcel Meli. Vom Gatter zu VHDL. Eine Einführung in die Digitaltechnik. : iasms!wil5i-8sb*l!f. 3. Auflage. zh aw

Martin V. Künzli Marcel Meli. Vom Gatter zu VHDL. Eine Einführung in die Digitaltechnik. : iasms!wil5i-8sb*l!f. 3. Auflage. zh aw Martin V. Künzli Marcel Meli Vom Gatter zu VHDL Eine Einführung in die Digitaltechnik : iasms!wil5i-8sb*l!f 3. Auflage zh aw Inhaltsverzeichnis 1. Begriffe und Definitionen 1 1.1 Logische Zustände 1 1.2

Mehr

Information zu den Studienleistungen Projektplanung (SPO 1: 111232, SPO 2: 112232 ) und Bachelor Thesis (SPO 1: 111241, SPO 2: 112251)

Information zu den Studienleistungen Projektplanung (SPO 1: 111232, SPO 2: 112232 ) und Bachelor Thesis (SPO 1: 111241, SPO 2: 112251) Fakultät Technik 1 Studiengang Maschinenbau Prodekan Prof Dr-Ing W Elmendorf Information zu den Studienleistungen Projektplanung (SPO 1: 111232, SPO 2: 112232 ) und Bachelor Thesis (SPO 1: 111241, SPO

Mehr

Amtliche Mitteilung. Inhalt

Amtliche Mitteilung. Inhalt 30. Jahrgang, Nr. 46 30. Juli 2009 Seite 1 von 7 Inhalt Studienordnung für den konsekutiven Master-Studiengang Automatisierungssysteme (Automation Systems) des Fachbereichs VII der Beuth Hochschule für

Mehr

Systeme 1. Kapitel 10. Virtualisierung

Systeme 1. Kapitel 10. Virtualisierung Systeme 1 Kapitel 10 Virtualisierung Virtualisierung Virtualisierung: Definition: Der Begriff Virtualisierung beschreibt eine Abstraktion von Computerhardware hin zu einer virtuellen Maschine. Tatsächlich

Mehr

Durchführung eines ELAN-Projektes zum Thema "Echtzeitdatenverarbeitung"

Durchführung eines ELAN-Projektes zum Thema Echtzeitdatenverarbeitung Durchführung eines ELAN-Projektes zum Thema "Echtzeitdatenverarbeitung" PEARL-Workshop 2004 Prof. Dr. Juliane Benra Prof. Dr. Peter Elzer Gliederung Motivation und Rahmenbedingungen Entscheidungen und

Mehr

Boundary Scan Days 2009

Boundary Scan Days 2009 Boundary Scan Days 2009 Einsatz von Virtual JTAG (Altera) für Flash - & EEPROM - Programmierung Dammert Tobias & Knüppel Lars Nokia Siemens Networks GmbH & Co. KG Standort Bruchsal Test Engineering 1 Nokia

Mehr

Informatik für Ingenieure

Informatik für Ingenieure 9. Ingenieurpädagogische Regionaltagung 2014 Informatik für Ingenieure Tools für den erfolgreichen Einstieg in die Programmierung Prof. Dr.-Ing. Martin Gräfe, Technische Hochschule Mittelhessen Informatik

Mehr

im Griff Nachrichten RTI CAN MultiMessage Blockset testet große CAN-Setups Seite 58

im Griff Nachrichten RTI CAN MultiMessage Blockset testet große CAN-Setups Seite 58 Seite 58 RTI CAN MultiMessage Blockset Nachrichten im Griff RTI CAN MultiMessage Blockset testet große CAN-Setups Seite 59 In der letzten Ausgabe des dspace Magazins wurden toolübergreifende Arbeitsabläufe

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Dialekte der Klimaforschung

Dialekte der Klimaforschung Dialekte der Klimaforschung Vom Fortran-Programm zum parallelen Programm Thomas Ludwig Inhalt Welche Dialekte werden transformiert? Welche Anforderungen stellen wir? Wozu diese Transformation? Wie ist

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise

Coma I. Einleitung. Computer und Algorithmen. Programmiersprachen. Algorithmen versus Programmiersprachen. Literaturhinweise Coma I Einleitung 1 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise 2 Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

Software Product Line Engineering

Software Product Line Engineering Software Product Line Engineering Grundlagen, Variabilität, Organisation Sebastian Steger steger@cs.tu-berlin.de WS 2005/2006 SWT: Entwicklung verteilter eingebetteter Systeme Software Product Line Engineering

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Vortrag zur Diplomarbeit

Vortrag zur Diplomarbeit Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Vortrag zur Diplomarbeit Entwurf und Implementierung eines zuverlässigen verbindungsorientierten Transportprotokolls für

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009 VHDL Verhaltensmodellierung 1/26 2008-10-20

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

Steuerungen. 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC)

Steuerungen. 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC) Steuerungen 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC) VPS - Funktion der Steuerung in der Schaltungstopologie

Mehr

Collaborative Virtual Environments

Collaborative Virtual Environments Collaborative Virtual Environments Stefan Lücking Projektgruppe Kreativität und Technik AG Domik WS 02/03 09.01.2003 1/35 Was sind CVE? Versuch einer Definition : Ein CVE ist ein Programm, das eine virtuelle

Mehr

Rechnergestützter VLSI-Entwurf

Rechnergestützter VLSI-Entwurf Schaltungsanalyse Dipl.-Ing. e-mail: rgerndt@iam.de Seite ANA/1 Analyse - Übersicht Überprüfen des Entwurfs auf: - Funktion - Zeitverhalten - Kosten - Leistungsaufnahme - EMV -... Vergleich der Spezifikation

Mehr

VDI-GVC Empfehlung zu Verfahrenstechnik / Chemie- / Bioingenieurwesen (2004/2007)

VDI-GVC Empfehlung zu Verfahrenstechnik / Chemie- / Bioingenieurwesen (2004/2007) Vortrag bei der Tagung der Arbeitsgruppe Ausbildung der SGVC 19.10.2007, Hochschule für Life Sciences FHNW, Muttenz Prof. Dr.-Ing. Gerd Braun Locations Key Figures Cologne University of Applied Sciences

Mehr

Studienordnung für das Studium des Faches Mathematik im Studiengang Lehramt an Gymnasien an der Johannes Gutenberg-Universität Mainz

Studienordnung für das Studium des Faches Mathematik im Studiengang Lehramt an Gymnasien an der Johannes Gutenberg-Universität Mainz Studienordnung für das Studium des Faches Mathematik im Studiengang Lehramt an Gymnasien an der Johannes Gutenberg-Universität Mainz Vom 24. April 1984 [erschienen im Staatsanzeiger Nr. 26, S. 552; geändert

Mehr