Automatisiertes Validierungs-System Die nächste Ebene der MCU-Validierung

Vereinfachtes validieren von unterschiedlichen  MCUs
Vereinfachtes validieren von unterschiedlichen MCUs

Die funktionale Validierung von Mikrocontrollern kann mit einem automatisierten, modularen System deutlich vereinfacht werden. Auch wenn die zu testenden MCUs unterschiedliche Anwendungsbereiche haben, kann man mit simplen Mechanismen eine hohe Wiederverwendbarkeit von Tests und Modulen erreichen.

Für die funktionale Überprüfung eines Mikrocontrollers (MCU) wurde von Texas Instruments ein automatisiertes Validierungssystem (AVS) entwickelt. Es ermöglicht die schnelle und anwendungsnahe Validierung eines MCU-Bausteins. Da dieses System ständig weiterentwickelt wird und die Erfahrungen damit direkt einfließen, ist es inzwischen zu einem wichtigen Werkzeug für viele MCU-Teams innerhalb von TI geworden. Da das System von Anfang an als modulares Framework aufgebaut wurde, ist es leicht und schnell auf die spezifischen Anforderungen eines Validierungs-Teams anzupassen. Die Realisierung mit LabView und TestStand als zentrale Elemente macht das Interagieren mit vielen verschiedenen Messgeräten sehr einfach (LabView) und das sequenzielle Abarbeiten und Protokollieren ist dank TestStand keine Herausforderung.

Aufbau und Zielsetzung eines AVS

Das Ziel bei einem automatischen Validierungssystem (AVS) ist das Sicherstellen der beabsichtigten Funktion eines MCU-Bausteines, speziell mit Tests, die die geplante Verwendung bei einem Kunden so gut wie möglich nachstellen. Das kann und wird auch mit Simulationen in der Entwicklung des MCU-Bausteins erreicht, jedoch sind diese in ihren Möglichkeiten limitiert:

  • Lange Simulationszeiten bei komplexeren und aufwendigen Tests.
  • Direkte Interaktion mit Benutzern, zum Beispiel Debugging mit einer IDE nicht möglich.
  • Interaktion mit externen Bauteilen/Sensoren/Baugruppen nur mit großem Aufwand machbar.

Diese Grenzen bei der Simulation können dagegen mit einer Validierung am realen Baustein (DUV = Device Under Validation) oder auch mit einem FPGA-Prototypenaufbau (während der Entwicklung des Bausteins) adressiert werden. Manuell ausgeführt kann das allerdings sehr arbeitsaufwendig sein, da für jeden Test der Aufbau realisiert werden muss, der Test dann durchgeführt wird und man am Schluss das Ergebnis notiert. Durch Automatisierung kann hier sehr viel Aufwand eingespart und diese Zeit für mehr und bessere Tests verwendet werden.

Ein solches System muss mehrere Anforderungen erfüllen:

  • Kommunikation und Steuerung des DUV (zum Beispiel via JTAG)
  • variable Beschaltung des DUV
  • Erzeugen von Stimuli
  • Durchführung von Messungen
  • Anpassbarkeit an verschiedene DUV-Kategorien
  • einfache Testrealisierung ohne lange Einarbeitszeit
  • Erweiterbarkeit des AVS durch den Benutzer Wiederverwendbarkeit von Tests.

Dabei besteht ein Test aus einer optionalen Firmware für das DUV und einem erforderlichen textuellen Skript, das die einzelnen Ausführungsschritte und Checks des Tests beschreibt.

Um das alles zu adressieren, wurde das System als modulares Framework realisiert, d.h. ein Team erhält kein fertiges System, sondern einen Satz an Software-Modulen und Richtlinien, wie das System für die benötigten Anforderungen aufgebaut und angepasst werden kann. Durch den modularen Aufbau können von einem Team neu erstellte Module auch von anderen Teams wiederverwendet werden.

Die Struktur des AVS-Systems ist im Bild veranschaulicht. Auf der Software-Seite setzt das System zum einen LabView ein, um die Interaktion mit den Instrumenten und externen Komponenten zu realisieren. Zum anderen nutzt es TestStand für die Abarbeitung und zum Protokollieren der einzelnen Testschritte in einem Test und zur Durchführung einer ganzen Testreihe. Auf der Hardware-Seite werden hauptsächlich PXI(e)-Instrumente verwendet, um einen kompakten Aufbau zu erreichen. Ein dem Anwendungsbereich angepasster PCB-Aufbau ermöglicht die flexible Verbindung zwischen DUV und Instrumenten.

Zusätzlich wurden Regeln und Richtlinien erstellt, die es dem Anwender erlauben, wiederverwendbare Tests zu realisieren. Dadurch muss ein existierender Test nicht für neue Mitglieder einer MCU-Familie angepasst werden, sondern alle DUV-spezifischen Einstellungen können an einer zentralen Stelle einmal vorgenommen werden. Das Gleiche gilt auch für die Verwendung von unterschiedlichen Hardware-Aufbauten, die andere Instrumente/PCBs als ursprünglich verwenden. Auch hier muss ein Test nicht angepasst werden, sondern nur der richtige Instrumententreiber an zentraler Stelle angegeben werden. Zwei der implementierten Mechanismen/Regeln werden in den folgenden Abschnitten aufgezeigt.