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]

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

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

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

Ü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

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

Moderne parallele Rechnerarchitekturen

Moderne parallele Rechnerarchitekturen Seminar im WS0708 Moderne parallele Rechnerarchitekturen Prof. Sergei Gorlatch Dipl.-Inf. Maraike Schellmann schellmann@uni-muenster.de Einsteinstr. 62, Raum 710, Tel. 83-32744 Dipl.-Inf. Philipp Kegel

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

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

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

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

Inhaltsverzeichnis: Seite 1 von 6

Inhaltsverzeichnis: Seite 1 von 6 Vierte Änderung der Studienordnung für den Studiengang Angewandte Medieninformatik (bisher Media Processing and Interactive Services) (Master of Science) an der Fakultät Informatik der Fachhochschule Schmalkalden

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

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

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

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

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

Embedded PCs / Embedded Systems. Stromversorgung / Power-Management. Embedded PC

Embedded PCs / Embedded Systems. Stromversorgung / Power-Management. Embedded PC Embedded PCs / Embedded Systems Stromversorgung / Power-Management Sensoren elektrisch optisch thermisch mechanisch magnetisch chemisch biologisch Aktoren Analog-/Digitalhardware Powerfail Speicher Watchdog

Mehr

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010

Multicore Herausforderungen an das Software-Engineering. Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Multicore Herausforderungen an das Software-Engineering Prof. Dr.-Ing. Michael Uelschen Hochschule Osnabrück 15.09.2010 Inhalt _ Motivation _ Herausforderung 1: Hardware _ Herausforderung 2: Software-Partitionierung

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

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

Reaktive Systeme und synchrones Paradigma

Reaktive Systeme und synchrones Paradigma Sascha Kretzschmann Freie Universität Berlin Reaktive Systeme und synchrones Paradigma Einführung in das Seminar über synchrone Programmiersprachen Worum geht es? INHALT 2 Inhalt 1. Einleitung - Wo befinden

Mehr

Anwendungshinweis. CAN Gateway-Modul 750-658. Verwendung der Bibliothek WagoLib_CAN_Gateway_02.lib. A500680 Deutsch Version 1.1.0

Anwendungshinweis. CAN Gateway-Modul 750-658. Verwendung der Bibliothek WagoLib_CAN_Gateway_02.lib. A500680 Deutsch Version 1.1.0 CAN Gateway-Modul 750-658 Verwendung der Bibliothek WagoLib_CAN_Gateway_02.lib Deutsch Version 1.1.0 Impressum Copyright 2013 by WAGO Kontakttechnik GmbH & Co. KG Alle Rechte vorbehalten. WAGO Kontakttechnik

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

Embedded OS für ARM Cortex Microcontroller

Embedded OS für ARM Cortex Microcontroller Embedded OS für ARM Cortex Microcontroller RTOS Design, Timinganalyse und Test mit Core Simulation und Hardware Debugger Entscheidende Fragen für oder gegen RTOS Lohnt sich der Einsatz eines RTOS auch

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

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

PARC. Eine virtuelle Echtzeit Entwicklungsumgebung für den Ausbildungsbereich

PARC. Eine virtuelle Echtzeit Entwicklungsumgebung für den Ausbildungsbereich PARC Eine virtuelle Echtzeit Entwicklungsumgebung für den Ausbildungsbereich Andre Köthur und Dr. Norbert Drescher Fachhochschule Südwestfalen 5095 Hagen Haldener Str. 12 Einleitung und Zielsetzung Die

Mehr

Bildverarbeitung in der Medizintechnik

Bildverarbeitung in der Medizintechnik Bildverarbeitung in der Medizintechnik Aufgrund einer Zusammenarbeit mit Würth Elektronik im Gebiet der Medizintechnik ist eine Arbeit aus dem Gebiet der Bildverarbeitung in der Medizintechnik ausgeschrieben.

Mehr

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen

Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Kapitel 4: Repräsentation von Daten Binärcodierung von rationalen Zahlen und Zeichen Einführung in die Informatik Wintersemester 2007/08 Prof. Bernhard Jung Übersicht Codierung von rationalen Zahlen Konvertierung

Mehr

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Friedrich-Alexander-Universität Erlangen-Nürnberg Ausgewählte Kapitel eingebetteter Systeme Echtzeitfähige Ereignisgetriebene Scheduling-Strategien Sven Kerschbaum 1. Einführung Bei einem eingebetteten

Mehr

20 Eingebettete Software

20 Eingebettete Software 20 Eingebettete Software 20.0 Einführung Lernziele Echtzeitsysteme Eingebettete Systeme 20.1 Entwurf eingebetteter Systeme Modellierung von Echtzeitsystemen Programmierung von Echtzeitsystemen 20.2 Architekturmuster

Mehr

Einführung in die OPC-Technik

Einführung in die OPC-Technik Einführung in die OPC-Technik Was ist OPC? OPC, als Standartschnittstelle der Zukunft, steht für OLE for Process Control,und basiert auf dem Komponentenmodel der Firma Microsoft,dem Hersteller des Betriebssystems

Mehr

Technische Grundlagen der Informatik Kapitel 5. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt

Technische Grundlagen der Informatik Kapitel 5. Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt Technische Grundlagen der Informatik Kapitel 5 Prof. Dr. Sorin A. Huss Fachbereich Informatik TU Darmstadt Kapitel 5: Themen Speicherarchitekturen RAM-, ROM-Speicher Flash-Speicher Logikimplementierung

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

Soft-SPS - Was ist eine SPS?

Soft-SPS - Was ist eine SPS? Soft-SPS - Was ist eine SPS? SPS = Speicherprogrammierbare Steuerung PLC = Programmable Logic Control Ursprünglich elektronischer Ersatz von Relaissteuerungen (Schützsteuerung) 1 Soft-SPS - Relais-Steuerung

Mehr

Limit betrieben wird. Als Systemsoftware wird wenn überhaupt ein schlankes, vielfach selbst entwickeltes Realzeitbetriebssystem

Limit betrieben wird. Als Systemsoftware wird wenn überhaupt ein schlankes, vielfach selbst entwickeltes Realzeitbetriebssystem 1 1 Einleitung Systeme, die neben den ohnehin vorhandenen funktionalen Anforderungen zusätzlich noch zeitlichen Anforderungen typischerweise im Sekundenbereich und darunter genügen müssen, werden als Realzeitsysteme

Mehr

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP).

Sowohl RTX64 als auch RTX bieten harten Echtzeitdeterminismus und symmetrische Multiprocessing- Fähigkeiten (SMP). Produktbeschreibung Februar 2014 RTX RTOS-Plattform Mit der RTX-Echtzeitsoftware von IntervalZero wird aus Microsoft Windows ein Echtzeitbetriebssystem (RTOS). RTX64 von IntervalZero unterstützt 64-Bit-Betriebssysteme

Mehr

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen

Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen Echtzeitbetriebssysteme (am Beispiel QNX) Dr. Stefan Enderle HS Esslingen 1. Einführung 1.1 Embedded Systeme Embedded Systeme besitzen / benutzen einen Mikrocontroller Embedded Systeme erfüllen meist eine

Mehr

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor. Rechnerstrukturen 6. System Systemebene 1 (Monoprozessor) 2-n n (Multiprozessor) s L1- in der L2- ( oder Motherboard) ggf. L3- MMU Speicher Memory Controller (Refresh etc.) E/A-Geräte (c) Peter Sturm,

Mehr

Bildung und Forschung an der Schnittstelle von Medizin, Technik und Informatik

Bildung und Forschung an der Schnittstelle von Medizin, Technik und Informatik Berner Fachhochschule Technik und Informatik Bildung und Forschung an der Schnittstelle von Medizin, Technik und Informatik ti.bfh.ch/med ti.bfh.ch/med das Portal zu den Studiengängen und Forschungsprojekten

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Microsoft Dynamics NAV Technische Details

Microsoft Dynamics NAV Technische Details Microsoft Dynamics NAV Technische Details INHALT Microsoft Dynamics NAV Technische Details........................................ [3] Infrastruktur.............................................. [3] Systemanforderungen.....................................

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 1 17. Oktober 2002 www4.in.tum.de/~rumpe/se

Mehr

Was ist ein Computerprogramm?

Was ist ein Computerprogramm? Was ist ein Computerprogramm? Michael Sonntag Institut für Informationsverarbeitung und Mikroprozessortechnik (FIM) Johannes Kepler Universität Linz, Österreich sonntag@fim.uni-linz.ac.at 1 Problemaufriss

Mehr

2 Echtzeitbetriebssysteme

2 Echtzeitbetriebssysteme 35 2 Echtzeitbetriebssysteme In den letzten Jahren hat sich die Automobilindustrie zu einem der wesentlichen Anwender von Echtzeitbetriebssystemen für eingebettete Systeme entwickelt. Relativ zeitig erkannten

Mehr

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser

Programmierung, Algorithmen und Techniken. von Thomas Ohlhauser Programmierung, Algorithmen und Techniken von Thomas Ohlhauser 1. Begriff Programmierung Entwicklung von Programmen inklusive der dabei verwendeten Methoden und Denkweisen. Ein Programm ist eine eine Zusammensetzung

Mehr

Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung

Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung Vom Chip zum Gehirn Elektronische Systeme zur Informationsverarbeitung Johannes Schemmel Forschungsgruppe Electronic Vision(s) Lehrstuhl Prof. K. Meier Ruprecht-Karls-Universität Heidelberg Mitarbeiter:

Mehr

Session 3: Projektvorstellung Transferprojekt itsowl-tt-hapromesy 18. August 2015, Gütersloh. www.its-owl.de

Session 3: Projektvorstellung Transferprojekt itsowl-tt-hapromesy 18. August 2015, Gütersloh. www.its-owl.de Session 3: Projektvorstellung Transferprojekt itsowl-tt-hapromesy 18. August 2015, Gütersloh www.its-owl.de Agenda Abschlusspräsentation itsowl-tt-hapromesy Einführung Zielsetzung Ergebnisse Resümee und

Mehr

Sequentielle Logik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Sequentielle Logik. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Sequentielle Logik Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Schaltwerke Flip-Flops Entwurf eines Schaltwerks Zähler Realisierung Sequentielle

Mehr

Verteilte Echtzeit-Systeme

Verteilte Echtzeit-Systeme Seminar im SS06 Verteilte Echtzeit-Systeme Prof. Sergei Gorlatch Dipl.-Inf. Jens Müller jmueller@uni-muenster.de Einsteinstr. 62, Raum 705, Tel. 83-32746 Westfälische Wilhelms-Universität Münster Fachbereich

Mehr

Studienangebot EI Bachelor und Master

Studienangebot EI Bachelor und Master Studienangebot EI Bachelor und Master im Fachbereich Elektrotechnik und Informationstechnik an der FH München Übersicht: Ziele Struktur des Studienangebots Fazit: Erste Erfahrungen Prof. Dr.-Ing. Rainer

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

Systeme 1. Kapitel 5. Scheduling

Systeme 1. Kapitel 5. Scheduling Systeme 1 Kapitel 5 Scheduling Scheduling Verteilung und Zuweisung von begrenzten Ressourcen an konkurrierende Prozesse Beispiel: -> Zeitablaufsteuerung Zwei Prozesse zur gleichen Zeit rechenbereit auf

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

Technische Informatik

Technische Informatik Technische Informatik Vertiefungsstudium der Elektrotechnik und Informatik - Berufsfelder Prof. Dr. Carsten Koch FB Technik Abteilung Elektrotechnik und Informatik 18. Dezember 2014 Begrisdenition Tätigkeitsfelder

Mehr

GinLink Interface 1GHz RISC CPU M-RAM High-Speed Feldbus Controller RISC-CPU, 800MHz... 1GHz Bis zu 256 MByte SDRAM

GinLink Interface 1GHz RISC CPU M-RAM High-Speed Feldbus Controller RISC-CPU, 800MHz... 1GHz Bis zu 256 MByte SDRAM GinLink-News Feldbus-Controller GinLink Interface 1GHz RISC CPU M-RAM High-Speed Feldbus Controller RISC-CPU, 800MHz... 1GHz Bis zu 256 MByte SDRAM Technische Daten GIN-SAM3 610736800 Schnittstellen 2

Mehr

Modellbasierte Entwicklung im Kontext von Medizingeräten

Modellbasierte Entwicklung im Kontext von Medizingeräten up FPGA Modellbasierte Entwicklung im Kontext von Medizingeräten Gemeinsamer Ausgangspunkt für Software- und Hardwareentwicklung Osnabrück, 06.02.2014, Wanja Schöpfer Agenda 1 Einleitung 2 Modellbasierte

Mehr

Workshop SQL Server-Installation Installation des Microsoft SQL Server 2005 EXPRESS

Workshop SQL Server-Installation Installation des Microsoft SQL Server 2005 EXPRESS Herzlich willkommen zu den Workshops von Sage. In diesen kompakten Anleitungen möchten wir Ihnen Tipps, Tricks und zusätzliches Know-how zu Ihrer Software von Sage mit dem Ziel vermitteln, Ihre Software

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

Brückenkurs Programmieren - Sommersemerster 2013

Brückenkurs Programmieren - Sommersemerster 2013 Brückenkurs Programmieren - Sommersemerster 2013 Tag 1 Ivo Senner Technische Hochschule Mittelhessen 30. September 2013 Ivo Senner (THM) Brückenkurs Programmieren 30. September 2013 1 / 41 Inhalt 1 Dieser

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

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

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

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

L1 Programmiersprachen

L1 Programmiersprachen 1 Einführung Delphi 1.1 Wie erstelle ich eigene Software? Um spezielle Problemlösungen zu erstellen bzw. Unterstützung durch den Computer zu erfahren, bedient sich der Anwender spezifischer Softwareprogramme,

Mehr

DC-FW400 SE. 3+1 Port IEEE 1394 FireWire TM PCI-Controller

DC-FW400 SE. 3+1 Port IEEE 1394 FireWire TM PCI-Controller DC-FW400 SE 3+1 Port IEEE 1394 FireWire TM PCI-Controller Wichtige Information zur Datensicherheit Vor der Installation und bei Änderungen der Konfiguration des DC-FW400 SE sollte unbedingt eine Datensicherung

Mehr

examen.press Echtzeitsysteme Grundlagen, Funktionsweisen, Anwendungen Bearbeitet von Heinz Wörn

examen.press Echtzeitsysteme Grundlagen, Funktionsweisen, Anwendungen Bearbeitet von Heinz Wörn examen.press Echtzeitsysteme Grundlagen, Funktionsweisen, Anwendungen Bearbeitet von Heinz Wörn 1. Auflage 2005. Taschenbuch. xiv, 556 S. Paperback ISBN 978 3 540 20588 3 Format (B x L): 15,5 x 23,5 cm

Mehr

VHDL Verhaltensmodellierung

VHDL Verhaltensmodellierung VHDL Verhaltensmodellierung Dr.-Ing. Volkmar Sieh Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2013 VHDL Verhaltensmodellierung 1/18 2013-01-11 Inhalt

Mehr

Anbieter. Hochschule. Zittau/Görlitz. (FH) - University. of Applied. Sciences. Angebot-Nr. Angebot-Nr. 00095232. Bereich. Studienangebot Hochschule

Anbieter. Hochschule. Zittau/Görlitz. (FH) - University. of Applied. Sciences. Angebot-Nr. Angebot-Nr. 00095232. Bereich. Studienangebot Hochschule Mechatronik (Master) in Zittau Angebot-Nr. 00095232 Bereich Angebot-Nr. 00095232 Anbieter Studienangebot Hochschule Termin Permanentes Angebot Hochschule Zittau/Görlitz 3 Semester Tageszeit Ganztags Ort

Mehr

Fragenkatalog Echtzeitsysteme/Realzeitsysteme. Jürgen Quade

Fragenkatalog Echtzeitsysteme/Realzeitsysteme. Jürgen Quade Fragenkatalog Echtzeitsysteme/Realzeitsysteme Jürgen Quade Fragenkatalog Echtzeitsysteme/Realzeitsysteme von Jürgen Quade V1.4, 31. Januar 2008 Versionsgeschichte Version $Revision: 1.1 $ $Date: 2005/01/25

Mehr

User Level Device Driver am Beispiel von TCP

User Level Device Driver am Beispiel von TCP September 17, 2004 Einleitung Motivation für Userlevel Device Driver Probleme von Userlevel Device Driver Motivation für Userlevel Device Driver Modularität, leichterer Austausch/Erneuerung von Komponenten.

Mehr

SYN FPGA VHDL IP Cores Umsetzung Software Fazit Links FIN. FPGA Development. Sven Gregori, CN8

SYN FPGA VHDL IP Cores Umsetzung Software Fazit Links FIN. FPGA Development. Sven Gregori, CN8 <gregori@hs-furtwangen.de> 1/50 Sven Gregori, CN8 UnFUG SS 2008 Hochschule Furtwangen 29. Mai 2008 2/50 Überblick 1 FPGA 2 VHDL 3 IP Cores 4 praktische Umsetzung 5 Entwicklungs-Software 6 Fazit 7 Links

Mehr

Realisierung von CI- Regelalgorithmen auf verschiedenen Hardwareplattformen

Realisierung von CI- Regelalgorithmen auf verschiedenen Hardwareplattformen Realisierung von CI- Regelalgorithmen auf verschiedenen Hardwareplattformen Prof.Dr.-Ing. K.-D. Morgeneier FH Jena, FB Elektrotechnik und Informationstechnik www.fh-jena.de Gliederung 2. Einführung 3.

Mehr

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 7 Scheduling Maren Bennewitz Version 23.01.2013 1 Inhalt Vorlesung Aufbau einfacher Rechner Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen

Mehr

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil 18.04.2002 Die L4-Mikrokern Mikrokern-Familie Hauptseminar Ansätze für Betriebssysteme der Zukunft 18.04.2002 Folie 1 Aufbau des Vortrags 1. Mikrokerne: Idee und Geschichte 2. L4: ein schneller Mikrokern 3. L4Linux:

Mehr

Einführung in VHDL (2)

Einführung in VHDL (2) Einführung in VHDL Digitale Systeme haben immer größere Bedeutung erlangt. Komplexität wurde dabei immer größer, sodass die Entwicklung digitaler Systeme zu weiten Teilen nur noch mit Computerunterstützung

Mehr

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign"

Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign Inhaltsverzeichnis Vorlesung VHDL, HW/SW-Codesign" 1 Einführung... 1-1 2 VHDL Grundlagen... 2-1 2.1 Allgemeines... 2-1 2.2 Aufbau eines VHDL-Modells...2-7 VHDL Design-Einheiten Überblick...2-10 Programmerstellung...

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

syntax.tex Eine Übersicht

syntax.tex Eine Übersicht syntax.tex Eine Übersicht Bernd Worsch 7. Juli 1997 Inhaltsverzeichnis 1 Einleitung 1 2 Bevor es funktioniert... 1 3 Grundelemente von syntax.tex 1 4 Strukturelemente von syntax.tex 3 5 Setzen von Syntaxdiagrammen

Mehr

Fachstudien- und Prüfungsordnung für den Studiengang Mobile und Eingebettete Systeme mit dem Abschluss Bachelor of Science an der Universität Passau

Fachstudien- und Prüfungsordnung für den Studiengang Mobile und Eingebettete Systeme mit dem Abschluss Bachelor of Science an der Universität Passau Bitte beachten: Rechtlich verbindlich ist ausschließlich der amtliche, im offiziellen Amtsblatt veröffentlichte Text. Fachstudien- und Prüfungsordnung für den Studiengang Mobile und Eingebettete Systeme

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Prof. Dr. Bernhard Schiefer bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer Wesentliche Inhalte Einführung Rechnergrundlagen Grundlagen der Programmierung Kern imperativer

Mehr

Mikrocontroller Grundlagen. Markus Koch April 2011

Mikrocontroller Grundlagen. Markus Koch April 2011 Mikrocontroller Grundlagen Markus Koch April 2011 Übersicht Was ist ein Mikrocontroller Aufbau (CPU/RAM/ROM/Takt/Peripherie) Unterschied zum Mikroprozessor Unterschiede der Controllerarten Unterschiede

Mehr

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

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

Tinytag Funk- Datenlogger- Software

Tinytag Funk- Datenlogger- Software Tinytag Funk- Datenlogger- Software Seite: 1 Tinytag Funk- Datenlogger- Software Tinytag Explorer ist die Windows- basierte Software zum Betrieb eines Tinytag Funk- Systems. Die Anwender können ihre Daten

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

whitepaper CLOUD-ENTWICKLUNG: BESTE METHODEN UND SUPPORT-ANWENDUNGEN

whitepaper CLOUD-ENTWICKLUNG: BESTE METHODEN UND SUPPORT-ANWENDUNGEN whitepaper CLOUD-ENTWICKLUNG: BESTE METHODEN UND SUPPORT-ANWENDUNGEN CLOUD-ENTWICKLUNG: BESTE METHODEN 1 Cloud-basierte Lösungen sind auf dem IT-Markt immer weiter verbreitet und werden von immer mehr

Mehr

Automotive Software Engineering

Automotive Software Engineering Jorg Schauffele Thomas Zurawka Automotive Software Engineering Grundlagen, Prozesse, Methoden und Werkzeuge Mit 278 Abbildungen ATZ-MTZ-Fachbuch vieweg Inhaltsverzeichnis 1 Einfiihrung und Uberblick 1

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

Abbildung 1: Titelbild (Quelle: http://www.oobject.com/algorithmic-architecture/follymorph-continuum-group-finalpresentation/3267/)

Abbildung 1: Titelbild (Quelle: http://www.oobject.com/algorithmic-architecture/follymorph-continuum-group-finalpresentation/3267/) Abbildung 1: Titelbild (Quelle: http://www.oobject.com/algorithmic-architecture/follymorph-continuum-group-finalpresentation/3267/) Enterprise Continuum Wiederverwendung von Unternehmensarchitekturen Modul

Mehr

Buddy - Algorithmus Handbuch für Endnutzer Stand 02.08.2005

Buddy - Algorithmus Handbuch für Endnutzer Stand 02.08.2005 Buddy - Algorithmus Handbuch für Endnutzer Stand 02.08.2005 1. Vorwort 1 2. Systemvoraussetzungen 2 3. Programmarten 2 4. Sicherheit der Endnutzer 2 5. Handhabung 3 5.1 allgemeine Programmübersicht 3 5.2

Mehr

Military Air Systems

Military Air Systems Trennung von Applikationen unterschiedlicher Kritikalität in der Luftfahrt durch Software en am Beispiel des Real-time Operating Systems PikeOS Dr. Bert Feldmann DGLR Workshop Garching, 09.10.2007 Seite

Mehr

Verkürzung von Entwurfszeiten

Verkürzung von Entwurfszeiten Verkürzung von Entwurfszeiten durch Matlab-basiertes HPC R. Fink, S. Pawletta Übersicht aktuelle Situation im ingenieurtechnischen Bereich Multi-SCEs als Konzept zur Verkürzung von Entwurfszeiten Realisierung

Mehr

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die "Softwarekrise"

1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise im Überblick im Überblick Inhalt 1. Java ist... 2. Stammbaum der Programmiersprachen 3. Die Softwarekrise 1. Merkmale von Software 2. Fortlaufende Veränderungen 3. Erschwerte Rahmenbedingungen bei der

Mehr

Vom Abitur zur Informatik (computer science)

Vom Abitur zur Informatik (computer science) Vom Abitur zur Informatik (computer science) André Frimberger, andre@frimberger.de 16.06.2009 André Frimberger Vom Abitur zur Informatik (computer science) 1 1 Einleitung Was ist Informatik? 2 Das Informatikstudium:

Mehr

Select & Preprocessing Cluster. SPP Server #1. SPP Server #2. Cluster InterConnection. SPP Server #n

Select & Preprocessing Cluster. SPP Server #1. SPP Server #2. Cluster InterConnection. SPP Server #n C5000 High Performance Acquisition System Das C5000 System wurde für Messerfassungs- und Auswertungssystem mit sehr hohem Datenaufkommen konzipiert. Typische Applikationen für das C5000 sind große Prüfstände,

Mehr

Embedded Systems Struktur und Aufbau Andreas Stephanides

Embedded Systems Struktur und Aufbau Andreas Stephanides Embedded Systems Struktur und Aufbau Andreas Stephanides Historíe Studienplanerstellung 4.5. Senatsbeschluss 2014 Berufung Prof Jantsch 2012 erste Ideen Embedded Systems Brücke von Mikroelektronik zu informatischen

Mehr

Rechnerunterstützte Echtzeitsteuerung mit grafischer Bedienerschnittstelle für synchrone Antriebe mit dynamischer Drehzahländerung

Rechnerunterstützte Echtzeitsteuerung mit grafischer Bedienerschnittstelle für synchrone Antriebe mit dynamischer Drehzahländerung Rechnerunterstützte Echtzeitsteuerung mit grafischer Bedienerschnittstelle für synchrone Antriebe mit dynamischer Drehzahländerung Martin Heine, Dipl.-Ing.(FH) Light Art Vision Germany 19.02.2001 2001

Mehr

B.4. B.4 Betriebssysteme. 2002 Prof. Dr. Rainer Manthey Informatik II 1

B.4. B.4 Betriebssysteme. 2002 Prof. Dr. Rainer Manthey Informatik II 1 Betriebssysteme Betriebssysteme 2002 Prof. Dr. Rainer Manthey Informatik II 1 Bekannte Betriebssysteme Windows 2000 CMS UNIX MS-DOS OS/2 VM/SP BS 2000 MVS Windows NT Solaris Linux 2002 Prof. Dr. Rainer

Mehr