Embedded Software

Verifikation integrierter Software

5. Dezember 2017, 9:00 Uhr | Stephan Puri-Jobi, Testarchitekt für Software-Verifizierung, ams
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Kritische Applikationen

Einige komplexe Messanwendungen fordern garantierte Zuverlässigkeit. Beispiele sind:

  • Durchflusssensoren (Bild 1) in Kaltwasserzählern: Die Wasserrechnung hängt von der Genauigkeit der Sensorausgabedaten ab.
  • Gassensoren (Bild 2): Zuverlässig gefährliche Schadstoffkonzentrationen zu erkennen ist sicherheitskritisch.
  • Biosensoren (Bild 3): Optische Herzfrequenzmessungen durch einen tragbaren Gesundheitsmonitor fließen in das ärztliche Gutachten.

passend zum Thema

Bild 1: Schaltbild eines Ultraschall-Durchflusswandlers.
Bild 1: Schaltbild eines Ultraschall-Durchflusswandlers.
© ams AG
Bild 2: Eine generische Gassensor-Lösung.
Bild 2: Eine generische Gassensor-Lösung.
© ams AG
Bild 3: Aufbau eines Biosensors.
Bild 3: Aufbau eines Biosensors.
© ams AG

Bei solchen Anwendungen verarbeitet Software die Messergebnisse im Sensor. Die Messgenauigkeit der Hardware ist innerhalb der Betriebsparameter auf dem Datenblatt dokumentiert.

Zur Quantifizierung des Fehlerspielraums der Sensorsoftware wird das Problem in seine Teilbereiche aufgeschlüsselt.

Gängige Digitalsensoren beinhalten die Hauptkomponenten (Bild 4):

  • Analog-Front-End zur Rohdatenerfassung,
  • Treibercode zum Zugriff auf die Hardware,
  • Algorithmen zur Datenverarbeitung und -analyse, Glue Logic zur Weitergabe der Daten an die Anwendung.
Bild 4: Aufbau einer typischen Sensorlösung.
Bild 4: Aufbau einer typischen Sensorlösung.
© ams AG

Die unterschiedlichen Softwarekomponenten besitzen verschiedene Anforderungen:

  • Einige Softwareelemente sind mit einer spezifischen Hardwarekomponente gekoppelt,
  • einige Softwareelemente haben kritische Zeitvorgaben,
  • ein Teil der Software fordert hohe Rechenleistung und
  • einige Codes haben keine spezifischen Anforderungen.

In dieser Codebasis können potenziell unterschiedliche Fehler auftreten: Die Testroutinen müssen jeden Fehlertyp abdecken (Bild 5).

Bild 5: On-Chip-Firmware (ROM-Code) im On-Chip-Mikrocontroller einer Sensorlösung.
Bild 5: On-Chip-Firmware (ROM-Code) im On-Chip-Mikrocontroller einer Sensorlösung.
© ams AG

Eine Möglichkeit:

  • Bei Algorithmen sollten die Tests nach Rundungs- und Vorzeichenfehlern sowie Pufferüberläufen suchen,
  • wenn Komponenten auf Hardware zugreifen, ist zu testen, ob die Software korrekt auf Timeouts reagiert und
  • an der Schnittstelle zu anderen Systemen, etwa zu einem Host-Mikrocontroller oder Anwendungsprozessor, muss die Software mit Überlastungen durch Interrupts umgehen können

Das Sensorsoftware-Testprogramm bei ams spiegelt eben diese Kategorien: Der Code ist zu Testzwecken modular konzipiert, zudem erfordern diese Abschnitte nur wenige Schnittstellen zu anderen Code-Teilen. Sie sind soweit wie möglich unabhängig vom Referenzcode gestaltet.
Einen Algorithmus-Code zu testen, ist wenig kompliziert, Ein- und Ausgabewerte sind für den Tester vorhersagbar. Da der Datenursprung im Code nicht releviert ist dieser Test hardwareunabhängig.

Zum Test eines Treibercodes (zum Beispiel zur Verifikation der Registerzugriffe), ist dagegen eine Hardwaresimulation erforderlich.
Bugs wie Kapazitätsüberschreitungen, Zugriffsereignisse außerhalb von Puffern und falsche Abbruchbedingungen für Schleifen werden mit Code-Testabschnitten effizient identifiziert. Allerdings reichen diese Tests nicht zur Verifikation der Funktionalität des kompletten Sensorsystems.


  1. Verifikation integrierter Software
  2. Kritische Applikationen
  3. Emergente Fehler
  4. Integritätsnachweis

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu ams Osram AG

Weitere Artikel zu Sensoren & -systeme