Erste Computer wie der britische Colossus - damals genutzt zur Dechiffrierung von geheimen Nachrichten des deutschen Militärs - waren nur durch die Veränderung der Verdrahtung im heutigen Sinne programmierbar. Darum gab es nur eine Gruppe von Entwicklern, die für das gesamte System verantwortlich zeichnete. In Unternehmen, die heute Computersysteme entwickeln, steht typischerweise eine Entwicklungsabteilung mit Hardware- und Softwaregruppe zur Verfügung. Diese Trennung zwischen Hard- und Software hat sich auch bei den Herstellern von Embedded-Systemen eingebürgert und führt bei Problemen gerne zu gegenseitigen Schuldzuweisungen. Auch Diskussionen darüber, welche Gruppe den wichtigeren Anteil am Erfolg hat, werden gerne geführt, obwohl es objektiv keine klare Abgrenzung zwischen den Bereichen gibt. So gehört häufig die Erstellung des Bootloaders oder des Boardsupport-Packages noch zur Hardwareentwicklung, dabei handelt es sich hierbei eindeutig um Software. Unter dieser Trennung der Bereiche leidet auch die Effizienz der Gesamtlösung. Viele von Hardware-Entwicklern implementierte Eigenschaften werden von der Softwareabteilung nicht in angemessener Weise verwendet, und umgekehrt würden in vielen Fällen kleine �?nderungen der Hardware die Software einfacher und effizienter machen.
Geschwindigkeit versus Flexibilität
Während sich Softwarelösungen durch eine hohe Flexibilität und eine universellere Verwendung auszeichnen, sind Hardwarelösungen fest auf ein Problem zugeschnitten, können aber eine Aufgabe wesentlich schneller lösen. Eine analoge Schaltung zur Steuerung eines Prozesses ist immer um ein Vielfaches schneller als eine softwarebasierende Lösung. Field Programmable Gate Arrays (FPGA) stellen einen guten Zwischenweg dar. Einerseits handelt es sich bei FPGAs um Hardwarekomponenten mit einer festen Anzahl von Gattern beziehungsweise Basisblöcken, zum anderen erfolgt die Verschaltung der Hardwarekomponenten per Software. Ein klassisches Beispiel für die Anwendung von FPGAs ist die Bildverarbeitung, so sind zum Beispiel Bildverarbeitungsprogramme auf einem schnellen Multicore-Computer meist deutlich langsamer als derselbe Algorithmus auf einem FPGA mit viel geringerer Frequenz. Der Grund hierfür liegt darin, dass das FPGA eine wesentlich größere Möglichkeit zur Parallelisierung bietet. Im Idealfall können mit einem FPGA alle Bildpunkte parallel berechnet werden, während die Software Punkt für Punkt sequenziell abarbeiten muss.
Universelle Lösungen
Innerhalb der Verbände der Nato war die Funkkommunikation oft nicht möglich, da die unterschiedlichen Funktechnologien nicht kompatibel waren. Aus diesem Grunde wurde das Projekt Software Defined Radio (SDR) aus der Taufe gehoben. Es sollte dieses Problem beheben. Dahinter stand die Idee, anstelle eines Systems mit fixer Hochfrequenzstufe einen Universalrechner mit programmierbarer Digitalhardware aus DSPs und FPGA zu entwickeln, um höchstmögliche Flexibilität zu erzielen. Die unterschiedlichen, bislang in Hardware realisierten Funkverfahren lassen sich nun allein durch Softwareänderung implementieren. Die positiven Ergebnisse aus diesem Projekt, das die bisherige Trennung zwischen Soft- und Hardware aufhebt und zu einem System zusammenfasst, wirken sich in vielen zivilen Bereichen aus: So wird SDR sowohl bei Amateurfunk als auch bei digitalen Funkempfängern für Behörden und Organisationen mit Sicherheitsaufgaben wie Polizei, Feuerwehr oder Rettungsdienste eingesetzt. Der große Vorteil bei diesem Ansatz ist, dass Anpassungen, die früher nur durch �?nderungen der Hardware möglich waren, nun ausschließlich mit Software realisierbar sind. Musste früher eine Produktion aufgrund eines Hardwareproblems gestoppt werden, so lässt sich dieses heute allein durch �?nderungen an der Software beheben, während die Produktion weiter läuft.
Langjährige Erfahrungen
Obwohl die hohe Flexibilität des SDR-Systems großen Nutzen verspricht, zeigt sich doch in vielen Projekten, dass die Kosten hierfür viel zu hoch sind, und eine so große Anpassbarkeit nicht benötigt wird. Auch rein in Hardware aufgebaute Systeme sind zu teuer für die Serienproduktion und kommen deshalb nur sehr selten zum Einsatz. Wie so häufig ist der goldene Mittelweg der Beste. Die Firma NetModule, Hersteller der NetBox, entwickelt seit Jahren Embedded-Systeme im Kundenauftrag. Bei der NetBox handelt es sich um eine Produktfamilie von mobilen Routern mit Unterstützung für GSM/UMTS bzw. LTE sowie WLAN und GPS. Mit einer e1-Zulassung für Straßenfahrzeuge und einer Bahnzulassung nach EN50155 wird die NetBox häufig in Bussen, Polizei- und Feuerwehrfahrzeugen sowie in Straßenbahnen und Zügen verbaut. Viele dieser Projekte werden über Ausschreibungen vergeben. Oft sind die Anforderungen an die Router sehr speziell, so dass eine projektspezifische Anpassung notwendig ist. Da bei den ersten Produktgenerationen noch der klassische Designansatz mit relativ getrennter Hard- und Softwareentwicklung verfolgt wurde, waren später häufig projektspezifische Hardwareänderungen erforderlich. Bei der aktuellen Generation setzte man einen integrierten Entwicklungsansatz unter Einsatz von softwarekonfigurierbarer Hardware um. Das Entwicklerteam bestand paritätisch aus Hard- und Softwareentwicklern. Dank gleichzeitiger Entwicklung von Hard- und Software konnten schon während der Entwicklung viele Aspekte aus dem jeweiligen anderen Bereich berücksichtigt werden. Die Anforderung nach hoher Flexibilität führte erstmals zur Nutzung eines FPGA in der NetBox. Wie realisierte Projekte aufzeigen, ermöglicht die Verwendung des FPGAs tatsächlich eine schnellere und kostengünstigere Anpassung an projektspezifische Anforderungen, ohne dass - wie bisher - die �?nderung der Basisplattform erforderlich war. Weiterer Vorteil: Der Einsatz von FPGAs senkt die Produktionskosten zusätzlich.
Verbindende Technologien gesucht
Die Situation ließe sich noch optimieren, gäbe es einen systematischen Ansatz, der beide Bereiche besser vereint. Vor Jahren hat die Firma Celoxica mit der DK1 Design Suite einen interessanten Ansatz für rekonfigurierbare Embedded-Systeme auf Basis von FPGA und CPU vorgestellt. Anstatt die FPGAs mit VHDL und die CPU mit einer prozeduralen Sprache zu programmieren, konnte mit dem DK1 das System mit einer C-ähnlichen Sprache programmiert werden, welche die Aspekte beider Welten abdeckte. Erst im letzten Schritt legte man fest, ob eine Funktion in Hardware, d. h. im FPGA oder als Software auf der CPU laufen soll. So ließ sich das Gesamtsystem mit einer Entwicklungsumgebung verifizieren und debuggen. Die Idee des Schiebereglers war geboren, mit dem sich festlegen lässt, was in Hardware und was in Software implementiert werden soll. Xilinx geht mit dem neuen Zynq in die gleiche Richtung. Der Zynq verbindet die Vorteile eines ARM-Cortex-A9-basierenden System-on-Chip mit der Skalierbarkeit und Flexibilität von FPGAs. NetModule bietet breite Erfahrung bei der FPGA-Entwicklung und seit Jahresanfang Integrationsservice für den Xilinx Zynq an. Die bisherigen Erfahrungen in Projekten haben gezeigt, dass mit dieser Technologie Hardware- und Softwareentwicklung wieder enger zusammen rücken.
Fazit
Als Produktanbieter wäre eine möglichst frei konfigurierbare Hardware die ideale Lösung. Eine �?nderung der Funktion von Schnittstellen nur durch Umprogrammieren des Systems würde eine große Variantenvielfalt ohne Mehrkosten ermöglichen. Die Kundenwünsche ließen sich optimal erfüllen und Hardware würde nicht mehr so schnell altern wie in der Vergangenheit. Der Trend in diese Richtung ist klar zu erkennen, und es ist zu erwarten, dass die Entwicklungsabteilungen die Trennung zwischen Hardware- und Softwaregruppe wieder auflösen werden. Dass eine engere Verzahnung der zwei Entwicklungsbereiche Vorteile bietet, und nicht zuletzt zu höheren Umsatzzahlen führt, zeigt sich beispielsweise an der NetBox. Niedrigere Kosten trotz größerer Flexibilität und die effizientere Anpassbarkeit an die Kundenanforderungen ermöglichen Projekte, die bis vor Kurzem nicht realisierbar waren.