Hochschule Ulm
Bewerber

Studierende

Alumni

Unternehmen

Journalisten

Intern

V 1.6.1088.9223/


SoPC-basierte Embedded Systeme

SoPC - Was ist das?

Die Abkürzung SoPC steht für "System on a Programmable Chip" und bezeichnet ein, in der Regel Mikroprozessor-basiertes System, welches in einem wiederprogrammierbaren Logikbaustein (einem FPGA, Field Programmable Gate Array) realisiert ist. Das folgende Bild zeigt beispielhaft den Aufbau eines SoPC-basierten Embedded Systems, bei dem alle Systemkomponenten, in diesem Fall ein vollständiger Mikrocontroller, in einem FPGA integriert sind. Lediglich eine gegebenenfalls notwendige, Analogkomponenten umfassende Anpassschaltung muss außerhalb des FPGAs realisiert werden.




Der entscheidende Vorteil dieser Systemlösung ist, dass, bedingt durch die Wiederprogrammierbarkeit von FPGAs, das vollständige System, bestehend aus Hard- und Software, nachträglich geändert werden kann. Somit kann der Einsatzbereich des Systems, beispielsweise durch Integration eines leistungsfähigeren Prozessors, jederzeit angepasst oder geändert werden. Die Hardware kann aktualisiert oder geändert werden, ohne dass 'wirklich' neue Hardware produziert werden muss.

Entwicklungsmethode

Wie wird nun ein SoPC-basiertes Embedded System entwickelt?

Die grundlegenden SoPC-Komponenten, wie beispielsweise die CPU oder Standard-Ein-/Ausgabeschnittstellen, sind häufig in Form sogenannter IP-Cores verfügbar. Unter einem IP-Core versteht man ein in einer Hardwarebeschreibungssprache (z. B. VHDL) erstelltes, synthetisierbares Modell einer Systemkomponente. Mittlerweile gibt es eine Vielzahl von kommerziellen Anbietern für IP-Cores. Daneben hat sich, ähnlich dem aus dem Software-Bereich bekannten Open-Source Markt, ein Markt für weitgehend frei verfügbare IP-Cores entwickelt (siehe: OpenCores ).

Die Integration der eingesetzten IP-Cores und der Zusammenbau zu einem Gesamtsystem wird in der Regel auf einem relativ hohen Abstraktionsniveau durch Tools mit einer grafischen Benutzeroberfläche unterstützt. Das so spezifizierte SoPC muss dann noch in ein FPGA-spezifisches Format übersetzt und in das FPGA 'programmiert' werden.

Die Entwicklung der auf dem System ablaufenden Software erfolgt nach den in diesem Bereich bekannten Methoden.

Einsatzgebiete

Möglich und interessant wurde der Einsatz von SoPC-basierten Embedded Systems erst durch die Verfügbarkeit von ausreichend hoch integrierten FPGAs. Aktuell verfügbare FPGA-Bausteine erlauben die Integration komplexer Mehrprozessorsysteme mit mehreren 32-Bit CPUs. Diesbezügliche Anwendungsgrenzen sind praktisch nicht vorhanden. Einziger Wermutstropfen ist der im Vergleich zu einem Mikrocontroller-basierten Embedded System derzeit noch etwas höhere Preis. Dem gegenüber steht jedoch der einzigartige Vorteil, das Gesamtsystem (Hard- und Software!) jederzeit aktualisieren und anpassen zu können.

Unser Know-How

Im Fachgebiet Computertechnik und -entwicklung beschäftigen wir uns seit vielen Jahren mit der Entwicklung und dem Aufbau SoPC-basierter Embedded Systems. Solche Systeme werden sowohl in der Lehre als auch in der angewandten Forschung und Entwicklung eingesetzt. Die im folgenden aufgelisteten Arbeiten und Projekte stehen repräsentativ für den vorhandenen Erfahrungsschatz.



MSoPC-Baugruppe
Die MSoPC-Baugruppe wurde im Rahmen einer Diplomarbeit ( Diplomarbeit MSoPC) entwickelt. Auf der Baugruppe befinden sich mehrere FPGAs der Firma Altera sowie eine Vielzahl von Ein-/Ausgabe-Komponenten, wie beispielsweise ein LCD mit Touchpanel, und Erweiterungsschnittstellen. Die Baugruppe wurde für einen möglichst universellen Einsatz konzipiert und wird dementsprechend in den meisten unserer Entwicklungsprojekte eingesetzt.


uCLinux basierte Entwicklungsumgebung
Im Rahmen einer Diplomarbeit ( Diplomarbeit uCLinux) entstand eine Embedded Linux (uCLinux) basierte Entwicklungsumgebung für die MSoPC-Baugruppe. Die auf der Baugruppe vorhandenen Ein-/Ausgabe-Einheiten, allen voran das LCD-Display, werden durch entsprechende Linux-Treiber unterstützt. Durch einen ebenfalls im Rahmen dieser Arbeit entwickelten Ethernet-Adapter und eine angepasste Bootloader-Software kann das System auch über ein Netzwerk gebootet werden bzw. das entwickelte Anwenderprogramm kann über Ethernet schnell auf das Zielsystem geladen werden.


RPC-basierte Anbindung eines LCD/Touchpanels
Mit Hilfe der MSoPC-Baugruppe wurde im Rahmen einer Bachelorarbeiten ( Bachelorarbeit RPC) ein heterogenes Mehrprozessorsystem entwickelt, bei welchem ein Prozessor als sogenannter I/O-Coprozessor für die Bedienung der Ein-/Ausgabeschnittstellen eines Systems, allen voran ein LCD-Grafikbildschirm mit Touchpanel, abgestellt ist. Die Dienste dieses I/O-Coprozessors können mittels sogenannter Remote Procedure Calls (RPC) von anderen Prozessoren in Anspruch genommen werden.


Pipeline-Datenverarbeitung in einem Multiprozessor-SoPC
Die Pipeline-Bearbeitung ist ein im Bereich der Embedded Systeme häufig angewandtes Bearbeitungsmodell. Dabei können in einem Mehrprozessorsystem jedem Prozessor eine oder mehrere Bearbeitungsstufen der Pipeline zugewiesen werden. Die auf den jeweiligen Prozessoren ablaufenden Bearbeitungsvorgänge werden zeitlich parallel ausgeführt. In mehreren Bachelorarbeiten wurde ein Framework zur Erstellung von Anwendungen nach dem Pipeline-Bearbeitungsmodell entwickelt. Ziel ist es gewesen, eine Entwicklungsumgebung zu schaffen, bei der sich der Entwickler ausschließlich auf die Entwicklung der jeweiligen, in einer Pipeline-Stufe ausgeführten Datenbearbeitungsprozesse konzentrieren muss. Alle Aufgaben der Pipeline-Konfiguration und der Kommunikation zwischen den Pipeline-Stufen werden von dem Framework übernommen. Weitere Informationen auf Anfrage (strahnen@hs-ulm.de).


Hochschule Ulm
Prof. Dr. M.  Strahnen
Prittwitzstraße 10
89075 Ulm
Fon: +49 (0731) 50-28163
strahnenhs-ulm.de





Zurück zum Seitenanfang





Manfred Strahnen
© 2007