Flash-Optimierung für AURIX

Vario-TAP erreicht 1 MB/s bei Flash-Programmierung

Veröffentlicht Geändert
Anwendungsmöglichkeit und Einordnung der Vario-TAP-Technologie.
Bild 1: Anwendungsmöglichkeit und Einordnung der Vario-TAP-Technologie.

Technische Weiterentwicklungen in Software und Protokollen ermöglichen mit Vario-TAP eine deutliche Beschleunigung der Flash-Programmierung bei AURIX-Mikrocontrollern – mit spürbaren Vorteilen für Testzeit und Produktionsdurchsatz.

Das Technologiekonzept von Embedded Programming eröffnet ein riesiges Feld von Einsatzmöglichkeiten, welche im Grunde nur von den Grenzen der Fähigkeiten des Mikrocontrollers selbst beschränkt werden. Durch die verschiedenen Softwareebenen, die hier ineinandergreifen, besteht insbesondere im Bereich der Speicherprogrammierung ein enormes Optimierungspotential. Die Vario-TAP-Technologie aus dem Bereich Embedded JTAG Solutions (EJS) von Göpel Electronic zielt genau auf diesen Punkt und holt 100 Prozent aus jeder Testaufgabe heraus.

Möglichkeiten mit Embedded Programming

Embedded Programming wird hauptsächlich für das Testen von Mikroprozessoren, Mikrocontrollern und anderen programmierbaren Logikbausteinen eingesetzt. Die Vario-TAP-Technologie basiert grundsätzlich auf dem JTAG-Standard und nutzt das JTAG-Protokoll (Joint Test Action Group), das ursprünglich für das Testen und Debuggen von integrierten Schaltungen entwickelt wurde. Es ermöglicht den Zugriff auf die internen Register und Ressourcen von Mikroprozessoren und anderen digitalen Bausteinen. Einer der enormen Vorteile dieser Technologie ist, dass als Kommunikationsinterface nicht zwingend das JTAG-Protokoll genutzt werden muss. Es kommen immer häufiger Two-Wire-Protokolle wie SWD (Serial Wire Debug) oder sogar One-Wire-Protokolle, wie zum Beispiel die SWIM-Schnittstelle (Single Wire Interface Module) für die STM8 Bausteine von ST-Microelectronics zum Einsatz.

Weiterhin ermöglicht Vario-TAP das direkte Testen, Programmieren und Debuggen von Mikrocontrollern und Mikroprozessoren, ohne dass ein zusätzlicher Hardwarezugriff erforderlich ist. Der Zugriff erfolgt durch eine standardisierte Schnittstelle, wie z. B. JTAG. Die Technologie ist sehr flexibel und unterstützt in ihrer Kernbibliothek eine Vielzahl von Bausteinen verschiedener Hersteller, zu denen unter anderem auch programmierbare Logikbausteine (FPGAs) zählen. Dadurch ist es für eine breite Palette von Anwendungen geeignet.

Wie unterstützt Embedded Programming die Produktion?

Vario-TAP zählt zu den In-System-Programmierlösungen, die Bausteine in bereits verbautem Zustand programmieren können. So ist es möglich, Firmware und Software direkt in den Speicher des Mikrocontrollers oder Prozessors zu laden, der sich bereits im Zielsystem befindet. Dies vereinfacht den Produktionsprozess und ermöglicht Updates und Änderungen auch nach der kompletten Montage der Baugruppe. Insgesamt ist Vario-TAP eine Technologie, die eine umfassende Kontrolle und Analyse von Mikrocontrollern ermöglicht und dies durch die chipeigenen Ressourcen nutzbar macht.

Highspeed-Technologielösung Vario-TAP, im Vergleich zum klassischen Boundary Scan und den Folgetechnologien JEDOS und X-BUS.
Bild 2: Highspeed-Technologielösung Vario-TAP, im Vergleich zum klassischen Boundary Scan und den Folgetechnologien JEDOS und X-BUS.

Warum wurde die DAP-Kommunikation optimiert?

Als es noch wenige Anbieter von Programmierlösungen für Produktionslinien gab, entwickelte Göpel Electronic mit dem ersten Release eines Vario-TAP-Modells ein stabiles Emulationsmodell, das die On-Chip-Flash-Programmierung für den TC2 von Infineon ermöglichte. Allerdings hatte zu diesem Zeitpunkt eine Programmierung von 8 MB, inklusive Löschen und Datenverifizierung, je nach Test- und Umgebungssetup, etwa 90 Sekunden gedauert. Im Laufe des Produktlebenszyklus‘ der Vario-TAP-Modelle für die AURIX-32-Bit-TriCore-Familie von Infineon wurde im letzten Jahr viel Aufwand in Optimierung und Wartung investiert. Ziel war es, jeden einzelnen Prozess sicherer und performanter zu machen.

Durch diese Softwareoptimierungen wurden beispielsweise die Performance der Datenübertragung und der eigentliche Durchsatz der Speicherprogrammierung um ein Vielfaches verbessert. Zwei Hauptpunkte haben bei diesen Softwareänderungen den entscheidenden Performancevorteil erzielt: zum einen wurde das komplette Two-Wire-DAP-Protokoll (Device Access Port) über das die Low-Level-Kommunikation stattfindet, überarbeitet und optimiert. Dies hat die Grundkommunikation zum Prozessorkern deutlich schneller und stabiler gemacht. Der zweite große Punkt war die On-Chip-Flash-Programmierung selbst. Hier wird ein Monitorkonzept verwendet, bei dem der Quellcode in den RAM des Zielbausteins geladen wird und damit die eigentliche Interfaceansteuerung der On-Chip-Flash-Befehle direkt im Controller stattfinden kann. Von außen gesehen findet hier also nur noch eine elementare Befehlskommunikation zwischen Host und Client statt sowie die eigentliche Datenübertragung. Dies war der letzte große Bottleneck, der analysiert und optimiert werden musste. Durch ein intelligentes Buffer-Management ist es möglich, alle für das aktuelle Kommando notwendigen Quelldaten direkt im RAM-Speicher des Chips vorzuhalten und diese dann bei Bedarf abzurufen. Mit neuentwickelten Streaming-Verfahren gelingt es sogar, Prozesse parallel ablaufen zu lassen, zum Beispiel das gleichzeitige Programmieren und Nachladen von konsekutiv benötigten Daten. Final wurden zusätzliche Funktionen zu den üblichen „memory mapped flash actions“ eingeführt, wie zum Beispiel ein MD5-Checksummenvergleich zum Verifizieren großer Datenblöcke.

Testaufbau: SCANFLEX II CUBE mit angeschlossenem TC39x-Evaluation-Board TriBoard TC3X9 TH V2.01.
Bild 3: Testaufbau: SCANFLEX II CUBE mit angeschlossenem TC39x-Evaluation-Board TriBoard TC3X9 TH V2.01.

Was verbessert das neue On-Chip-Programmiermodell?

Mit der aktuellen SFX-II-Hardwaregeneration und der angesprochenen Softwareoptimierung wird der bei der Modelleinführung erreichte Wert heute deutlich unterschritten. Bevor auf einige Zahlen und Programmierszenarien eingegangen wird, soll noch kurz auf einen weiteren Vorteil des Vario-TAP-Modells hingewiesen werden, der gleichzeitig eine enorme Kostenersparnis ermöglicht: wie in Bild 3 zu sehen ist, arbeitet das Modell lediglich mit drei Prozessor-Signalen (DAP0 -> CLK; DAP1 -> TMS und optional dem Prozessor-Reset /PORST). Das bedeutet, dass effektiv vier Signale (plus GND) ausreichen, um eine On-Chip-Flash-Programmierung durchzuführen bzw. mit dem Vario-TAP-Modell zu arbeiten. Hierzu kommt, dass das Reset-Signal optional und nicht bei jeder Anwendung notwendig ist. Dieser Fakt bringt einen Vorteil gegenüber dem Standard-JTAG-Protokoll, welches sechs Signale benötigt – das Prozessor-Reset-Signal nicht mitgezählt.

Leistungsdaten und Testwerte im Überblick

Folgende Zahlen und Benchmark-Daten veranschaulichen die Einsparungen noch deutlicher: Das Hardwaresetup für die Programmierung sind Controller SFX II CUBE von Göpel Electronic und ein Infineon-TC39x-Eva-lBoard mit verbautem TC399XP-Chip (siehe Bild 3). Durch die Softwareoptimierung und die SFX-II-Hardware ist es nun möglich, das Vario-TAP-Modell mit einer Testbusfrequenz von 52 MHz (je nach Setup variabel) auszuführen. Die Testaufgabe ist das Löschen, Programmieren und Verifizieren von 8 MB Daten, die in den P-FLASH-Bereich des TC399 Bausteins programmiert werden sollen. Die eigentliche Programmaktion für die 8 MB benötigt in diesem Szenario 8 Sekunden, was einem Durchsatz von rund 1 MB/s entspricht. Dazu kommt eine Löschzeit von 6 Sekunden, für das Verifizieren der Daten mittels MD5-Checksumme fallen nochmals 2 Sekunden an. Als Gesamtzeit ergibt sich für die Programmierung eine Testlaufzeit von 16,6 Sekunden (siehe Bild 4).

Ausgabe Logdatei für die On-Chip-Flash-Programmierung von 8 MB eines TC399-Chips.
Bild 4: Ausgabe Logdatei für die On-Chip-Flash-Programmierung von 8 MB eines TC399-Chips.

Mit dem Stand-Alone-Programmer FlashFOX von Göpel kann die gleiche Programmierung nochmals schneller durchgeführt werden. Hier kommt man auf einen Datendurchsatz von 1,4 MB/s und eine Gesamttestzeit von 14,9 Sekunden. So konnte ein Kunden, der VarioTAP bereits als Programmierlösung einsetzt, mit dieser Modelloptimierung seine Testzeit für ein laufendes Projekt von ursprünglich 51 auf 19 Sekunden verringern. Die Rahmenbedingungen sind in diesem Setup deutlich anders: zwar sollen auch Baugruppen getestet und programmiert werden, jedoch in einem für die Massenproduktion geeigneten Nadelbettadapter. So muss hier unter anderem mit einer deutlich geringeren Testfrequenz gearbeitet werden. Die Ersparnis von mehr als 60 Prozent der ursprünglichen Zeit ist für jeden Fertiger, der große Stückzahlen produziert, interessant und erstrebenswert.

Fazit

Der Arbeits- und Ressourcenaufwand, der in die Softwareoptimierung des Vario-TAP-Modells investiert wurde, hat sich für die Kunden gelohnt und ist eine kleine Erfolgsgeschichte für das Entwicklungsteam rund um die Vario-TAP-Technologie. Zwischen Erstrelease und aktuellem Stand des Modells wurde eine Verbesserung von 90 auf 16 Sekunden erarbeitet. Das bedeutet, dass die gleiche Programmieraufgabe nun weniger als ein Fünftel der ursprünglichen Zeit in Anspruch nimmt.
Es werden mit dem in dieser Modellentwicklung und -überarbeitung aufgebauten Know How zukünftig weitere verbreitete Modelle auf ihr Optimierungspotenzial überprüft. Fest steht bereits jetzt: die Einsatz- und Erweiterungsmöglichkeiten der Vario-TAP-Technologie sind noch lange nicht ausgeschöpft. (bs)

Ralf Möhring

Softwareentwickler bei Göpel Electronic

Ralf Möhring, Göpel