Eingebettete Systeme erreichen derzeit ein neues Maß an Komplexität und Funktionalität. Selbst bei Systemen, die viele Entwickler noch als noch relativ simpel erachten, ist mittlerweile eine ausgeklügelte Steuerung nötig, damit sie ihre Position auf dem Markt halten können. Dies hat auch unmittelbare Auswirkungen auf die Kriterien und Anforderungen, die Entwicklerteams bei der Auswahl von Hardwareplattformen berücksichtigen müssen.

Eckdaten

Die Anforderungen an Systeme steigt zunehmend, damit geht auch eine gesteigerte Komplexität einher. Entwickler müssen daher verschiedene Faktoren mit einbeziehen: notwendige Software, optimales Betriebssystem, diverse Bauteile und vieles mehr. Ein System-in-Package kombiniert all diese Faktoren auf einem monolithischen Bauteil und kann je nach Anwendung die Entwicklung vereinfachen und beschleunigen.

Dieser Effekt ist in vielen Bereichen ersichtlich, doch ein besonders gutes Beispiel hierfür sind Sicherheitssysteme. Optisch sind zwei elektronische Türschlösser vielleicht identisch, doch was ihre Funktionen betrifft, können sie völlig unterschiedlich sein. Herkömmliche Schlösser arbeiten etwa mit einem relativ einfachen Mikrocontroller (MCU), der mit einem Peripheriegerät verbunden ist, das elektronische Schlüsselkarten mithilfe von Magnetstreifen oder per NFC-Mechanismus einliest. Derartige Systeme werden in Zukunft weitaus fortschrittlicheren und smarteren Designs weichen müssen. Die bieten dann eine viel größere Funktionsvielfalt wie etwa die Möglichkeit der Türöffnung durch Gesichts-, Fingerabdruck- oder Spracherkennung. Auch eine Kombination dieser drei biometrischen Erkennungsverfahren ist möglich.

Die Kernfunktion und Logik des Schlosses bleibt zwar gleich – nämlich die Tür nur dann zu öffnen, wenn die Person den Schlüssel vorweisen kann, in welcher Form dieser auch vorliegen mag –, aber die Komplexität beim Design steigt. Hier gilt es aber zu beachten, dass die Kosten und der Energieverbrauch weiterhin möglichst gering zu halten sind. Ein modernes Schloss muss möglicherweise Aufnahmen einer Videokamera verarbeiten können und vielleicht zugleich auch mit einem Mikrofon und einem Fingerabdruckscanner verbunden sein, je nachdem wie viele der verfügbaren biometrischen Optionen die Systemdesigner einsetzen wollen. Eine leistungsstarke Digitalsignalverarbeitung ist Pflicht, um die Daten von diesen Geräten erfassen und jeden Datenstrom auf intelligente Weise verarbeiten zu können.

Das richtige Betriebssystem finden

Auf Softwareebene stehen nun zahlreiche Ressourcen zu Verfügung, die die Umsetzung eines solchen Designs ermöglichen. Viele Designer verwenden einen starken ARM-Kern, der die anspruchsvolle Software verarbeiten kann. Bibliotheken für Bildverarbeitung und das maschinelle Lernen zur Durchführung von Gesichts- und Fingerabdruckerkennung sind für zahlreiche Plattformen verfügbar – einschließlich der DSP-Kerne, die neben ARM-Cores in der Sitara-Familie von Texas Instruments arbeiten. Ein Beispiel ist die Bildverarbeitungsbibliothek Open-CV. Eine Linux-Distribution, zum Beispiel Debian, stellt eine praktische Umgebung für die Entwicklung und Laufzeitausführung bereit, wobei sie Zugriff auf zahlreiche Programmiersprachen (Python bis C++) gewährt.

C und C++ sind zwar traditionell die erste Wahl für eingebettete Systeme, Python bietet jedoch bedeutende Vorteile. Die Numpy-Bibliothek beispielsweise stellt eine Vielzahl von Funktionen bereit, die die komplexe mathematische Option unterstützen, die für die Arbeit mit mehrdimensionalen Matrizen und Arrays in Verbindung mit anspruchsvollen Anwendungen im Bereich maschinelles Lernen erforderlich ist. Deshalb kann die Prototypentwicklung von Software sehr unkompliziert sein. Bei eingebetteten Anwendungen, etwa bei Türschlössern oder Motorsteuerungen für die Industrie, ist die Fähigkeit Echtzeit-Deadlines einzuhalten aber extrem wichtig.

Bild 1: Funktionsblockdiagramm für die SIP-Produkte der Familie OSD335x von Octavo.

Bild 1: Funktionsblockdiagramm für die SIP-Produkte der Familie OSD335x von Octavo Mouser

Normalerweise sind die für MCUs entwickelten Betriebssysteme für Software optimiert, die Echtzeit-Verhalten garantieren muss. Dies ist bei den meisten Linux-Distributionen jedoch nicht der Fall. Es gibt zwar Echtzeit-Implementierungen von Linux, jedoch fehlt diesen oft der Zugriff auf die Bibliotheken, mit denen Softwareentwickler arbeiten möchten. Hier sind dann Multicore-Implementierungen nützlich. Die Sitara-Familie umfasst zum Beispiel nicht nur DSPs, die deterministische Algorithmen ausführen können, sondern auch extrem schnelle, programmierbare Echtzeiteinheiten (PRUs), die unabhängig vom Linux-orientierten ARM-Hauptprozessorkern ausgeführt werden.

Hardwarekomponenten bewerten und auswählen

Mit der richtigen Hardware lässt sich auch die Energieeffizienz des gewünschten Designs steuern. Man kann zwar Kamera-Input auch dann verarbeiten lassen, wenn niemand vor der Tür steht; bei einem System mit Rund-um-die-Uhr-Betrieb kostet das aber sehr viel Energie. Stattdessen könnte ein Näherungssensor den Kernprozessor wissen lassen, wann er prüfen soll, ob sich eine Person in der Nähe befindet, um die Kamera entsprechend zu aktivieren.

Entwickler möchten möglicherweise mit unterschiedlichen Möglichkeiten experimentieren. Die erste Option wäre ein einfacher Näherungssensor, der lediglich feststellen kann, ob sich ein ausreichend großes Objekt in Reichweite befindet. Ferner könnte ein pyroelektrischer Sensor zum Einsatz kommen, der Spannung erzeugt, wenn er die Wärmestrahlung einer sich nähernden Person wahrnimmt. Was Entwickler für diese Experimente benötigen, ist eine Prototyping-Umgebung, die die Möglichkeit bietet, leicht zwischen I/Os hin und her zu schalten.

Die Plattformen Beagleboard und Beaglebone sind für Prototyping beliebt, wobei Beaglebone vor allem für Anwendungen mit eingeschränktem Platzbedarf nützlich ist, etwa bei Türschlössern, die in einer Tür oder einem Türrahmen verbaut sind. Durch zusätzliche Click-Boards lassen sich die Plattformen um unterschiedliche Sensoren und Steuerungen für Aktuatoren wie etwa pyroelektrische Sensoren oder Mikrofone erweitern.

Während Benutzern von MCUs für einfachere Geräte recht viele Auswahlmöglichkeiten zur Verfügung stehen, gestaltet sich das Hardwaredesign für leistungsstärkere eingebettete Systeme bislang eher schwierig. Die Komponenten selbst können zwar auf eine Hostplatine von Beaglebone passen, doch das Design für Hochleistungs-Multicore-Prozessoren ist viel schwieriger als für herkömmliche Prozessoren. Das mag beim ersten Prototyping kein Problem darstellen, wenn eine Hostplatine zur Verfügung steht, auf der sich das erforderliche SoC befindet. Entwickler und Systemdesigner müssen dies jedoch unbedingt bedenken, wenn sie ein System speziell für die Produktion optimieren.

Normalerweise haben MCUs mit nur einer Eingangsstromschiene einfache Leistungsanforderungen. Hochleistungs-Mikroprozessoren und SoCs hingegen benötigen mehrere Stromschienen. Diese Schienen sind oft variabel, damit sie die verschiedenen Energiesparmodi des SoC unterstützen können. Wenn aber die Schienenspannung festgelegt ist, bleibt nur wenig Spielraum für Abweichungen, selbst unter Hochstromlast. Außerdem stellt das SoC oft strenge Anforderungen an das Energie-Sequencing beim Start.

Anforderungen an den Speicher berücksichtigen

Ähnlich kompliziert wird es für Designer, wenn es darum geht, das SoC mit dem Speicher zu verbinden. Anders als Anwendungen, die herkömmliche MCUs nutzen und bezüglich der Datenspeicherung oft in sich geschlossen sind, benötigen intelligente Systeme Zugriff auf viel umfangreichere Speicherressourcen. Bilder und Video-Buffering verbrauchen schnell mehrere Megabyte an Datenspeicherkapazität. Algorithmen für das maschinelle Lernen, etwa Deep Neural Networks (DNN), stützen sich auf die Fähigkeit des Systems, Millionen von Parametern und riesige Mengen an Langzeitspeicher zu bewältigen.

Bild 2: OSD335x von Octavo Systems.

Bild 2: OSD335x von Octavo Systems Mouser

Doch nicht nur eine große Speicherbank ist notwendig, vielmehr muss der Speicher auch extrem schnell arbeiten können, indem er Protokolle wie DDR3 nutzt. Das Routing von Signalen zwischen SoCs und DDR-Speichern ist kompliziert und zeitaufwendig. Für Signale im Bus gelten sehr strenge Timing-Anforderungen, weshalb die Systeme Routenlängen ausgleichen müssen. Kürzere direkte Wege müssen gewundene Serpentinenmuster umfassen, damit sie genauso lang werden wie die längeren Spuren. Hier kommt ein System-in-Package (SIP) zu Hilfe.

Im Vergleich zum System-on-Module-Design (SOM) vieler Prototyping-Plattformen lässt sich ein SIP viel leichter in die Produktionsumgebung integrieren. Beim SOM handelt es sich um eine Leiterplatte, die auf die Platine gesteckt werden muss und auf der ein spezieller Sockel alle anwendungsspezifischen I/Os ausführt. Dadurch nehmen die Größe und Kosten für das finale System zu. Das SIP hingegen sieht wie ein herkömmlicher monolithischer Schaltkreis aus und lässt sich auch so behandeln – es wird zusammen mit allen I/O-Geräten auf eine maßgeschneiderte Leiterplatte gelötet.

Anwendungsbeispiel

Die SIP-Produkte der Familie OSD335x von Octavo Systems umfassen alles, was für den Kern eines leistungsstarken intelligenten Systems vonnöten ist, und ermöglichen ein genauso einfaches Design wie eine herkömmliche MCU. Die SIPs, die auf den SoCs der Sitara-Familie von Texas Instruments basieren, bieten einen ARM Cortex-A8-Prozessor mit 1 GHz, zwei PRUs, DDR3-Speicher und ein Powermanagement-IC (PMIC), um zuverlässig höchste Effizienz sicherzustellen. Der im OSD335x-Paket enthaltene PMIC unterstützt alle verschiedenen Spannungsschienen und Leistungs-Sequencing, sodass nur ein Leistungseingang angeschlossen werden muss – genau wie bei einer herkömmlichen MCU.

Bei Systemen, die nicht immer an das Stromnetz angeschlossen sind, übernimmt die Leistungssteuerungsschaltung im PMIC des SIP das Batteriemanagement. Wohingegen sich bei Systemen, die über verschiedene Stromquellen versorgt werden müssen, der PMIC OSD335x automatisch um das Multiplexverfahren und die Umschaltung zwischen den Stromquellen kümmert. Ein weiterer Vorteil für batteriebetriebene Systeme besteht darin, dass sich durch die Integration in ein Miniaturgehäuse der Energieverbrauch für die Datenübertragungen zwischen dem SoC und dem DDR-Speicher minimieren lässt.

Fazit

In einer Welt mit immer intelligenter werdenden Systemen, die in das wachsende Internet der Dinge (IoT) integriert werden müssen, stellt die SIP-Lösung von Octavo eine effektive Verarbeitungsplattform dar, die genauso einfach zu handhaben ist wie eine herkömmliche MCU, aber gleichzeitig viel mehr Möglichkeiten bietet. Die vom Unternehmen entwickelte Kern-SIP-Technologie ermöglicht die Schaffung mehrerer Varianten, sodass Ingenieure eine auf ihre Anwendung abgestimmte Version nutzen können, die sich dank des kleinen Gehäuses für den Einsatz in vielen smarten IoT-Geräten mit eingeschränktem Platzangebot eignet. Für das Prototyping wurde das OSD335x bereits in IoT-fähige Plattformen wie das Beaglebone Black Wireless integriert, wodurch das SIP leicht von der Entwicklung in die Produktion übertragen werden kann. Dank der umfassenden Softwareunterstützung der SoCs von Sitara entsteht eine Lösung, die die Umsetzung künftiger Entwicklungsprojekte erheblich vereinfacht.